From fe43352a821bc74953b87e28b1d5230d8e4b558b Mon Sep 17 00:00:00 2001 From: "Worker Pants (Pantsbuild GitHub Automation Bot)" Date: Mon, 8 Jan 2024 00:21:44 +0000 Subject: [PATCH] Update docs site for version 2.18.1 --- versioned_docs/version-2.18/docs/.gitignore | 3 + versioned_docs/version-2.18/docs/NOTES.md | 60 + .../docs/ad-hoc-tools/_category_.json | 4 - .../docs/contributions/_category_.json | 4 - .../contributions/development/_category_.json | 4 - .../docs/contributions/development/index.mdx | 15 - .../contributions/releases/_category_.json | 4 - .../docs/contributions/releases/index.mdx | 9 - .../version-2.18/docs/docker/_category_.json | 4 - .../docs/getting-started/_category_.json | 4 - .../docs/getting-started/index.mdx | 18 - .../docs/getting-started/prerequisites.mdx | 63 - .../version-2.18/docs/go/_category_.json | 4 - .../docs/go/integrations/_category_.json | 4 - .../docs/go/integrations/index.mdx | 10 - .../version-2.18/docs/helm/_category_.json | 4 - .../docs/introduction/_category_.json | 4 - .../docs/java-and-scala/_category_.json | 4 - .../Ad-Hoc Tools/adhoc-tool.md} | 38 +- .../Contributions/contributor-overview.md} | 108 +- .../markdown/Contributions/development.md | 14 + .../development/contributions-debugging.md} | 43 +- .../development/contributions-rust.md} | 54 +- .../development/contributor-setup.md} | 81 +- .../internal-rules-architecture.md} | 8 +- .../running-pants-from-sources.md} | 8 +- .../Contributions/development/style-guide.md} | 75 +- .../docs/markdown/Contributions/releases.md | 9 + .../releases/ci-for-macos-on-arm64.md} | 20 +- .../releases/release-process.md} | 33 +- .../releases/release-strategy.md} | 65 +- .../Docker/docker.md} | 110 +- .../Docker/tagging-docker-images.md} | 59 +- .../markdown/Getting Help/getting-help.md | 45 + .../Getting Help/service-providers.md | 21 + .../Getting Help/the-pants-community.md | 66 + .../the-pants-community/code-of-conduct.md | 51 + .../contentious-decisions.md | 23 + .../the-pants-community/maintainers.md | 112 + .../Getting Help/the-pants-community/team.md | 109 + .../Getting Started/getting-started.md | 18 + .../getting-started/example-repos.md} | 11 +- .../getting-started/existing-repositories.md} | 49 +- .../getting-started/initial-configuration.md} | 70 +- .../getting-started/installation.md} | 51 +- .../getting-started/manual-installation.md} | 25 +- .../getting-started/prerequisites.md | 62 + .../docs/markdown/Go/go-integrations.md | 9 + .../Go/go-integrations/protobuf-go.md} | 71 +- .../{go/go-overview.mdx => markdown/Go/go.md} | 92 +- .../Helm/helm-deployments.md} | 108 +- .../Helm/helm-kubeconform.md} | 24 +- .../Helm/helm-overview.md} | 128 +- .../Introduction/how-does-pants-work.md} | 47 +- .../markdown/Introduction/language-support.md | 10 + .../docs/markdown/Introduction/media.md | 312 + .../docs/markdown/Introduction/news-room.md | 22 + .../docs/markdown/Introduction/sponsorship.md | 61 + .../markdown/Introduction/testimonials.md | 142 + .../Introduction/welcome-to-pants.md} | 26 +- .../markdown/Introduction/who-uses-pants.md | 8 + .../Java and Scala/jvm-overview.md} | 99 +- .../Java and Scala/kotlin.md} | 111 +- .../docs/markdown/Python/python-goals.md | 15 + .../Python/python-goals/python-check-goal.md} | 177 +- .../Python/python-goals/python-fmt-goal.md} | 13 +- .../Python/python-goals/python-lint-goal.md | 32 + .../python-goals/python-package-goal.md} | 87 +- .../python-goals/python-publish-goal.md} | 29 +- .../Python/python-goals/python-repl-goal.md} | 68 +- .../Python/python-goals/python-run-goal.md} | 97 +- .../Python/python-goals/python-test-goal.md} | 408 +- .../markdown/Python/python-integrations.md | 14 + .../python-integrations/awslambda-python.md} | 67 +- .../google-cloud-function-python.md} | 55 +- .../Python/python-integrations/jupyter.md} | 11 +- .../python-integrations/protobuf-python.md} | 115 +- .../Python/python-integrations/pyoxidizer.md} | 81 +- .../python-integrations/thrift-python.md | 161 + .../docs/markdown/Python/python.md | 29 + .../Python/python/pex-files.md} | 8 +- .../markdown/Python/python/python-backend.md | 70 + .../Python/python/python-distributions.md} | 141 +- .../python-interpreter-compatibility.md} | 93 +- .../python/python-linters-and-formatters.md} | 86 +- .../Python/python/python-lockfiles.md} | 91 +- .../python-third-party-dependencies.md} | 144 +- .../docs/markdown/Releases/changelog.md | 29 + .../Releases/deprecation-policy.md} | 25 +- .../Releases/upgrade-tips.md} | 45 +- .../docs/markdown/Releases/versions.md | 20 + .../Releases/versions/release-notes-1-25.md | 16 + .../Releases/versions/release-notes-1-26.md | 19 + .../Releases/versions/release-notes-1-27.md | 22 + .../Releases/versions/release-notes-1-28.md | 20 + .../Releases/versions/release-notes-1-29.md | 20 + .../Releases/versions/release-notes-1-30.md | 87 + .../Releases/versions/release-notes-2-0.md | 21 + .../Releases/versions/release-notes-2-1.md | 17 + .../Releases/versions/release-notes-2-2.md | 17 + .../Releases/versions/release-notes-2-3.md | 15 + .../Releases/versions/release-notes-2-4.md | 18 + .../Releases/versions/release-notes-2-5.md | 18 + .../Shell/run-shell-commands.md} | 31 +- .../Shell/shell.md} | 163 +- .../Tutorials/advanced-plugin-concepts.md} | 65 +- .../Tutorials/create-a-new-goal.md} | 54 +- .../Tutorials/test-custom-plugin-goal.md} | 31 +- .../Using Pants/advanced-target-selection.md} | 66 +- .../Using Pants/anonymous-telemetry.md} | 28 +- .../Using Pants/assets.md} | 43 +- .../Using Pants/command-line-help.md} | 17 +- .../docs/markdown/Using Pants/concepts.md | 12 + .../Using Pants/concepts/enabling-backends.md | 113 + .../Using Pants/concepts/goals.md} | 41 +- .../Using Pants/concepts/options.md} | 91 +- .../Using Pants/concepts/source-roots.md} | 161 +- .../Using Pants/concepts/targets.md} | 250 +- .../Using Pants/environments.md} | 102 +- .../Using Pants/generating-version-tags.md} | 17 +- .../Using Pants/project-introspection.md} | 166 +- .../Using Pants/remote-caching-execution.md} | 10 +- .../remote-caching.md} | 12 +- .../remote-execution.md} | 24 +- .../restricted-internet-access.md} | 43 +- .../Using Pants/setting-up-an-ide.md} | 20 +- .../Using Pants/troubleshooting.md} | 111 +- .../markdown/Using Pants/using-pants-in-ci.md | 230 + .../Using Pants/validating-dependencies.md} | 73 +- .../Writing Plugins/common-plugin-tasks.md | 13 + .../plugin-upgrade-guide.md} | 83 +- .../common-plugin-tasks/plugins-codegen.md} | 47 +- .../common-plugin-tasks/plugins-fmt-goal.md} | 31 +- .../common-plugin-tasks/plugins-lint-goal.md} | 31 +- .../plugins-package-goal.md | 189 + .../common-plugin-tasks/plugins-repl-goal.md} | 19 +- .../common-plugin-tasks/plugins-run-goal.md | 192 + .../common-plugin-tasks/plugins-setup-py.md} | 112 +- .../common-plugin-tasks/plugins-test-goal.md} | 22 +- .../plugins-typecheck-goal.md} | 15 +- .../Writing Plugins/macros.md} | 35 +- .../Writing Plugins/plugins-overview.md} | 61 +- .../markdown/Writing Plugins/rules-api.md | 19 + .../rules-api/rules-api-and-target-api.md} | 29 +- .../rules-api/rules-api-concepts.md} | 127 +- .../rules-api/rules-api-file-system.md} | 49 +- .../rules-api/rules-api-goal-rules.md} | 88 +- .../rules-api/rules-api-installing-tools.md} | 134 +- .../rules-api/rules-api-logging.md} | 13 +- .../rules-api/rules-api-process.md} | 69 +- .../rules-api/rules-api-subsystems.md | 119 + .../rules-api/rules-api-testing.md} | 93 +- .../rules-api/rules-api-tips.md} | 28 +- .../rules-api/rules-api-unions.md} | 15 +- .../markdown/Writing Plugins/target-api.md | 12 + .../target-api/target-api-concepts.md} | 109 +- .../target-api-extending-targets.md} | 19 +- .../target-api/target-api-new-fields.md} | 88 +- .../target-api/target-api-new-targets.md | 101 + .../version-2.18/docs/python/_category_.json | 4 - .../docs/python/goals/_category_.json | 4 - .../version-2.18/docs/python/goals/index.mdx | 16 - .../version-2.18/docs/python/goals/lint.mdx | 33 - .../docs/python/integrations/_category_.json | 4 - .../docs/python/integrations/index.mdx | 15 - .../docs/python/integrations/thrift.mdx | 144 - .../python/python-overview/_category_.json | 4 - .../enabling-python-support.mdx | 71 - .../docs/python/python-overview/index.mdx | 29 - .../docs/releases/_category_.json | 4 - .../version-2.18/docs/shell/_category_.json | 4 - .../tutorials-coming-soon/_category_.json | 4 - .../docs/using-pants/_category_.json | 4 - .../using-pants/key-concepts/_category_.json | 4 - .../using-pants/key-concepts/backends.mdx | 114 - .../docs/using-pants/key-concepts/index.mdx | 12 - .../_category_.json | 4 - .../docs/using-pants/using-pants-in-ci.mdx | 232 - .../docs/writing-plugins/_category_.json | 4 - .../common-plugin-tasks/_category_.json | 4 - .../common-plugin-tasks/index.mdx | 13 - .../common-plugin-tasks/plugin-helpers.mdx | 30 - .../the-rules-api/_category_.json | 4 - .../writing-plugins/the-rules-api/index.mdx | 20 - .../the-rules-api/options-and-subsystems.mdx | 100 - .../the-target-api/_category_.json | 4 - .../the-target-api/creating-new-targets.mdx | 103 - .../writing-plugins/the-target-api/index.mdx | 13 - .../version-2.18/reference/global-options.mdx | 16 +- .../reference/goals/experimental-bsp.mdx | 2 +- .../version-2.18/reference/goals/fix.mdx | 2 +- .../reference/goals/generate-lockfiles.mdx | 4 +- .../goals/go-dump-import-path-mapping.mdx | 39 + .../reference/goals/go-export-cgo-codegen.mdx | 41 + .../goals/go-show-package-analysis.mdx | 41 + .../goals/java-dump-source-analysis.mdx | 42 + .../reference/goals/jvm-symbol-map.mdx | 41 + .../goals/kotlin-dump-source-analysis.mdx | 42 + .../version-2.18/reference/goals/lint.mdx | 4 +- .../goals/scala-dump-source-analysis.mdx | 44 + .../version-2.18/reference/help-all.json | 40935 +++++++++++----- .../subsystems/add-trailing-comma.mdx | 2 +- .../reference/subsystems/autoflake.mdx | 2 +- .../reference/subsystems/avro.mdx | 44 + .../reference/subsystems/bandit.mdx | 2 +- .../reference/subsystems/black.mdx | 2 +- .../version-2.18/reference/subsystems/buf.mdx | 4 +- .../subsystems/build-deprecations-fixer.mdx | 2 +- .../reference/subsystems/buildifier.mdx | 2 +- .../reference/subsystems/cc-external.mdx | 200 + .../reference/subsystems/cc-infer.mdx | 60 + .../version-2.18/reference/subsystems/cc.mdx | 134 + .../reference/subsystems/clang-format.mdx | 128 + .../version-2.18/reference/subsystems/cli.mdx | 2 +- .../version-2.18/reference/subsystems/cue.mdx | 142 + .../reference/subsystems/docformatter.mdx | 2 +- .../reference/subsystems/docker.mdx | 2 +- .../subsystems/environments-preview.mdx | 2 +- .../reference/subsystems/flake8.mdx | 2 +- .../reference/subsystems/go-test.mdx | 2 +- .../reference/subsystems/go-vet.mdx | 44 + .../reference/subsystems/gofmt.mdx | 2 +- .../reference/subsystems/golangci-lint.mdx | 168 + .../subsystems/google-java-format.mdx | 6 +- .../reference/subsystems/hadolint.mdx | 2 +- .../reference/subsystems/helm-unittest.mdx | 2 +- .../reference/subsystems/isort.mdx | 2 +- .../reference/subsystems/jarjar.mdx | 4 +- .../reference/subsystems/java-avro.mdx | 86 + .../reference/subsystems/java-thrift.mdx | 44 + .../reference/subsystems/junit.mdx | 6 +- .../reference/subsystems/ktlint.mdx | 6 +- .../reference/subsystems/kubeconform.mdx | 189 + .../reference/subsystems/mypy.mdx | 2 +- .../reference/subsystems/nodejs-infer.mdx | 2 +- .../reference/subsystems/nodejs-test.mdx | 93 + .../reference/subsystems/nodejs.mdx | 4 +- .../subsystems/openapi-generator.mdx | 86 + .../reference/subsystems/preamble.mdx | 2 +- .../reference/subsystems/prettier.mdx | 80 + .../subsystems/protobuf-java-grpc.mdx | 4 +- .../reference/subsystems/pydocstyle.mdx | 4 +- .../subsystems/pyenv-python-provider.mdx | 145 + .../reference/subsystems/pylint.mdx | 2 +- .../reference/subsystems/pyright.mdx | 92 + .../reference/subsystems/pytest.mdx | 2 +- .../reference/subsystems/python-infer.mdx | 4 +- .../reference/subsystems/python.mdx | 8 +- .../reference/subsystems/pytype.mdx | 2 +- .../reference/subsystems/pyupgrade.mdx | 2 +- .../reference/subsystems/regex-lint.mdx | 2 +- .../reference/subsystems/ruff.mdx | 2 +- .../reference/subsystems/rust.mdx | 58 + .../reference/subsystems/rustfmt.mdx | 44 + .../reference/subsystems/scalafmt.mdx | 6 +- .../reference/subsystems/scalapb.mdx | 4 +- .../reference/subsystems/scalatest.mdx | 6 +- .../reference/subsystems/scrooge.mdx | 86 + .../reference/subsystems/shell-test.mdx | 2 +- .../reference/subsystems/shellcheck.mdx | 2 +- .../reference/subsystems/shfmt.mdx | 2 +- .../reference/subsystems/shunit2.mdx | 2 +- .../reference/subsystems/spectral.mdx | 2 +- .../reference/subsystems/taplo.mdx | 172 + .../reference/subsystems/terraform-fmt.mdx | 2 +- .../reference/subsystems/terraform-tfsec.mdx | 138 + .../subsystems/terraform-validate.mdx | 2 +- .../reference/subsystems/twine.mdx | 2 +- .../reference/subsystems/visibility.mdx | 56 + .../reference/subsystems/yamllint.mdx | 2 +- .../reference/subsystems/yapf.mdx | 2 +- .../reference/targets/adhoc_tool.mdx | 4 +- .../reference/targets/archive.mdx | 12 +- .../reference/targets/avro_source.mdx | 104 + .../reference/targets/avro_sources.mdx | 132 + .../reference/targets/cc_source.mdx | 88 + .../reference/targets/cc_sources.mdx | 90 + .../reference/targets/cue_package.mdx | 61 + .../reference/targets/debian_package.mdx | 121 + .../reference/targets/deploy_jar.mdx | 10 +- .../reference/targets/docker_environment.mdx | 176 +- .../reference/targets/docker_image.mdx | 12 +- .../experimental_test_shell_command.mdx | 4 +- ...xperimental_wrap_as_go_package_sources.mdx | 4 +- .../experimental_wrap_as_java_sources.mdx | 4 +- .../experimental_wrap_as_kotlin_sources.mdx | 4 +- .../experimental_wrap_as_python_sources.mdx | 4 +- .../experimental_wrap_as_resources.mdx | 4 +- .../experimental_wrap_as_scala_sources.mdx | 4 +- .../version-2.18/reference/targets/file.mdx | 8 +- .../version-2.18/reference/targets/files.mdx | 8 +- .../reference/targets/go_binary.mdx | 6 +- .../version-2.18/reference/targets/go_mod.mdx | 4 +- .../reference/targets/go_package.mdx | 32 +- .../targets/go_third_party_package.mdx | 8 +- .../reference/targets/helm_artifact.mdx | 4 +- .../reference/targets/helm_chart.mdx | 98 +- .../reference/targets/helm_deployment.mdx | 92 +- .../reference/targets/helm_unittest_test.mdx | 8 +- .../reference/targets/helm_unittest_tests.mdx | 8 +- .../reference/targets/java_source.mdx | 8 +- .../reference/targets/java_sources.mdx | 8 +- .../reference/targets/javascript_source.mdx | 88 + .../reference/targets/javascript_sources.mdx | 119 + .../reference/targets/javascript_test.mdx | 128 + .../reference/targets/javascript_tests.mdx | 159 + .../reference/targets/junit_test.mdx | 8 +- .../reference/targets/junit_tests.mdx | 8 +- .../reference/targets/jvm_artifact.mdx | 6 +- .../reference/targets/jvm_war.mdx | 10 +- .../reference/targets/kotlin_junit_test.mdx | 8 +- .../reference/targets/kotlin_junit_tests.mdx | 8 +- .../reference/targets/kotlin_source.mdx | 8 +- .../reference/targets/kotlin_sources.mdx | 8 +- .../reference/targets/kotlinc_plugin.mdx | 4 +- .../reference/targets/local_environment.mdx | 172 +- .../reference/targets/node_package.mdx | 102 + .../targets/node_third_party_package.mdx | 89 + .../reference/targets/openapi_document.mdx | 70 +- .../reference/targets/openapi_documents.mdx | 70 +- .../reference/targets/openapi_source.mdx | 8 +- .../reference/targets/openapi_sources.mdx | 8 +- .../reference/targets/package_json.mdx | 93 + .../reference/targets/pants_requirements.mdx | 6 +- .../reference/targets/pex_binaries.mdx | 8 +- .../reference/targets/pex_binary.mdx | 10 +- .../reference/targets/pipenv_requirements.mdx | 4 +- .../reference/targets/poetry_requirements.mdx | 4 +- .../reference/targets/protobuf_source.mdx | 94 +- .../reference/targets/protobuf_sources.mdx | 94 +- .../reference/targets/pyoxidizer_binary.mdx | 6 +- .../targets/python_aws_lambda_function.mdx | 10 +- .../targets/python_aws_lambda_layer.mdx | 10 +- .../reference/targets/python_distribution.mdx | 34 +- .../targets/python_google_cloud_function.mdx | 10 +- .../reference/targets/python_requirement.mdx | 12 +- .../reference/targets/python_requirements.mdx | 4 +- .../reference/targets/python_source.mdx | 98 +- .../reference/targets/python_sources.mdx | 98 +- .../reference/targets/python_test.mdx | 130 +- .../reference/targets/python_test_utils.mdx | 98 +- .../reference/targets/python_tests.mdx | 130 +- .../reference/targets/relocated_files.mdx | 4 +- .../reference/targets/remote_environment.mdx | 172 +- .../reference/targets/resource.mdx | 8 +- .../reference/targets/resources.mdx | 8 +- .../reference/targets/run_shell_command.mdx | 4 +- .../reference/targets/rust_package.mdx | 73 + .../reference/targets/scala_artifact.mdx | 6 +- .../reference/targets/scala_junit_test.mdx | 8 +- .../reference/targets/scala_junit_tests.mdx | 8 +- .../reference/targets/scala_source.mdx | 8 +- .../reference/targets/scala_sources.mdx | 8 +- .../reference/targets/scalac_plugin.mdx | 4 +- .../reference/targets/scalatest_test.mdx | 8 +- .../reference/targets/scalatest_tests.mdx | 8 +- .../reference/targets/shell_command.mdx | 4 +- .../reference/targets/shell_source.mdx | 20 +- .../reference/targets/shell_sources.mdx | 20 +- .../reference/targets/shunit2_test.mdx | 26 +- .../reference/targets/shunit2_tests.mdx | 26 +- .../reference/targets/swift_source.mdx | 76 + .../reference/targets/swift_sources.mdx | 78 + .../reference/targets/system_binary.mdx | 4 +- .../version-2.18/reference/targets/target.mdx | 8 +- .../targets/terraform_deployment.mdx | 8 +- .../reference/targets/terraform_module.mdx | 20 +- .../reference/targets/thrift_source.mdx | 46 +- .../reference/targets/thrift_sources.mdx | 46 +- .../reference/targets/vcs_version.mdx | 4 +- 370 files changed, 39497 insertions(+), 18426 deletions(-) create mode 100644 versioned_docs/version-2.18/docs/.gitignore create mode 100644 versioned_docs/version-2.18/docs/NOTES.md delete mode 100644 versioned_docs/version-2.18/docs/ad-hoc-tools/_category_.json delete mode 100644 versioned_docs/version-2.18/docs/contributions/_category_.json delete mode 100644 versioned_docs/version-2.18/docs/contributions/development/_category_.json delete mode 100644 versioned_docs/version-2.18/docs/contributions/development/index.mdx delete mode 100644 versioned_docs/version-2.18/docs/contributions/releases/_category_.json delete mode 100644 versioned_docs/version-2.18/docs/contributions/releases/index.mdx delete mode 100644 versioned_docs/version-2.18/docs/docker/_category_.json delete mode 100644 versioned_docs/version-2.18/docs/getting-started/_category_.json delete mode 100644 versioned_docs/version-2.18/docs/getting-started/index.mdx delete mode 100644 versioned_docs/version-2.18/docs/getting-started/prerequisites.mdx delete mode 100644 versioned_docs/version-2.18/docs/go/_category_.json delete mode 100644 versioned_docs/version-2.18/docs/go/integrations/_category_.json delete mode 100644 versioned_docs/version-2.18/docs/go/integrations/index.mdx delete mode 100644 versioned_docs/version-2.18/docs/helm/_category_.json delete mode 100644 versioned_docs/version-2.18/docs/introduction/_category_.json delete mode 100644 versioned_docs/version-2.18/docs/java-and-scala/_category_.json rename versioned_docs/version-2.18/docs/{ad-hoc-tools/integrating-new-tools-without-plugins.mdx => markdown/Ad-Hoc Tools/adhoc-tool.md} (82%) rename versioned_docs/version-2.18/docs/{contributions/contribution-overview.mdx => markdown/Contributions/contributor-overview.md} (53%) create mode 100644 versioned_docs/version-2.18/docs/markdown/Contributions/development.md rename versioned_docs/version-2.18/docs/{contributions/development/debugging-and-benchmarking.mdx => markdown/Contributions/development/contributions-debugging.md} (66%) rename versioned_docs/version-2.18/docs/{contributions/development/developing-rust.mdx => markdown/Contributions/development/contributions-rust.md} (67%) rename versioned_docs/version-2.18/docs/{contributions/development/setting-up-pants.mdx => markdown/Contributions/development/contributor-setup.md} (54%) rename versioned_docs/version-2.18/docs/{contributions/development/internal-architecture.mdx => markdown/Contributions/development/internal-rules-architecture.md} (99%) rename versioned_docs/version-2.18/docs/{contributions/development/running-pants-from-sources.mdx => markdown/Contributions/development/running-pants-from-sources.md} (93%) rename versioned_docs/version-2.18/docs/{contributions/development/style-guide.mdx => markdown/Contributions/development/style-guide.md} (88%) create mode 100644 versioned_docs/version-2.18/docs/markdown/Contributions/releases.md rename versioned_docs/version-2.18/docs/{contributions/releases/github-actions-macos-arm64-runners.mdx => markdown/Contributions/releases/ci-for-macos-on-arm64.md} (95%) rename versioned_docs/version-2.18/docs/{contributions/releases/release-process.mdx => markdown/Contributions/releases/release-process.md} (87%) rename versioned_docs/version-2.18/docs/{contributions/releases/release-strategy.mdx => markdown/Contributions/releases/release-strategy.md} (54%) rename versioned_docs/version-2.18/docs/{docker/docker-overview.mdx => markdown/Docker/docker.md} (71%) rename versioned_docs/version-2.18/docs/{docker/tagging-docker-images.mdx => markdown/Docker/tagging-docker-images.md} (88%) create mode 100644 versioned_docs/version-2.18/docs/markdown/Getting Help/getting-help.md create mode 100644 versioned_docs/version-2.18/docs/markdown/Getting Help/service-providers.md create mode 100644 versioned_docs/version-2.18/docs/markdown/Getting Help/the-pants-community.md create mode 100644 versioned_docs/version-2.18/docs/markdown/Getting Help/the-pants-community/code-of-conduct.md create mode 100644 versioned_docs/version-2.18/docs/markdown/Getting Help/the-pants-community/contentious-decisions.md create mode 100644 versioned_docs/version-2.18/docs/markdown/Getting Help/the-pants-community/maintainers.md create mode 100644 versioned_docs/version-2.18/docs/markdown/Getting Help/the-pants-community/team.md create mode 100644 versioned_docs/version-2.18/docs/markdown/Getting Started/getting-started.md rename versioned_docs/version-2.18/docs/{getting-started/example-projects-and-repositories.mdx => markdown/Getting Started/getting-started/example-repos.md} (82%) rename versioned_docs/version-2.18/docs/{getting-started/incremental-adoption.mdx => markdown/Getting Started/getting-started/existing-repositories.md} (53%) rename versioned_docs/version-2.18/docs/{getting-started/initial-configuration.mdx => markdown/Getting Started/getting-started/initial-configuration.md} (50%) rename versioned_docs/version-2.18/docs/{getting-started/installing-pants.mdx => markdown/Getting Started/getting-started/installation.md} (62%) rename versioned_docs/version-2.18/docs/{getting-started/manual-installation.mdx => markdown/Getting Started/getting-started/manual-installation.md} (69%) create mode 100644 versioned_docs/version-2.18/docs/markdown/Getting Started/getting-started/prerequisites.md create mode 100644 versioned_docs/version-2.18/docs/markdown/Go/go-integrations.md rename versioned_docs/version-2.18/docs/{go/integrations/protobuf.mdx => markdown/Go/go-integrations/protobuf-go.md} (60%) rename versioned_docs/version-2.18/docs/{go/go-overview.mdx => markdown/Go/go.md} (68%) rename versioned_docs/version-2.18/docs/{helm/deployments.mdx => markdown/Helm/helm-deployments.md} (74%) rename versioned_docs/version-2.18/docs/{helm/kubeconform.mdx => markdown/Helm/helm-kubeconform.md} (60%) rename versioned_docs/version-2.18/docs/{helm/helm-overview.mdx => markdown/Helm/helm-overview.md} (81%) rename versioned_docs/version-2.18/docs/{introduction/how-does-pants-work.mdx => markdown/Introduction/how-does-pants-work.md} (79%) create mode 100644 versioned_docs/version-2.18/docs/markdown/Introduction/language-support.md create mode 100644 versioned_docs/version-2.18/docs/markdown/Introduction/media.md create mode 100644 versioned_docs/version-2.18/docs/markdown/Introduction/news-room.md create mode 100644 versioned_docs/version-2.18/docs/markdown/Introduction/sponsorship.md create mode 100644 versioned_docs/version-2.18/docs/markdown/Introduction/testimonials.md rename versioned_docs/version-2.18/docs/{introduction/welcome-to-pants.mdx => markdown/Introduction/welcome-to-pants.md} (77%) create mode 100644 versioned_docs/version-2.18/docs/markdown/Introduction/who-uses-pants.md rename versioned_docs/version-2.18/docs/{java-and-scala/java-and-scala-overview.mdx => markdown/Java and Scala/jvm-overview.md} (73%) rename versioned_docs/version-2.18/docs/{java-and-scala/kotlin.mdx => markdown/Java and Scala/kotlin.md} (63%) create mode 100644 versioned_docs/version-2.18/docs/markdown/Python/python-goals.md rename versioned_docs/version-2.18/docs/{python/goals/check.mdx => markdown/Python/python-goals/python-check-goal.md} (59%) rename versioned_docs/version-2.18/docs/{python/goals/fmt.mdx => markdown/Python/python-goals/python-fmt-goal.md} (55%) create mode 100644 versioned_docs/version-2.18/docs/markdown/Python/python-goals/python-lint-goal.md rename versioned_docs/version-2.18/docs/{python/goals/package.mdx => markdown/Python/python-goals/python-package-goal.md} (62%) rename versioned_docs/version-2.18/docs/{python/goals/publish.mdx => markdown/Python/python-goals/python-publish-goal.md} (77%) rename versioned_docs/version-2.18/docs/{python/goals/repl.mdx => markdown/Python/python-goals/python-repl-goal.md} (62%) rename versioned_docs/version-2.18/docs/{python/goals/run.mdx => markdown/Python/python-goals/python-run-goal.md} (50%) rename versioned_docs/version-2.18/docs/{python/goals/test.mdx => markdown/Python/python-goals/python-test-goal.md} (62%) create mode 100644 versioned_docs/version-2.18/docs/markdown/Python/python-integrations.md rename versioned_docs/version-2.18/docs/{python/integrations/aws-lambda.mdx => markdown/Python/python-integrations/awslambda-python.md} (73%) rename versioned_docs/version-2.18/docs/{python/integrations/google-cloud-functions.mdx => markdown/Python/python-integrations/google-cloud-function-python.md} (63%) rename versioned_docs/version-2.18/docs/{python/integrations/jupyter.mdx => markdown/Python/python-integrations/jupyter.md} (85%) rename versioned_docs/version-2.18/docs/{python/integrations/protobuf-and-grpc.mdx => markdown/Python/python-integrations/protobuf-python.md} (50%) rename versioned_docs/version-2.18/docs/{python/integrations/pyoxidizer.mdx => markdown/Python/python-integrations/pyoxidizer.md} (69%) create mode 100644 versioned_docs/version-2.18/docs/markdown/Python/python-integrations/thrift-python.md create mode 100644 versioned_docs/version-2.18/docs/markdown/Python/python.md rename versioned_docs/version-2.18/docs/{python/python-overview/pex-files.mdx => markdown/Python/python/pex-files.md} (92%) create mode 100644 versioned_docs/version-2.18/docs/markdown/Python/python/python-backend.md rename versioned_docs/version-2.18/docs/{python/python-overview/building-distributions.mdx => markdown/Python/python/python-distributions.md} (68%) rename versioned_docs/version-2.18/docs/{python/python-overview/interpreter-compatibility.mdx => markdown/Python/python/python-interpreter-compatibility.md} (59%) rename versioned_docs/version-2.18/docs/{python/python-overview/linters-and-formatters.mdx => markdown/Python/python/python-linters-and-formatters.md} (76%) rename versioned_docs/version-2.18/docs/{python/python-overview/lockfiles.mdx => markdown/Python/python/python-lockfiles.md} (73%) rename versioned_docs/version-2.18/docs/{python/python-overview/third-party-dependencies.mdx => markdown/Python/python/python-third-party-dependencies.md} (79%) create mode 100644 versioned_docs/version-2.18/docs/markdown/Releases/changelog.md rename versioned_docs/version-2.18/docs/{releases/deprecation-policy.mdx => markdown/Releases/deprecation-policy.md} (81%) rename versioned_docs/version-2.18/docs/{releases/upgrade-tips.mdx => markdown/Releases/upgrade-tips.md} (52%) create mode 100644 versioned_docs/version-2.18/docs/markdown/Releases/versions.md create mode 100644 versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-1-25.md create mode 100644 versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-1-26.md create mode 100644 versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-1-27.md create mode 100644 versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-1-28.md create mode 100644 versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-1-29.md create mode 100644 versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-1-30.md create mode 100644 versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-2-0.md create mode 100644 versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-2-1.md create mode 100644 versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-2-2.md create mode 100644 versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-2-3.md create mode 100644 versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-2-4.md create mode 100644 versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-2-5.md rename versioned_docs/version-2.18/docs/{shell/run-shell-commands.mdx => markdown/Shell/run-shell-commands.md} (59%) rename versioned_docs/version-2.18/docs/{shell/shell-overview.mdx => markdown/Shell/shell.md} (66%) rename versioned_docs/version-2.18/docs/{tutorials-coming-soon/advanced-plugin-concepts.mdx => markdown/Tutorials/advanced-plugin-concepts.md} (84%) rename versioned_docs/version-2.18/docs/{tutorials-coming-soon/create-a-new-goal.mdx => markdown/Tutorials/create-a-new-goal.md} (79%) rename versioned_docs/version-2.18/docs/{tutorials-coming-soon/testing-plugins.mdx => markdown/Tutorials/test-custom-plugin-goal.md} (87%) rename versioned_docs/version-2.18/docs/{using-pants/advanced-target-selection.mdx => markdown/Using Pants/advanced-target-selection.md} (71%) rename versioned_docs/version-2.18/docs/{using-pants/anonymous-telemetry.mdx => markdown/Using Pants/anonymous-telemetry.md} (80%) rename versioned_docs/version-2.18/docs/{using-pants/assets-and-archives.mdx => markdown/Using Pants/assets.md} (77%) rename versioned_docs/version-2.18/docs/{using-pants/command-line-help.mdx => markdown/Using Pants/command-line-help.md} (94%) create mode 100644 versioned_docs/version-2.18/docs/markdown/Using Pants/concepts.md create mode 100644 versioned_docs/version-2.18/docs/markdown/Using Pants/concepts/enabling-backends.md rename versioned_docs/version-2.18/docs/{using-pants/key-concepts/goals.mdx => markdown/Using Pants/concepts/goals.md} (72%) rename versioned_docs/version-2.18/docs/{using-pants/key-concepts/options.mdx => markdown/Using Pants/concepts/options.md} (83%) rename versioned_docs/version-2.18/docs/{using-pants/key-concepts/source-roots.mdx => markdown/Using Pants/concepts/source-roots.md} (67%) rename versioned_docs/version-2.18/docs/{using-pants/key-concepts/targets-and-build-files.mdx => markdown/Using Pants/concepts/targets.md} (52%) rename versioned_docs/version-2.18/docs/{using-pants/environments:-cross-platform-or-remote-builds.mdx => markdown/Using Pants/environments.md} (52%) rename versioned_docs/version-2.18/docs/{using-pants/generating-version-tags-from-git.mdx => markdown/Using Pants/generating-version-tags.md} (89%) rename versioned_docs/version-2.18/docs/{using-pants/project-introspection.mdx => markdown/Using Pants/project-introspection.md} (70%) rename versioned_docs/version-2.18/docs/{using-pants/remote-caching-&-execution/index.mdx => markdown/Using Pants/remote-caching-execution.md} (88%) rename versioned_docs/version-2.18/docs/{using-pants/remote-caching-&-execution/remote-caching.mdx => markdown/Using Pants/remote-caching-execution/remote-caching.md} (78%) rename versioned_docs/version-2.18/docs/{using-pants/remote-caching-&-execution/remote-execution.mdx => markdown/Using Pants/remote-caching-execution/remote-execution.md} (72%) rename versioned_docs/version-2.18/docs/{using-pants/restricted-internet-access.mdx => markdown/Using Pants/restricted-internet-access.md} (73%) rename versioned_docs/version-2.18/docs/{using-pants/setting-up-an-ide.mdx => markdown/Using Pants/setting-up-an-ide.md} (82%) rename versioned_docs/version-2.18/docs/{using-pants/troubleshooting-common-issues.mdx => markdown/Using Pants/troubleshooting.md} (73%) create mode 100644 versioned_docs/version-2.18/docs/markdown/Using Pants/using-pants-in-ci.md rename versioned_docs/version-2.18/docs/{using-pants/validating-dependencies.mdx => markdown/Using Pants/validating-dependencies.md} (80%) create mode 100644 versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks.md rename versioned_docs/version-2.18/docs/{writing-plugins/common-plugin-tasks/plugin-upgrade-guide.mdx => markdown/Writing Plugins/common-plugin-tasks/plugin-upgrade-guide.md} (84%) rename versioned_docs/version-2.18/docs/{writing-plugins/common-plugin-tasks/add-codegen.mdx => markdown/Writing Plugins/common-plugin-tasks/plugins-codegen.md} (83%) rename versioned_docs/version-2.18/docs/{writing-plugins/common-plugin-tasks/add-a-formatter.mdx => markdown/Writing Plugins/common-plugin-tasks/plugins-fmt-goal.md} (83%) rename versioned_docs/version-2.18/docs/{writing-plugins/common-plugin-tasks/add-a-linter.mdx => markdown/Writing Plugins/common-plugin-tasks/plugins-lint-goal.md} (84%) create mode 100644 versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-package-goal.md rename versioned_docs/version-2.18/docs/{writing-plugins/common-plugin-tasks/add-a-repl.mdx => markdown/Writing Plugins/common-plugin-tasks/plugins-repl-goal.md} (91%) create mode 100644 versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-run-goal.md rename versioned_docs/version-2.18/docs/{writing-plugins/common-plugin-tasks/custom-python-artifact-kwargs.mdx => markdown/Writing Plugins/common-plugin-tasks/plugins-setup-py.md} (70%) rename versioned_docs/version-2.18/docs/{writing-plugins/common-plugin-tasks/run-tests.mdx => markdown/Writing Plugins/common-plugin-tasks/plugins-test-goal.md} (88%) rename versioned_docs/version-2.18/docs/{writing-plugins/common-plugin-tasks/add-a-typechecker.mdx => markdown/Writing Plugins/common-plugin-tasks/plugins-typecheck-goal.md} (71%) rename versioned_docs/version-2.18/docs/{writing-plugins/macros.mdx => markdown/Writing Plugins/macros.md} (79%) rename versioned_docs/version-2.18/docs/{writing-plugins/plugins-overview.mdx => markdown/Writing Plugins/plugins-overview.md} (68%) create mode 100644 versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api.md rename versioned_docs/version-2.18/docs/{writing-plugins/the-rules-api/rules-and-the-target-api.mdx => markdown/Writing Plugins/rules-api/rules-api-and-target-api.md} (91%) rename versioned_docs/version-2.18/docs/{writing-plugins/the-rules-api/concepts.mdx => markdown/Writing Plugins/rules-api/rules-api-concepts.md} (78%) rename versioned_docs/version-2.18/docs/{writing-plugins/the-rules-api/file-system.mdx => markdown/Writing Plugins/rules-api/rules-api-file-system.md} (86%) rename versioned_docs/version-2.18/docs/{writing-plugins/the-rules-api/goal-rules.mdx => markdown/Writing Plugins/rules-api/rules-api-goal-rules.md} (64%) rename versioned_docs/version-2.18/docs/{writing-plugins/the-rules-api/installing-tools.mdx => markdown/Writing Plugins/rules-api/rules-api-installing-tools.md} (70%) rename versioned_docs/version-2.18/docs/{writing-plugins/the-rules-api/logging-and-dynamic-output.mdx => markdown/Writing Plugins/rules-api/rules-api-logging.md} (70%) rename versioned_docs/version-2.18/docs/{writing-plugins/the-rules-api/processes.mdx => markdown/Writing Plugins/rules-api/rules-api-process.md} (72%) create mode 100644 versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-subsystems.md rename versioned_docs/version-2.18/docs/{writing-plugins/the-rules-api/testing-plugins.mdx => markdown/Writing Plugins/rules-api/rules-api-testing.md} (89%) rename versioned_docs/version-2.18/docs/{writing-plugins/the-rules-api/tips-and-debugging.mdx => markdown/Writing Plugins/rules-api/rules-api-tips.md} (85%) rename versioned_docs/version-2.18/docs/{writing-plugins/the-rules-api/union-rules-advanced.mdx => markdown/Writing Plugins/rules-api/rules-api-unions.md} (91%) create mode 100644 versioned_docs/version-2.18/docs/markdown/Writing Plugins/target-api.md rename versioned_docs/version-2.18/docs/{writing-plugins/the-target-api/concepts.mdx => markdown/Writing Plugins/target-api/target-api-concepts.md} (76%) rename versioned_docs/version-2.18/docs/{writing-plugins/the-target-api/extending-existing-targets.mdx => markdown/Writing Plugins/target-api/target-api-extending-targets.md} (73%) rename versioned_docs/version-2.18/docs/{writing-plugins/the-target-api/creating-new-fields.mdx => markdown/Writing Plugins/target-api/target-api-new-fields.md} (81%) create mode 100644 versioned_docs/version-2.18/docs/markdown/Writing Plugins/target-api/target-api-new-targets.md delete mode 100644 versioned_docs/version-2.18/docs/python/_category_.json delete mode 100644 versioned_docs/version-2.18/docs/python/goals/_category_.json delete mode 100644 versioned_docs/version-2.18/docs/python/goals/index.mdx delete mode 100644 versioned_docs/version-2.18/docs/python/goals/lint.mdx delete mode 100644 versioned_docs/version-2.18/docs/python/integrations/_category_.json delete mode 100644 versioned_docs/version-2.18/docs/python/integrations/index.mdx delete mode 100644 versioned_docs/version-2.18/docs/python/integrations/thrift.mdx delete mode 100644 versioned_docs/version-2.18/docs/python/python-overview/_category_.json delete mode 100644 versioned_docs/version-2.18/docs/python/python-overview/enabling-python-support.mdx delete mode 100644 versioned_docs/version-2.18/docs/python/python-overview/index.mdx delete mode 100644 versioned_docs/version-2.18/docs/releases/_category_.json delete mode 100644 versioned_docs/version-2.18/docs/shell/_category_.json delete mode 100644 versioned_docs/version-2.18/docs/tutorials-coming-soon/_category_.json delete mode 100644 versioned_docs/version-2.18/docs/using-pants/_category_.json delete mode 100644 versioned_docs/version-2.18/docs/using-pants/key-concepts/_category_.json delete mode 100644 versioned_docs/version-2.18/docs/using-pants/key-concepts/backends.mdx delete mode 100644 versioned_docs/version-2.18/docs/using-pants/key-concepts/index.mdx delete mode 100644 versioned_docs/version-2.18/docs/using-pants/remote-caching-&-execution/_category_.json delete mode 100644 versioned_docs/version-2.18/docs/using-pants/using-pants-in-ci.mdx delete mode 100644 versioned_docs/version-2.18/docs/writing-plugins/_category_.json delete mode 100644 versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/_category_.json delete mode 100644 versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/index.mdx delete mode 100644 versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/plugin-helpers.mdx delete mode 100644 versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/_category_.json delete mode 100644 versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/index.mdx delete mode 100644 versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/options-and-subsystems.mdx delete mode 100644 versioned_docs/version-2.18/docs/writing-plugins/the-target-api/_category_.json delete mode 100644 versioned_docs/version-2.18/docs/writing-plugins/the-target-api/creating-new-targets.mdx delete mode 100644 versioned_docs/version-2.18/docs/writing-plugins/the-target-api/index.mdx create mode 100644 versioned_docs/version-2.18/reference/goals/go-dump-import-path-mapping.mdx create mode 100644 versioned_docs/version-2.18/reference/goals/go-export-cgo-codegen.mdx create mode 100644 versioned_docs/version-2.18/reference/goals/go-show-package-analysis.mdx create mode 100644 versioned_docs/version-2.18/reference/goals/java-dump-source-analysis.mdx create mode 100644 versioned_docs/version-2.18/reference/goals/jvm-symbol-map.mdx create mode 100644 versioned_docs/version-2.18/reference/goals/kotlin-dump-source-analysis.mdx create mode 100644 versioned_docs/version-2.18/reference/goals/scala-dump-source-analysis.mdx create mode 100644 versioned_docs/version-2.18/reference/subsystems/avro.mdx create mode 100644 versioned_docs/version-2.18/reference/subsystems/cc-external.mdx create mode 100644 versioned_docs/version-2.18/reference/subsystems/cc-infer.mdx create mode 100644 versioned_docs/version-2.18/reference/subsystems/cc.mdx create mode 100644 versioned_docs/version-2.18/reference/subsystems/clang-format.mdx create mode 100644 versioned_docs/version-2.18/reference/subsystems/cue.mdx create mode 100644 versioned_docs/version-2.18/reference/subsystems/go-vet.mdx create mode 100644 versioned_docs/version-2.18/reference/subsystems/golangci-lint.mdx create mode 100644 versioned_docs/version-2.18/reference/subsystems/java-avro.mdx create mode 100644 versioned_docs/version-2.18/reference/subsystems/java-thrift.mdx create mode 100644 versioned_docs/version-2.18/reference/subsystems/kubeconform.mdx create mode 100644 versioned_docs/version-2.18/reference/subsystems/nodejs-test.mdx create mode 100644 versioned_docs/version-2.18/reference/subsystems/openapi-generator.mdx create mode 100644 versioned_docs/version-2.18/reference/subsystems/prettier.mdx create mode 100644 versioned_docs/version-2.18/reference/subsystems/pyenv-python-provider.mdx create mode 100644 versioned_docs/version-2.18/reference/subsystems/pyright.mdx create mode 100644 versioned_docs/version-2.18/reference/subsystems/rust.mdx create mode 100644 versioned_docs/version-2.18/reference/subsystems/rustfmt.mdx create mode 100644 versioned_docs/version-2.18/reference/subsystems/scrooge.mdx create mode 100644 versioned_docs/version-2.18/reference/subsystems/taplo.mdx create mode 100644 versioned_docs/version-2.18/reference/subsystems/terraform-tfsec.mdx create mode 100644 versioned_docs/version-2.18/reference/subsystems/visibility.mdx create mode 100644 versioned_docs/version-2.18/reference/targets/avro_source.mdx create mode 100644 versioned_docs/version-2.18/reference/targets/avro_sources.mdx create mode 100644 versioned_docs/version-2.18/reference/targets/cc_source.mdx create mode 100644 versioned_docs/version-2.18/reference/targets/cc_sources.mdx create mode 100644 versioned_docs/version-2.18/reference/targets/cue_package.mdx create mode 100644 versioned_docs/version-2.18/reference/targets/debian_package.mdx create mode 100644 versioned_docs/version-2.18/reference/targets/javascript_source.mdx create mode 100644 versioned_docs/version-2.18/reference/targets/javascript_sources.mdx create mode 100644 versioned_docs/version-2.18/reference/targets/javascript_test.mdx create mode 100644 versioned_docs/version-2.18/reference/targets/javascript_tests.mdx create mode 100644 versioned_docs/version-2.18/reference/targets/node_package.mdx create mode 100644 versioned_docs/version-2.18/reference/targets/node_third_party_package.mdx create mode 100644 versioned_docs/version-2.18/reference/targets/package_json.mdx create mode 100644 versioned_docs/version-2.18/reference/targets/rust_package.mdx create mode 100644 versioned_docs/version-2.18/reference/targets/swift_source.mdx create mode 100644 versioned_docs/version-2.18/reference/targets/swift_sources.mdx diff --git a/versioned_docs/version-2.18/docs/.gitignore b/versioned_docs/version-2.18/docs/.gitignore new file mode 100644 index 000000000..f71737daa --- /dev/null +++ b/versioned_docs/version-2.18/docs/.gitignore @@ -0,0 +1,3 @@ +node_modules +package.json +package-lock.json diff --git a/versioned_docs/version-2.18/docs/NOTES.md b/versioned_docs/version-2.18/docs/NOTES.md new file mode 100644 index 000000000..ad0fbb383 --- /dev/null +++ b/versioned_docs/version-2.18/docs/NOTES.md @@ -0,0 +1,60 @@ +# Docs process + +Pants currently hosts documentation at Readme.com, and we use a combination of their `rdme` tool to sync handwritten markdown docs, and a custom `generate-docs` script to update Pants' reference documentation. + +Currently the rdme process is manual, until we bed down the process, at which point we'll add it to CI. + +The motivation for in-repo docs is covered [on this Google doc](https://docs.google.com/document/d/1bZE8PlF9oRzcPQz4-JUFr5vfD0LFHH4V3Nj2k221CFM/view) + +## Versions + +Readme expects every version of the docs to correspond to a semver release. Our convention is as follows: + +- A version on readme.com corresponds to a pants release (e.g. pants `v2.11` has docs `v2.11`) +- The current development (`main` branch) docs are kept in a readme.com version that will reflect the next version of Pants (e.g. if the most recent release branch is `v2.97`, then `main`'s docs should be synced to `v2.98`). + +# Using `rdme` (general notes) + +## Setup + +### Install `node` + +``` +brew install node +``` + +### Install `rdme` + +From the `docs` directory, + +``` +npm install rdme +``` + +### Log in. + +``` +npx rdme login --project pants +``` + +(`rdme` will prompt for two-factor-authentication codes if necessary) + +## When cutting a new release branch + +Create a fork of the most recent docs branch, and mark it as `beta`, for example: + +``` +npx rdme versions:create --version=v2.98 --fork="v2.97" --main=false --beta=true --isPublic=true +``` + +will create a new docs version, `2.98` based on a copy of the docs from version `2.97`. + +## Sync docs changes up to `readme.com` + +Docs markdown files are stored in the `markdown` directory. `rdme` does not do bidirectional sync, so any changes made on readme.com itself _will be deleted_. Make sure you apply any changes from readme.com locally before syncing up. + +From the root of the repository: + +``` +npx rdme docs docs/markdown --version v2.98 +``` diff --git a/versioned_docs/version-2.18/docs/ad-hoc-tools/_category_.json b/versioned_docs/version-2.18/docs/ad-hoc-tools/_category_.json deleted file mode 100644 index 3c9bf52cd..000000000 --- a/versioned_docs/version-2.18/docs/ad-hoc-tools/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Ad-Hoc Tools", - "position": 11 -} diff --git a/versioned_docs/version-2.18/docs/contributions/_category_.json b/versioned_docs/version-2.18/docs/contributions/_category_.json deleted file mode 100644 index fa33a274f..000000000 --- a/versioned_docs/version-2.18/docs/contributions/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Contributions", - "position": 14 -} diff --git a/versioned_docs/version-2.18/docs/contributions/development/_category_.json b/versioned_docs/version-2.18/docs/contributions/development/_category_.json deleted file mode 100644 index d07b6dbf2..000000000 --- a/versioned_docs/version-2.18/docs/contributions/development/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Development", - "position": 2 -} diff --git a/versioned_docs/version-2.18/docs/contributions/development/index.mdx b/versioned_docs/version-2.18/docs/contributions/development/index.mdx deleted file mode 100644 index 081ae52d7..000000000 --- a/versioned_docs/version-2.18/docs/contributions/development/index.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- - title: Development - sidebar_position: 1 ---- - -How to make code changes to Pants. - ---- - -- [Setting up Pants](./setting-up-pants.mdx) -- [Style guide](./style-guide.mdx) -- [Developing Rust](./developing-rust.mdx) -- [Internal Architecture](./internal-architecture.mdx) -- [Debugging and benchmarking](./debugging-and-benchmarking.mdx) -- [Running Pants from sources](./running-pants-from-sources.mdx) diff --git a/versioned_docs/version-2.18/docs/contributions/releases/_category_.json b/versioned_docs/version-2.18/docs/contributions/releases/_category_.json deleted file mode 100644 index d2674b769..000000000 --- a/versioned_docs/version-2.18/docs/contributions/releases/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Releases", - "position": 3 -} diff --git a/versioned_docs/version-2.18/docs/contributions/releases/index.mdx b/versioned_docs/version-2.18/docs/contributions/releases/index.mdx deleted file mode 100644 index 6526e10b0..000000000 --- a/versioned_docs/version-2.18/docs/contributions/releases/index.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- - title: Releases - sidebar_position: 2 ---- - ---- - -- [Release strategy](./release-strategy.mdx) -- [Release process](./release-process.mdx) diff --git a/versioned_docs/version-2.18/docs/docker/_category_.json b/versioned_docs/version-2.18/docs/docker/_category_.json deleted file mode 100644 index c586575d7..000000000 --- a/versioned_docs/version-2.18/docs/docker/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Docker", - "position": 9 -} diff --git a/versioned_docs/version-2.18/docs/getting-started/_category_.json b/versioned_docs/version-2.18/docs/getting-started/_category_.json deleted file mode 100644 index 877a378f7..000000000 --- a/versioned_docs/version-2.18/docs/getting-started/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Getting Started", - "position": 2 -} diff --git a/versioned_docs/version-2.18/docs/getting-started/index.mdx b/versioned_docs/version-2.18/docs/getting-started/index.mdx deleted file mode 100644 index d6386f817..000000000 --- a/versioned_docs/version-2.18/docs/getting-started/index.mdx +++ /dev/null @@ -1,18 +0,0 @@ ---- - title: Getting started - sidebar_position: 0 ---- - ---- - -Thanks for your interest in trying out Pants! - -We recommend joining our [Slack workspace](/community/members), in case you have any questions along the way. - -And if you want to show support for the project, [GitHub stars](https://github.com/pantsbuild/pants) are always appreciated! - -- [Prerequisites](./prerequisites.mdx) -- [Installing Pants](./installing-pants.mdx) -- [Initial configuration](./initial-configuration.mdx) -- [Example repositories](./example-projects-and-repositories.mdx) -- [Incremental adoption](./incremental-adoption.mdx) diff --git a/versioned_docs/version-2.18/docs/getting-started/prerequisites.mdx b/versioned_docs/version-2.18/docs/getting-started/prerequisites.mdx deleted file mode 100644 index 3aa692f15..000000000 --- a/versioned_docs/version-2.18/docs/getting-started/prerequisites.mdx +++ /dev/null @@ -1,63 +0,0 @@ ---- - title: Prerequisites - sidebar_position: 0 ---- - ---- - -To run Pants, you need: - -- One of: - - Linux (x86_64 or ARM64) - - macOS (Intel or Apple Silicon, 10.15 Catalina or newer) - - Microsoft Windows 10 with WSL 2 -- Internet access (so that Pants can fully bootstrap itself) - -:::note Restricted Internet access? -See [Restricted Internet access](../../using-pants/restricted-internet-access.mdx) for instructions. -::: - -## System-specific notes - -### Linux - -:::caution Some Linux distributions may need additional packages -On Ubuntu you may need to run: -`apt install -y python3-dev python3-distutils`. -::: - -:::caution Alpine Linux is not yet supported -Pants for Linux is currently distributed as a manylinux wheel. Alpine Linux is not covered by manylinux (it uses MUSL libc while manylinux requires glibc), so at present Pants will not run on Alpine Linux. - -If you need to run Pants on Alpine, [let us know](/community/members), so we can prioritize this work. Meanwhile, you can try [building Pants yourself](./manual-installation.mdx#building-pants-from-sources) on Alpine. -::: - -:::caution Linux on ARM will be supported from Pants 2.16 -Pants 2.16 will be distributed for Linux x86_64 and ARM64. Earlier versions are only distributed for Linux x86_64. - -If you need to run an earlier version of Pants on ARM, you can try [building Pants yourself](./manual-installation.mdx#building-pants-from-sources) on that platform. -::: - -### macOS - -:::note Apple Silicon (M1/M2) support -If running Pants inside a Docker container on an Apple Silicon machine you may need to set `--no-watch-filesystem --no-pantsd`. This is because notifications on native macOS files aren't mirrored over to the virtualized Linux system. - -We don't recommend setting this permanently, as these options are crucial for performance when iterating. Instead, you may want to look at the new [Environments](../../using-pants/environments:-cross-platform-or-remote-builds.mdx) feature, that lets Pants run natively on macOS but selectively invoke processes in a Docker container. -::: - -### Microsoft Windows - -:::note Windows 10 support -Pants runs on Windows 10 under the Windows Subsystem for Linux (WSL): - -- Follow [these instructions](https://docs.microsoft.com/en-us/windows/wsl/install-win10) to install WSL 2. -- Install a recent Linux distribution under WSL 2 (we have tested with Ubuntu 20.04 LTS). -- Run `sudo apt install unzip python3-dev python3-distutils python3-venv gcc` in the distribution. -- You can then run Pants commands in a Linux shell, or in a Windows shell by prefixing with `wsl `. - -Projects using Pants must be contained within the Linux virtual machine: - -- Navigating a Linux shell to a Windows directory via the `/mnt` directory, or using the `wsl` prefix with a Windows shell in a Windows directory, and executing Pants may result in unexpected behavior. - -::: diff --git a/versioned_docs/version-2.18/docs/go/_category_.json b/versioned_docs/version-2.18/docs/go/_category_.json deleted file mode 100644 index f38a2baa9..000000000 --- a/versioned_docs/version-2.18/docs/go/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Go", - "position": 6 -} diff --git a/versioned_docs/version-2.18/docs/go/integrations/_category_.json b/versioned_docs/version-2.18/docs/go/integrations/_category_.json deleted file mode 100644 index f8777284b..000000000 --- a/versioned_docs/version-2.18/docs/go/integrations/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Integrations", - "position": 2 -} diff --git a/versioned_docs/version-2.18/docs/go/integrations/index.mdx b/versioned_docs/version-2.18/docs/go/integrations/index.mdx deleted file mode 100644 index 9ffd9a7ed..000000000 --- a/versioned_docs/version-2.18/docs/go/integrations/index.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- - title: Integrations - sidebar_position: 1 ---- - -Useful integrations for Golang. - ---- - -- [Protobuf](./protobuf.mdx) diff --git a/versioned_docs/version-2.18/docs/helm/_category_.json b/versioned_docs/version-2.18/docs/helm/_category_.json deleted file mode 100644 index 34bf47e92..000000000 --- a/versioned_docs/version-2.18/docs/helm/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Helm", - "position": 10 -} diff --git a/versioned_docs/version-2.18/docs/introduction/_category_.json b/versioned_docs/version-2.18/docs/introduction/_category_.json deleted file mode 100644 index fa1c06ac8..000000000 --- a/versioned_docs/version-2.18/docs/introduction/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Introduction", - "position": 1 -} diff --git a/versioned_docs/version-2.18/docs/java-and-scala/_category_.json b/versioned_docs/version-2.18/docs/java-and-scala/_category_.json deleted file mode 100644 index 2e3bfc81a..000000000 --- a/versioned_docs/version-2.18/docs/java-and-scala/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Java and Scala", - "position": 7 -} diff --git a/versioned_docs/version-2.18/docs/ad-hoc-tools/integrating-new-tools-without-plugins.mdx b/versioned_docs/version-2.18/docs/markdown/Ad-Hoc Tools/adhoc-tool.md similarity index 82% rename from versioned_docs/version-2.18/docs/ad-hoc-tools/integrating-new-tools-without-plugins.mdx rename to versioned_docs/version-2.18/docs/markdown/Ad-Hoc Tools/adhoc-tool.md index c62348742..4cd8b025d 100644 --- a/versioned_docs/version-2.18/docs/ad-hoc-tools/integrating-new-tools-without-plugins.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Ad-Hoc Tools/adhoc-tool.md @@ -1,15 +1,15 @@ --- - title: Integrating new tools without plugins - sidebar_position: 999 +title: "Integrating new tools without plugins" +slug: "adhoc-tool" +hidden: false +createdAt: "2023-03-20T00:00:00.000Z" --- ---- - -## Integrating new tools without plugins +# Integrating new tools without plugins The `adhoc_tool` target allows you to execute "runnable" targets inside the Pants sandbox. Runnable targets include first-party sources that can be run with `pants run`, 3rd-party dependencies like `python_requirement` or `jvm_artifact`, or even executables that exist on your system and managed externally to Pants. -`adhoc_tool` provides you with the building blocks needed to put together a custom build process without needing to develop and maintain a plugin. The level of initial effort involved in using `adhoc_tool` is significantly lower than that of [writing a plugin](../writing-plugins/plugins-overview.mdx), so it's well-suited to consuming one-off scripts, or for rapidly prototyping a process before actually writing a plugin. The tradeoff is that there is more manual work involved in defining build processes that reflect your codebase's structure, and that the targets that define the tools you consume are less easy to reuse. +`adhoc_tool` provides you with the building blocks needed to put together a custom build process without needing to develop and maintain a plugin. The level of initial effort involved in using `adhoc_tool` is significantly lower than that of [writing a plugin](doc:plugins-overview), so it's well-suited to consuming one-off scripts, or for rapidly prototyping a process before actually writing a plugin. The tradeoff is that there is more manual work involved in defining build processes that reflect your codebase's structure, and that the targets that define the tools you consume are less easy to reuse. The `antlr` demo in the [`example-adhoc` respository](https://github.com/pantsbuild/example-adhoc) shows an example of running a JVM-based tool to transparently generate Python code that can be used in another language: @@ -28,21 +28,21 @@ adhoc_tool( ) ``` -### `runnable` targets +## `runnable` targets "Runnable" targets are targets that Pants knows how to execute within its sandbox. Generally, these correspond to targets that can be executed with the `pants run` goal, and include first-party source files, as well as third-party dependencies. The tool will be run with values from `args` specified as arguments. By default, the process' working directory will be the directory where the `BUILD` file is defined. This can be adjusted using the `workdir` field. -:::caution `runnable` targets must be pure functions -When run by `adhoc_tool`, Pants assumes that the inputs provided to the process -- that is, the values of the `adhoc_tool`'s fields, and the contents of the runnable and execution dependencies -- fully describe the output. Output values will be [cached](../introduction/how-does-pants-work.mdx#caching) by Pants, and future invocations with identical inputs will be retrieved from the cache instead of being re-executed. If your process has behavior that is not fully defined by its inputs, Pants' behavior may be unexpected or inconsistent. -::: +> 🚧 `runnable` targets must be pure functions +> +> When run by `adhoc_tool`, Pants assumes that the inputs provided to the process -- that is, the values of the `adhoc_tool`'s fields, and the contents of the runnable and execution dependencies -- fully describe the output. Output values will be [cached](doc:how-does-pants-work#caching) by Pants, and future invocations with identical inputs will be retrieved from the cache instead of being re-executed. If your process has behavior that is not fully defined by its inputs, Pants' behavior may be unexpected or inconsistent. -:::caution `runnable` targets must be idempotent -`adhoc_tool` processes may be cancelled or retried any number of times, so it is important that any side effects are idempotent. That is, it should not matter if it is run several times, or only partially. -::: +> 🚧 `runnable` targets must be idempotent +> +> `adhoc_tool` processes may be cancelled or retried any number of times, so it is important that any side effects are idempotent. That is, it should not matter if it is run several times, or only partially. -### Specifying dependencies +## Specifying dependencies `adhoc_tool` has more complexity surrounding dependencies compared with Pants' first-class targets. This is because you need to do manual work to set up the execution environment, which is usually taken care of by plugin code. @@ -54,7 +54,7 @@ When run by `adhoc_tool`, Pants assumes that the inputs provided to the process In the `antlr` example, `output_dependencies` is used because the tool produces Python-based bindings that depend on a runtime library. `execution_dependencies` specifies the sources that are consumed by the tool, but do not need to be consumed by subsequent build steps. -### Specifying outputs +## Specifying outputs Generally, `adhoc_tool` targets are run to produce outputs that can be supplied to other targets. These can be in the form of files or directories that are output directly by the tools: use the `output_files` field to capture individual files, or `output_directories` to capture entire directories as output. @@ -62,7 +62,7 @@ Files are captured relative to the build root by default: this is useful when pa Finally, if you want to capture `stdout` or `stderr` from your tool, you can use the `stdout` or `stderr` fields. These specify filenames where those streams will be dumped once the process completes. Note that these files are specified in addition to those from the `output_files` field, and an error will occur if the filename occurs in the outputs arising from `output_files` or `output_directories` and the contents of that file are different. -### Chaining processes together +## Chaining processes together _Our [JavaScript demo](https://github.com/pantsbuild/example-adhoc/tree/main/javascript) demonstrates a string of `adhoc_tool` targets that's used to produce a resource file._ @@ -70,7 +70,7 @@ To get the best cache efficiency, it can make sense to break your `adhoc_tool` i Generally, if you are chaining `adhoc_tool` targets together , it will be easier to use the default `workdir` and `root_output_directory` fields for each step that will be consumed by an `adhoc_tool` in the same `BUILD` file. Change the `root_output_directory` only for targets that are intended to be used in other places or ways. -### Wrapping generated sources for use by other targets +## Wrapping generated sources for use by other targets _Our [Antlr demo](https://github.com/pantsbuild/example-adhoc/tree/main/antlr) demonstrates wrapping the outputs of `adhoc_tool` targets for use as Python sources._ @@ -78,7 +78,7 @@ _Our [Antlr demo](https://github.com/pantsbuild/example-adhoc/tree/main/antlr) d There are several targets included in Pants with the prefix `experimental_wrap_as_`. These act as a source target that can be used as a dependency in a given language backend, with the caveat that dependency inference is not available. -### Using externally-managed tools +## Using externally-managed tools _Our [JavaScript demo](https://github.com/pantsbuild/example-adhoc/tree/main/javascript) demonstrates the use of externally-managed binaries._ @@ -88,7 +88,7 @@ Some build processes need to make use of tools that can't be modeled within a Pa When specified as a `runnable_dependency`, the binary will be available on the `PATH` with the target name of the dependency. This can be important if the `runnable` field invokes a subprocess (for example, `yarn` tries to invoke a binary called `node` as its interpreter). -### Running shell scripts +## Running shell scripts Currently, `shell_source` targets are not runnable. In the meantime, it is possible to run a shell script as an `adhoc_tool` through the following approach: diff --git a/versioned_docs/version-2.18/docs/contributions/contribution-overview.mdx b/versioned_docs/version-2.18/docs/markdown/Contributions/contributor-overview.md similarity index 53% rename from versioned_docs/version-2.18/docs/contributions/contribution-overview.mdx rename to versioned_docs/version-2.18/docs/markdown/Contributions/contributor-overview.md index 85afc5f4d..7aea184dd 100644 --- a/versioned_docs/version-2.18/docs/contributions/contribution-overview.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Contributions/contributor-overview.md @@ -1,21 +1,20 @@ --- - title: Contribution overview - sidebar_position: 0 +title: "Contribution overview" +slug: "contributor-overview" +excerpt: "The flow for making changes to Pants." +hidden: false +createdAt: "2020-05-16T22:54:21.867Z" --- -The flow for making changes to Pants. +We welcome contributions of all types: from fixing typos to bug fixes to new features. For further questions about any of the below, please refer to the [community overview](doc:the-pants-community). ---- - -We welcome contributions of all types: from fixing typos to bug fixes to new features. For further questions about any of the below, please refer to the [community overview](/community/members). - -:::tip Help wanted: identifying bad error messages -We strive—but sometimes fail—to make every error message easy to understand and to give insight into what went wrong and how to fix it. - -If you ever encounter a confusing or mediocre error message, we would love your help to identify the error message. Please open a [GitHub issue](https://github.com/pantsbuild/pants/issues) with the original Pants command, the error message, and what you found confusing or think could be improved. - -(If you'd be interested in then changing the code, we'd be happy to point you in the right direction!) -::: +> 👍 Help wanted: identifying bad error messages +> +> We strive—but sometimes fail—to make every error message easy to understand and to give insight into what went wrong and how to fix it. +> +> If you ever encounter a confusing or mediocre error message, we would love your help to identify the error message. Please open a [GitHub issue](https://github.com/pantsbuild/pants/issues) with the original Pants command, the error message, and what you found confusing or think could be improved. +> +> (If you'd be interested in then changing the code, we'd be happy to point you in the right direction!) ## Documentation Fixes @@ -34,33 +33,33 @@ We rely on several Python features that you will want to acquaint yourself with: - [Decorators](https://realpython.com/primer-on-python-decorators/) - [Comprehensions](https://www.geeksforgeeks.org/comprehensions-in-python/) -Pants's engine is written in Rust. See [Developing Rust](./development/developing-rust.mdx) for a guide on making changes to the internals of Pants's engine. +Pants's engine is written in Rust. See [Developing Rust](doc:contributions-rust) for a guide on making changes to the internals of Pants's engine. ## First, share your plan Before investing your time into a code change, it helps to share your interest. This will allow us to give you initial feedback that will save you time, such as pointing you to related code. -To share your plan, please either open a [GitHub issue](https://github.com/pantsbuild/pants/issues) or message us on [Slack](/community/getting-help#slack) (you can start with the #general channel). Briefly describe the change you'd like to make, including a motivation for the change. +To share your plan, please either open a [GitHub issue](https://github.com/pantsbuild/pants/issues) or message us on [Slack](doc:getting-help#slack) (you can start with the #general channel). Briefly describe the change you'd like to make, including a motivation for the change. If we do not respond within 24 business hours, please gently ping us by commenting "ping" on your GitHub issue or messaging on Slack asking if someone could please take a look. -:::note Tip: Can you split out any "prework"? -If your change is big, such as adding a new feature, it can help to split it up into multiple pull requests. This makes it easier for us to review and to get passing CI. - -This is a reason we encourage you to share your plan with us - we can help you to scope out if it would make sense to split into multiple PRs. -::: +> 📘 Tip: Can you split out any "prework"? +> +> If your change is big, such as adding a new feature, it can help to split it up into multiple pull requests. This makes it easier for us to review and to get passing CI. +> +> This is a reason we encourage you to share your plan with us - we can help you to scope out if it would make sense to split into multiple PRs. ## Design docs Changes that substantially impact the user experience, APIs, design or implementation, may benefit from a design doc that serves as a basis for discussion. -We store our design docs in [this Google Drive folder](https://drive.google.com/drive/folders/1LtA1EVPvalmfQ5AIDOqGRR3LV86_qCRZ). If you want to write a design doc, [let us know](/community/getting-help) and if necessary we can give you write access to that folder. +We store our design docs in [this Google Drive folder](https://drive.google.com/drive/folders/1LtA1EVPvalmfQ5AIDOqGRR3LV86_qCRZ). If you want to write a design doc, [let us know](https://www.pantsbuild.org/docs/getting-help) and if necessary we can give you write access to that folder. We don't currently have any guidelines on the structure or format of design docs, so write those as you see fit. ## Developing your change -To begin, [set up Pants on your local machine](./development/setting-up-pants.mdx). +To begin, [set up Pants on your local machine](doc:contributor-setup). To run a test, run: @@ -78,13 +77,13 @@ $ pants --changed-since=HEAD fmt $ build-support/githooks/pre-commit ``` -See our [Style guide](./development/style-guide.mdx) for some Python conventions we follow. - -:::note You can share works in progress! -You do not need to fully finish your change before asking for feedback. We'd be eager to help you while iterating. +See our [Style guide](doc:style-guide) for some Python conventions we follow. -If doing this, please open your pull request as a "Draft" and prefix your PR title with "WIP". Then, comment on the PR asking for feedback and/or post a link to the PR in [Slack](/community/members). -::: +> 📘 You can share works in progress! +> +> You do not need to fully finish your change before asking for feedback. We'd be eager to help you while iterating. +> +> If doing this, please open your pull request as a "Draft" and prefix your PR title with "WIP". Then, comment on the PR asking for feedback and/or post a link to the PR in [Slack](doc:the-pants-community). ## Opening a pull request @@ -118,32 +117,31 @@ Pick the first of these that applies to your change. I.e., if you have modified These labels are used to generate the changelist for each release. -:::note Tip: Review your own PR -It is often helpful to other reviewers if you proactively review your own code. Specifically, add comments to parts where you want extra attention. - -For example: - -- "Do you know of a better way to do this? This felt clunky to write." -- "This was really tricky to figure out because there are so many edge cases. I'd appreciate extra attention here, please." -- "Note that I did not use a dataclass here because I do not want any of the methods like `__eq__` to be generated." - -::: - -:::note FYI: we squash merge -This means that the final commit message will come from your PR description, rather than your commit messages. - -Good commit messages are still very helpful for people reviewing your code; but, your PR description is what will show up in the changelog. -::: +> 📘 Tip: Review your own PR +> +> It is often helpful to other reviewers if you proactively review your own code. Specifically, add comments to parts where you want extra attention. +> +> For example: +> +> - "Do you know of a better way to do this? This felt clunky to write." +> - "This was really tricky to figure out because there are so many edge cases. I'd appreciate extra attention here, please." +> - "Note that I did not use a dataclass here because I do not want any of the methods like `__eq__` to be generated." + +> 📘 FYI: we squash merge +> +> This means that the final commit message will come from your PR description, rather than your commit messages. +> +> Good commit messages are still very helpful for people reviewing your code; but, your PR description is what will show up in the changelog. ### CI We use GitHub Actions for CI. Look at the "Checks" tab of your PR. -:::note Flaky tests? -We unfortunately have some flaky tests. If CI fails and you believe it is not related to your change, please comment about the failure so that a maintainer may investigate and restart CI for you. - -Alternatively, you can push an empty commit with `git commit --allow-empty` to force CI to restart. Although we encourage you to still point out the flake to us. -::: +> 📘 Flaky tests? +> +> We unfortunately have some flaky tests. If CI fails and you believe it is not related to your change, please comment about the failure so that a maintainer may investigate and restart CI for you. +> +> Alternatively, you can push an empty commit with `git commit --allow-empty` to force CI to restart. Although we encourage you to still point out the flake to us. ### Review feedback @@ -153,8 +151,8 @@ If we do not respond within 24 business hours, please gently ping us by commenti Once one or more reviewers have approved—and CI goes green—a reviewer will merge your change. -:::note When will your change be released? -Your change will be included in the next weekly dev release, which usually happens every Friday or Monday. If you fixed a bug, your change may also be cherry-picked into a release candidate from the prior release series. - -See [Release strategy](./releases/release-strategy.mdx). -::: +> 📘 When will your change be released? +> +> Your change will be included in the next weekly dev release, which usually happens every Friday or Monday. If you fixed a bug, your change may also be cherry-picked into a release candidate from the prior release series. +> +> See [Release strategy](doc:release-strategy). diff --git a/versioned_docs/version-2.18/docs/markdown/Contributions/development.md b/versioned_docs/version-2.18/docs/markdown/Contributions/development.md new file mode 100644 index 000000000..41cd5d100 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Contributions/development.md @@ -0,0 +1,14 @@ +--- +title: "Development" +slug: "development" +excerpt: "How to make code changes to Pants." +hidden: false +createdAt: "2020-07-23T21:02:22.190Z" +--- + +- [Setting up Pants](doc:contributor-setup) +- [Style guide](doc:style-guide) +- [Developing Rust](doc:contributions-rust) +- [Internal Architecture](doc:internal-rules-architecture) +- [Debugging and benchmarking](doc:contributions-debugging) +- [Running Pants from sources](doc:running-pants-from-sources) diff --git a/versioned_docs/version-2.18/docs/contributions/development/debugging-and-benchmarking.mdx b/versioned_docs/version-2.18/docs/markdown/Contributions/development/contributions-debugging.md similarity index 66% rename from versioned_docs/version-2.18/docs/contributions/development/debugging-and-benchmarking.mdx rename to versioned_docs/version-2.18/docs/markdown/Contributions/development/contributions-debugging.md index 04366e424..8c6cbf59b 100644 --- a/versioned_docs/version-2.18/docs/contributions/development/debugging-and-benchmarking.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Contributions/development/contributions-debugging.md @@ -1,15 +1,14 @@ --- - title: Debugging and benchmarking - sidebar_position: 4 ---- - -Some techniques to figure out why Pants is behaving the way it is. - +title: "Debugging and benchmarking" +slug: "contributions-debugging" +excerpt: "Some techniques to figure out why Pants is behaving the way it is." +hidden: false +createdAt: "2020-09-04T23:43:34.260Z" --- ## Benchmarking with `hyperfine` -We use `hyperfine` to benchmark, especially comparing before and after to see the impact of a change: [https://github.com/sharkdp/hyperfine](https://github.com/sharkdp/hyperfine). +We use `hyperfine` to benchmark, especially comparing before and after to see the impact of a change: . When benchmarking, you must decide if you care about cold cache performance vs. warm cache (or both). If cold, use `--no-pantsd --no-local-cache`. If warm, use hyperfine's option `--warmup=1`. @@ -22,7 +21,7 @@ For example: ## Profiling with py-spy -`py-spy` is a profiling sampler which can also be used to compare the impact of a change before and after: [https://github.com/benfred/py-spy](https://github.com/benfred/py-spy). +`py-spy` is a profiling sampler which can also be used to compare the impact of a change before and after: . To profile with `py-spy`: @@ -33,14 +32,14 @@ To profile with `py-spy`: 3. Run Pants with `py-spy` (be sure to disable `pantsd`) - `py-spy record --subprocesses -- python -m pants.bin.pants_loader --no-pantsd ` -The default output is a flamegraph. `py-spy` can also output speedscope ([https://github.com/jlfwong/speedscope](https://github.com/jlfwong/speedscope)) JSON with the `--format speedscope` flag. The resulting file can be uploaded to [https://www.speedscope.app/](https://www.speedscope.app/) which provides a per-process, interactive, detailed UI. +The default output is a flamegraph. `py-spy` can also output speedscope () JSON with the `--format speedscope` flag. The resulting file can be uploaded to which provides a per-process, interactive, detailed UI. Additionally, to profile the Rust code the `--native` flag can be passed to `py-spy` as well. The resulting output will contain frames from Pants Rust code. ## Debugging `rule` code with a debugger -Running pants with the `PANTS_DEBUG` environment variable set will use `debugpy` ([https://github.com/microsoft/debugpy](https://github.com/microsoft/debugpy)) -to start a Debug-Adapter server ([https://microsoft.github.io/debug-adapter-protocol/](https://microsoft.github.io/debug-adapter-protocol/)) which will +Running pants with the `PANTS_DEBUG` environment variable set will use `debugpy` () +to start a Debug-Adapter server () which will wait for a client connection before running Pants. You can connect any Debug-Adapter-compliant editor (Such as VSCode) as a client, and use breakpoints, @@ -50,17 +49,17 @@ NOTE: `PANTS_DEBUG` doesn't work with the pants daemon, so `--no-pantsd` must be ## Identifying the impact of Python's GIL (on macOS) - +[block:embed] +{ +"html": "", +"url": "https://www.youtube.com/watch?v=zALr3zFIQJo", +"title": "Identifying contention on the Python GIL in Rust from macOS", +"favicon": "https://www.youtube.com/s/desktop/c9a10b09/img/favicon.ico", +"image": "https://i.ytimg.com/vi/zALr3zFIQJo/hqdefault.jpg", +"provider": "youtube.com", +"href": "https://www.youtube.com/watch?v=zALr3zFIQJo" +} +[/block] ## Obtaining Full Thread Backtraces diff --git a/versioned_docs/version-2.18/docs/contributions/development/developing-rust.mdx b/versioned_docs/version-2.18/docs/markdown/Contributions/development/contributions-rust.md similarity index 67% rename from versioned_docs/version-2.18/docs/contributions/development/developing-rust.mdx rename to versioned_docs/version-2.18/docs/markdown/Contributions/development/contributions-rust.md index ce3755f17..6cdca5ed4 100644 --- a/versioned_docs/version-2.18/docs/contributions/development/developing-rust.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Contributions/development/contributions-rust.md @@ -1,21 +1,20 @@ --- - title: Developing Rust - sidebar_position: 2 ---- - -Hacking on the Pants engine in Rust. - +title: "Developing Rust" +slug: "contributions-rust" +excerpt: "Hacking on the Pants engine in Rust." +hidden: false +createdAt: "2020-05-16T23:11:31.121Z" --- We welcome contributions to Rust! We use Rust to implement the Pants engine in a performant, safe, and ergonomic way. -:::note Still learning Rust? Ask to get added to reviews -We'd be happy to ping you on Rust changes we make for you to see how Rust is used in the wild. Please message us on the #engine channel in [Slack](/community/members) to let us know your interest. -::: +> 📘 Still learning Rust? Ask to get added to reviews +> +> We'd be happy to ping you on Rust changes we make for you to see how Rust is used in the wild. Please message us on the #engine channel in [Slack](doc:the-pants-community) to let us know your interest. -:::caution Recommendation: share your plan first -Because changes to Rust deeply impact how Pants runs, it is especially helpful to share any plans to work on Rust before making changes. Please message us on [Slack](/community/members) in the #engine channel or open a [GitHub issue](https://github.com/pantsbuild/pants/issues). -::: +> 🚧 Recommendation: share your plan first +> +> Because changes to Rust deeply impact how Pants runs, it is especially helpful to share any plans to work on Rust before making changes. Please message us on [Slack](doc:the-pants-community) in the #engine channel or open a [GitHub issue](https://github.com/pantsbuild/pants/issues). ## Code organization @@ -49,11 +48,11 @@ Rather than using a global installation of Cargo, use the `./cargo` script. To check that the Rust code is valid, use `./cargo check`. To check that it integrates correctly with Pants' Python code, use `MODE=debug pants ...` as usual (which will `compile` first, and is slower than `check`). -:::caution Set `MODE=debug` when iterating on Rust -As described in [Setting up Pants](./setting-up-pants.mdx), we default to compiling Rust in release mode, rather than debug mode. - -When working on Rust, you typically should set the environment variable `MODE=debug` for substantially faster compiles. -::: +> 🚧 Set `MODE=debug` when iterating on Rust +> +> As described in [Setting up Pants](doc:contributor-setup), we default to compiling Rust in release mode, rather than debug mode. +> +> When working on Rust, you typically should set the environment variable `MODE=debug` for substantially faster compiles. ### Run tests @@ -75,17 +74,16 @@ To run for a specific test, use Cargo's filtering mechanism, e.g.: ./cargo test -p fs read_file_missing ``` -:::note Tip: enabling logging in tests -When debugging, it can be helpful to capture logs with [`env_logger`](https://docs.rs/env_logger/0.6.1/env_logger/). - -To enable logging: - -1. Add `env_logger = "..."` to `dev-dependencies` in the crate's `Cargo.toml`, replacing the `...` with the relevant version. Search for the version used in other crates. -2. At the start of your test, add `let _logger = env_logger::try_init();`. -3. Add log statements wherever you'd like using `log::info!()` et al. -4. Run your test with `RUST_LOG=trace ./cargo test -p $crate test_name -- --nocapture`, using one of `error`, `warn`, `info`, `debug`, or `trace`. - -::: +> 📘 Tip: enabling logging in tests +> +> When debugging, it can be helpful to capture logs with [`env_logger`](https://docs.rs/env_logger/0.6.1/env_logger/). +> +> To enable logging: +> +> 1. Add `env_logger = "..."` to `dev-dependencies` in the crate's `Cargo.toml`, replacing the `...` with the relevant version. Search for the version used in other crates. +> 2. At the start of your test, add `let _logger = env_logger::try_init();`. +> 3. Add log statements wherever you'd like using `log::info!()` et al. +> 4. Run your test with `RUST_LOG=trace ./cargo test -p $crate test_name -- --nocapture`, using one of `error`, `warn`, `info`, `debug`, or `trace`. ### Autoformat diff --git a/versioned_docs/version-2.18/docs/contributions/development/setting-up-pants.mdx b/versioned_docs/version-2.18/docs/markdown/Contributions/development/contributor-setup.md similarity index 54% rename from versioned_docs/version-2.18/docs/contributions/development/setting-up-pants.mdx rename to versioned_docs/version-2.18/docs/markdown/Contributions/development/contributor-setup.md index 3f8749698..5448805d8 100644 --- a/versioned_docs/version-2.18/docs/contributions/development/setting-up-pants.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Contributions/development/contributor-setup.md @@ -1,32 +1,31 @@ --- - title: Setting up Pants - sidebar_position: 0 ---- - -How to set up Pants for local development. - +title: "Setting up Pants" +slug: "contributor-setup" +excerpt: "How to set up Pants for local development." +hidden: false +createdAt: "2020-05-16T22:54:22.684Z" --- ## Step 1: Fork and clone `pantsbuild/pants` -We use the popular forking workflow typically used by open source projects. See [https://guides.github.com/activities/forking/](https://guides.github.com/activities/forking/) for a guide on how to fork [pantsbuild/pants](https://github.com/pantsbuild/pants), then clone it to your local machine. - -:::caution macOS users: install a newer `openssl` -Pants requires a more modern OpenSSL version than the one that comes with macOS. To get all dependencies to resolve correctly, run the below commands. If you are using Zsh, use `.zshrc` rather than `.bashrc`. - -```bash -$ brew install openssl -$ echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bashrc -$ echo 'export LDFLAGS="-L/usr/local/opt/openssl/lib"' >> ~/.bashrc -$ echo 'export CPPFLAGS="-I/usr/local/opt/openssl/include"' >> ~/.bashrc -``` - -(If you don't have `brew` installed, see [https://brew.sh](https://brew.sh)) -::: +We use the popular forking workflow typically used by open source projects. See for a guide on how to fork [pantsbuild/pants](https://github.com/pantsbuild/pants), then clone it to your local machine. + +> 🚧 macOS users: install a newer `openssl` +> +> Pants requires a more modern OpenSSL version than the one that comes with macOS. To get all dependencies to resolve correctly, run the below commands. If you are using Zsh, use `.zshrc` rather than `.bashrc`. +> +> ```bash +> $ brew install openssl +> $ echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bashrc +> $ echo 'export LDFLAGS="-L/usr/local/opt/openssl/lib"' >> ~/.bashrc +> $ echo 'export CPPFLAGS="-I/usr/local/opt/openssl/include"' >> ~/.bashrc +> ``` +> +> (If you don't have `brew` installed, see ) ## Step 2: Bootstrap the Rust engine -Pants uses Rustup to install Rust. Run the command from [https://rustup.rs](https://rustup.rs) to install Rustup; ensure that `rustup` is on your `$PATH`. +Pants uses Rustup to install Rust. Run the command from to install Rustup; ensure that `rustup` is on your `$PATH`. If your system Python is not the version Pants expects (currently Python 3.9), you'll need to provide one. Python interpreters from Linux or Mac distributions sometimes have quirks that can cause headaches with bootstrapping the dev venv. Some examples of Pythons that work well with Pants are those provided by: @@ -39,23 +38,23 @@ If your system Python is not the version Pants expects (currently Python 3.9), y Then, run `pants` to set up the Python virtual environment and compile the engine. -:::caution This will take several minutes -Rust compilation is really slow. Fortunately, this step gets cached, so you will only need to wait the first time. -::: - -:::note Want a faster compile? -We default to compiling with Rust's `release` mode, instead of its `debug` mode, because this makes Pants substantially faster. However, this results in the compile taking 5-10x longer. - -If you are okay with Pants running much slower when iterating, set the environment variable `MODE=debug` and rerun `pants` to compile in debug mode. -::: - -:::caution Rust compilation can use lots of storage -Compiling the engine typically results in several gigabytes of storage over time. We have not yet implemented automated garbage collection for building the engine because contributors are the only ones to need to compile Rust, not every-day users. +> 🚧 This will take several minutes +> +> Rust compilation is really slow. Fortunately, this step gets cached, so you will only need to wait the first time. -To free up space, run `rm -rf src/rust/engine/target`. +> 📘 Want a faster compile? +> +> We default to compiling with Rust's `release` mode, instead of its `debug` mode, because this makes Pants substantially faster. However, this results in the compile taking 5-10x longer. +> +> If you are okay with Pants running much slower when iterating, set the environment variable `MODE=debug` and rerun `pants` to compile in debug mode. -Warning: this will cause Rust to recompile everything. -::: +> 🚧 Rust compilation can use lots of storage +> +> Compiling the engine typically results in several gigabytes of storage over time. We have not yet implemented automated garbage collection for building the engine because contributors are the only ones to need to compile Rust, not every-day users. +> +> To free up space, run `rm -rf src/rust/engine/target`. +> +> Warning: this will cause Rust to recompile everything. ## Step 3: (Optional) Set up a Git hook @@ -75,15 +74,15 @@ You can manually run the pre-commit check with: $ build-support/githooks/pre-commit ``` -The [Rust-compilation](./developing-rust.mdx) affecting `MODE` flag is passed through to the hooks, so to run the commit hooks in "debug" mode, you can do something like: +The [Rust-compilation](doc:contributions-rust) affecting `MODE` flag is passed through to the hooks, so to run the commit hooks in "debug" mode, you can do something like: ```bash $ MODE=debug git commit ... ``` -:::note How to temporarily skip the pre-commit checks -Use `git commit --no-verify` or `git commit -n` to skip the checks. -::: +> 📘 How to temporarily skip the pre-commit checks +> +> Use `git commit --no-verify` or `git commit -n` to skip the checks. ## Configure your IDE (optional) @@ -102,7 +101,7 @@ Pants sets up its development virtualenv at `~/.cache/pants/pants_dev_deps/ 📘 Tip: improving Black's formatting by wrapping in `()` +> +> Sometimes, Black will split code over multiple lines awkwardly. For example: +> +> ```python +> StrOption( +> default="pants", +> help="The name of the script or binary used to invoke pants. " +> "Useful when printing help messages.", +> ) +> ``` +> +> Often, you can improve Black's formatting by wrapping the expression in parentheses, then rerunning `fmt`: +> +> ```python +> StrOption( +> default="pants", +> help=( +> "The name of the script or binary used to invoke pants. " +> "Useful when printing help messages." +> ), +> ) +> ``` +> +> This is not mandatory, only encouraged. ## Comments @@ -207,9 +206,9 @@ new_dict["key"] = "value" ### Prefer comprehensions -[Comprehensions](https://python-3-patterns-idioms-test.readthedocs.io/en/latest/Comprehensions.html) should generally be preferred to explicit loops and `map`/`filter` when creating a new collection. (See [https://www.youtube.com/watch?v=ei71YpmfRX4](https://www.youtube.com/watch?v=ei71YpmfRX4) for a deep dive on comprehensions.) +[Comprehensions](https://python-3-patterns-idioms-test.readthedocs.io/en/latest/Comprehensions.html) should generally be preferred to explicit loops and `map`/`filter` when creating a new collection. (See for a deep dive on comprehensions.) -Why avoid `map`/`filter`? Normally, these are fantastic constructs and you'll find them abundantly in the [Rust codebase](./developing-rust.mdx). They are awkward in Python, however, due to poor support for lambdas and because you would typically need to wrap the expression in a call to `list()` or `tuple()` to convert it from a generator expression to a concrete collection. +Why avoid `map`/`filter`? Normally, these are fantastic constructs and you'll find them abundantly in the [Rust codebase](doc:contributions-rust). They are awkward in Python, however, due to poor support for lambdas and because you would typically need to wrap the expression in a call to `list()` or `tuple()` to convert it from a generator expression to a concrete collection. ```python # Good @@ -304,11 +303,11 @@ def test_demo(): Precisely, all function definitions should have annotations for their parameters and their return type. MyPy will then tell you which other lines need annotations. -:::note Interacting with legacy code? Consider adding type hints. -Pants did not widely use type hints until the end of 2019. So, a substantial portion of the codebase is still untyped. - -If you are working with legacy code, it is often valuable to start by adding type hints. This will both help you to understand that code and to improve the quality of the codebase. Land those type hints as a precursor to your main PR. -::: +> 📘 Interacting with legacy code? Consider adding type hints. +> +> Pants did not widely use type hints until the end of 2019. So, a substantial portion of the codebase is still untyped. +> +> If you are working with legacy code, it is often valuable to start by adding type hints. This will both help you to understand that code and to improve the quality of the codebase. Land those type hints as a precursor to your main PR. ### Prefer `cast()` to override annotations diff --git a/versioned_docs/version-2.18/docs/markdown/Contributions/releases.md b/versioned_docs/version-2.18/docs/markdown/Contributions/releases.md new file mode 100644 index 000000000..e78212806 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Contributions/releases.md @@ -0,0 +1,9 @@ +--- +title: "Releases" +slug: "releases" +hidden: false +createdAt: "2020-05-16T22:53:24.532Z" +--- + +- [Release strategy](doc:release-strategy) +- [Release process](doc:release-process) diff --git a/versioned_docs/version-2.18/docs/contributions/releases/github-actions-macos-arm64-runners.mdx b/versioned_docs/version-2.18/docs/markdown/Contributions/releases/ci-for-macos-on-arm64.md similarity index 95% rename from versioned_docs/version-2.18/docs/contributions/releases/github-actions-macos-arm64-runners.mdx rename to versioned_docs/version-2.18/docs/markdown/Contributions/releases/ci-for-macos-on-arm64.md index e13568625..b5bb91a32 100644 --- a/versioned_docs/version-2.18/docs/contributions/releases/github-actions-macos-arm64-runners.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Contributions/releases/ci-for-macos-on-arm64.md @@ -1,22 +1,22 @@ --- - title: GitHub Actions macOS ARM64 runners - sidebar_position: 2 ---- - +title: "GitHub Actions macOS ARM64 runners" +slug: "ci-for-macos-on-arm64" +hidden: false +createdAt: "2022-06-05T15:31:27.665Z" --- Apple is phasing out their X86_64 hardware, and all new macOS systems are based on the M1 ARM64 processor. Pants must run on these systems, which means we need an M1 CI machine on which to test and package Pants. Unfortunately, GitHub Actions does not yet have hosted runners for MacOS ARM64. So we must run our own self-hosted runner. This document describes how to set one up. It is intended primarily for Pants maintainers who have to maintain our CI infrastructure, but since there is not much information online about how to set up self-hosted runners on M1, it may be useful as a reference to other projects as well. One useful resource we did find is [this blog post](https://betterprogramming.pub/run-github-actions-self-hosted-macos-runners-on-apple-m1-mac-b559acd6d783) by Soumya Mahunt, so our thanks to them. -If you find any errors or omissions in this page, please let us know on [Slack](/community/getting-help#slack) or provide corrections via the "Suggest Edits" link above. +If you find any errors or omissions in this page, please let us know on [Slack](doc:getting-help#slack) or provide corrections via the "Suggest Edits" link above. ## The machine As yet there aren't many options for a hosted M1 system: - AWS has a [preview program](https://aws.amazon.com/about-aws/whats-new/2021/12/amazon-ec2-m1-mac-instances-macos/), which you can sign up for and hope to get into. Once these instances are generally available we can evaluate them as a solution. -- You can buy an M1 machine and stick it in a closet. You take on the risk of compromising your +- You can buy an M1 machine and stick it in a closet. You take on the risk of compromising your network if the machine is compromised by a rogue CI job. - You can rent a cloud-hosted M1 machine by the month from [MacStadium](https://www.macstadium.com/). @@ -33,7 +33,7 @@ In both cases, the first few setup steps will be done as the user `administrator ### SSH -```shell title="Shell" +```shell Shell $ ssh administrator@XXX.XXX.XXX.XXX (administrator@XXX.XXX.XXX.XXX) Password: % @@ -70,7 +70,7 @@ Go to  > System Preferences > Users & Groups, select the administrator user, #### SSH -```shell title="Shell" +```shell Shell # Ensure that this shows a value of 1 % pmset -g | grep autorestart # If it does not, run this @@ -85,7 +85,7 @@ Go to  > System Preferences > Energy Saver and ensure that Restart After Powe Perform the following setup steps as `administrator`, some steps may request your password: -```Text title="Shell" +```Text Shell # Install Rosetta 2, will prompt to accept a license agreement % softwareupdate --install-rosetta @@ -194,7 +194,7 @@ As `gha`, run: ## Testing it all out -Now use the MacStadium web UI to restart the machine. Once it comes back up it +Now use the MacStadium web UI to restart the machine. Once it comes back up it should be able to pick up any job with this setting: ``` diff --git a/versioned_docs/version-2.18/docs/contributions/releases/release-process.mdx b/versioned_docs/version-2.18/docs/markdown/Contributions/releases/release-process.md similarity index 87% rename from versioned_docs/version-2.18/docs/contributions/releases/release-process.mdx rename to versioned_docs/version-2.18/docs/markdown/Contributions/releases/release-process.md index fe52bc112..92e068b3b 100644 --- a/versioned_docs/version-2.18/docs/contributions/releases/release-process.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Contributions/releases/release-process.md @@ -1,13 +1,12 @@ --- - title: Release process - sidebar_position: 1 +title: "Release process" +slug: "release-process" +excerpt: "How to release a new version of Pants and its plugins." +hidden: false +createdAt: "2020-05-16T22:36:48.334Z" --- -How to release a new version of Pants and its plugins. - ---- - -This page covers the nitty-gritty of executing a release, and is probably only interesting for maintainers. If you're interested in when and why Pants is released, please see the [Release strategy](./release-strategy.mdx) page. +This page covers the nitty-gritty of executing a release, and is probably only interesting for maintainers. If you're interested in when and why Pants is released, please see the [Release strategy](doc:release-strategy) page. ## Prerequisites @@ -17,17 +16,17 @@ You only need to set these up once. If you already have one, you can reuse it. -You likely want to use the gpg implementation of pgp. On macOS, you can `brew install gpg`. Once gpg is installed, generate a new key: [https://docs.github.com/en/github/authenticating-to-github/generating-a-new-gpg-key](https://docs.github.com/en/github/authenticating-to-github/generating-a-new-gpg-key). +You likely want to use the gpg implementation of pgp. On macOS, you can `brew install gpg`. Once gpg is installed, generate a new key: . Please use a password for your key! ### Add your PGP key to GitHub. -See [https://docs.github.com/en/github/authenticating-to-github/adding-a-new-gpg-key-to-your-github-account](https://docs.github.com/en/github/authenticating-to-github/adding-a-new-gpg-key-to-your-github-account). +See . ### Configure Git to use your PGP key. -See [https://docs.github.com/en/github/authenticating-to-github/telling-git-about-your-signing-key](https://docs.github.com/en/github/authenticating-to-github/telling-git-about-your-signing-key). +See . Note: the last step is required on macOS. @@ -113,15 +112,15 @@ On the relevant release branch, run `npx rdme docs docs/markdown --version v` with your key from [https://dash.readme.com/project/pants/v2.8/api-key](https://dash.readme.com/project/pants/v2.8/api-key). +Still on the relevant release branch, run `./pants run build-support/bin/generate_docs.py -- --sync --api-key ` with your key from . ### `stable` releases - Update the default docsite The first stable release of a branch should update the "default" version of the docsite. For example: when releasing the stable `2.9.0`, the docsite would be changed to pointing from `v2.8` to pointing to `v2.9` by default. -:::caution Don't have edit access? -Ping someone in the `#maintainers-confidential` channel in Slack to be added. Alternatively, you can "Suggest edits" in the top right corner. -::: +> 🚧 Don't have edit access? +> +> Ping someone in the `#maintainers-confidential` channel in Slack to be added. Alternatively, you can "Suggest edits" in the top right corner. ## Step 3: Tag the release to trigger publishing @@ -129,9 +128,9 @@ Once you have merged the `VERSION` bump — which will be on `main` for `dev` an First, ensure that you are on your release branch at your version bump commit. -:::note Tip: if new commits have landed after your release commit -You can reset to your release commit by running `git reset --hard `. -::: +> 📘 Tip: if new commits have landed after your release commit +> +> You can reset to your release commit by running `git reset --hard `. Then, run: diff --git a/versioned_docs/version-2.18/docs/contributions/releases/release-strategy.mdx b/versioned_docs/version-2.18/docs/markdown/Contributions/releases/release-strategy.md similarity index 54% rename from versioned_docs/version-2.18/docs/contributions/releases/release-strategy.mdx rename to versioned_docs/version-2.18/docs/markdown/Contributions/releases/release-strategy.md index d678310d7..3358675d6 100644 --- a/versioned_docs/version-2.18/docs/contributions/releases/release-strategy.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Contributions/releases/release-strategy.md @@ -1,10 +1,9 @@ --- - title: Release strategy - sidebar_position: 0 ---- - -Our approach to semantic versioning + time-based releases. - +title: "Release strategy" +slug: "release-strategy" +excerpt: "Our approach to semantic versioning + time-based releases." +hidden: false +createdAt: "2020-05-17T03:02:12.315Z" --- Pants release cycles flow through: @@ -14,13 +13,13 @@ Pants release cycles flow through: 3. `rc` releases, which have begun to stabilize on a stable branch, and will become a stable release 4. stable releases, which are our most trusted. -Pants follows semantic versioning, along with using regular time-based dev releases. We follow a strict [Deprecation policy](../../releases/deprecation-policy.mdx). - -:::note Tip: join the mailing group for release announcements -See [Community](/community/members). +Pants follows semantic versioning, along with using regular time-based dev releases. We follow a strict [Deprecation policy](doc:deprecation-policy). -Also see [Upgrade tips](../../releases/upgrade-tips.mdx) for suggestions on how to effectively upgrade Pants versions. -::: +> 📘 Tip: join the mailing group for release announcements +> +> See [Community](doc:the-pants-community). +> +> Also see [Upgrade tips](doc:upgrade-tips) for suggestions on how to effectively upgrade Pants versions. ## Stable releases @@ -38,11 +37,11 @@ Any new patch versions will only include: Patch versions after `*.0` (i.e.: `2.2.1`) must have also had at least one release candidate, but no alpha releases are required. -:::caution Stable releases may still have bugs -We try our best to write bug-free code, but, like everyone, we sometimes make mistakes. - -If you encounter a bug, please gently let us know by opening a GitHub issue or messaging us on Slack. See [Community](/community/members). -::: +> 🚧 Stable releases may still have bugs +> +> We try our best to write bug-free code, but, like everyone, we sometimes make mistakes. +> +> If you encounter a bug, please gently let us know by opening a GitHub issue or messaging us on Slack. See [Community](doc:the-pants-community). ## Release candidates @@ -52,17 +51,17 @@ Release candidates are named with the major, minor, and patch version, and end i Release candidates are subject to the constraints on cherry-picks mentioned in the Stable releases section. -:::note When is a release "stable" enough? -A stable release should not be created until at least five business days have passed since the first `rc0` release. Typically, during this time, there will be multiple release candidates to fix any issues discovered. - -A stable release can be created two business days after the most recent release candidate if there are no more blockers. -::: +> 📘 When is a release "stable" enough? +> +> A stable release should not be created until at least five business days have passed since the first `rc0` release. Typically, during this time, there will be multiple release candidates to fix any issues discovered. +> +> A stable release can be created two business days after the most recent release candidate if there are no more blockers. -:::tip Help wanted: testing out release candidates -We greatly appreciate when users test out release candidates. While we do our best to have comprehensive CI—and we "dogfood" release candidates—we are not able to test all the ways Pants is used in the wild. - -If you encounter a bug, please gently let us know by opening a GitHub issue or messaging us on Slack. See [Community](/community/members). -::: +> 👍 Help wanted: testing out release candidates +> +> We greatly appreciate when users test out release candidates. While we do our best to have comprehensive CI—and we "dogfood" release candidates—we are not able to test all the ways Pants is used in the wild. +> +> If you encounter a bug, please gently let us know by opening a GitHub issue or messaging us on Slack. See [Community](doc:the-pants-community). ## Alpha releases @@ -80,10 +79,10 @@ Dev releases help to ensure a steady release cadence from `main` by filling in t Dev releases are named with the major, minor, and patch version, and end in `.dev` and a number. For example, `2.1.0.dev0` or `2.1.0.dev1`. -Dev releases can include any changes, so long as they comply with the [Deprecation policy](../../releases/deprecation-policy.mdx). - -:::note How many dev releases until starting a release candidate? -Usually, we release 3-4 dev releases before switching to the alpha release `a0`. This means we usually release `dev0`, `dev1`, `dev2`, sometimes `dev3`, and then `a0`. +Dev releases can include any changes, so long as they comply with the [Deprecation policy](doc:deprecation-policy). -We try to limit the number of changes in each stable release to make it easier for users to upgrade. If the dev releases have been particularly disruptive, such as making major deprecations, we may start a release candidate sooner, such as after `dev1`. -::: +> 📘 How many dev releases until starting a release candidate? +> +> Usually, we release 3-4 dev releases before switching to the alpha release `a0`. This means we usually release `dev0`, `dev1`, `dev2`, sometimes `dev3`, and then `a0`. +> +> We try to limit the number of changes in each stable release to make it easier for users to upgrade. If the dev releases have been particularly disruptive, such as making major deprecations, we may start a release candidate sooner, such as after `dev1`. diff --git a/versioned_docs/version-2.18/docs/docker/docker-overview.mdx b/versioned_docs/version-2.18/docs/markdown/Docker/docker.md similarity index 71% rename from versioned_docs/version-2.18/docs/docker/docker-overview.mdx rename to versioned_docs/version-2.18/docs/markdown/Docker/docker.md index 41c2c0658..27e011e35 100644 --- a/versioned_docs/version-2.18/docs/docker/docker-overview.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Docker/docker.md @@ -1,10 +1,9 @@ --- - title: Docker overview - sidebar_position: 0 ---- - -How to build Docker images containing artifacts built by Pants - +title: "Docker overview" +slug: "docker" +excerpt: "How to build Docker images containing artifacts built by Pants" +hidden: false +createdAt: "2021-09-03T15:28:55.877Z" --- Docker images typically bundle build artifacts, such as PEX files, wheels, loose files, and so on, with other runtime requirements, such as a Python interpreter. @@ -15,7 +14,7 @@ Pants [makes it easy to embed the artifacts Pants builds into your Docker images To use Pants's Docker support you must enable the appropriate backend: -```toml title="pants.toml" +```toml pants.toml backend_packages = [ ... "pants.backend.docker", @@ -27,9 +26,9 @@ backend_packages = [ A Docker image is built from a recipe specified by a [Dockerfile](https://docs.docker.com/engine/reference/builder/). When you build Docker images with Pants, instead of running `docker build` on the Dockerfile directly, you let Pants do that for you. -Pants uses [`docker_image`](../../reference/targets/docker_image.mdx) [targets](../using-pants/key-concepts/targets-and-build-files.mdx) to indicate which Dockerfiles you want Pants to know about, and to add any necessary metadata. +Pants uses [`docker_image`](doc:reference-docker_image) [targets](doc:targets) to indicate which Dockerfiles you want Pants to know about, and to add any necessary metadata. -You can generate initial BUILD files for your Docker images, using [tailor](../getting-started/initial-configuration.mdx#5-generate-build-files): +You can generate initial BUILD files for your Docker images, using [tailor](doc:initial-configuration#5-generate-build-files): ``` ❯ pants tailor :: @@ -41,13 +40,13 @@ Created src/docker/app2/BUILD: Or you can add them manually, such as: -```python title="src/docker/app1/BUILD" +```python src/docker/app1/BUILD docker_image(name="docker") ``` -Alternatively you may provide the Docker build instructions inline in your BUILD file as [`instructions`](../../reference/targets/docker_image.mdx#codeinstructionscode) on your `docker_image` if you don't want to create a `Dockerfile`. +Alternatively you may provide the Docker build instructions inline in your BUILD file as [`instructions`](doc:reference-docker_image#codeinstructionscode) on your `docker_image` if you don't want to create a `Dockerfile`. -```python title="src/docker/app1/BUILD" +```python src/docker/app1/BUILD docker_image( name="docker", instructions=[ @@ -57,9 +56,9 @@ docker_image( ) ``` -:::caution The `docker_image` `instructions` field -Each `docker_image` uses a `Dockerfile` referred to by the `source` field, unless you have provided a value to the `instructions` field. -::: +> 🚧 The `docker_image` `instructions` field +> +> Each `docker_image` uses a `Dockerfile` referred to by the `source` field, unless you have provided a value to the `instructions` field. ## Adding dependencies to your `docker_image` targets @@ -67,10 +66,10 @@ A Dockerfile is built in a _context_ - a set of files that the commands in the D When you run `docker build` directly, the context is usually a directory within your repo containing the Dockerfile (typically at the root of the context) and any files that the build requires. If those files were themselves the product of a build step, or if they were sources from elsewhere in the repo, then you would have to copy them into the context. -Pants, however, takes care of assembling the context for you. It does so using the dependencies of the [`docker_image`](../../reference/targets/docker_image.mdx) target, which can include: +Pants, however, takes care of assembling the context for you. It does so using the dependencies of the [`docker_image`](doc:reference-docker_image) target, which can include: -- Loose files specified using [`file` / `files` targets](../using-pants/assets-and-archives.mdx#files). -- Artifacts packaged from a variety of targets, such as [`pex_binary`](../../reference/targets/pex_binary.mdx) , [`python_distribution`](../../reference/targets/python_distribution.mdx), [`archive`](../../reference/targets/archive.mdx), and any other target that can be built via the [package](../../reference/goals/package.mdx) goal, including other docker images. +- Loose files specified using [`file` / `files` targets](doc:assets#files). +- Artifacts packaged from a variety of targets, such as [`pex_binary`](doc:reference-pex_binary) , [`python_distribution`](doc:reference-python_distribution), [`archive`](doc:reference-archive), and any other target that can be built via the [package](doc:reference-package) goal, including other docker images. The context is assembled as follows: @@ -109,7 +108,7 @@ To provide values to any [build `ARG`s](https://docs.docker.com/engine/reference The build args use the same syntax as the [docker build --build-arg](https://docs.docker.com/engine/reference/commandline/build/#set-build-time-variables---build-arg) command line option: `VARNAME=VALUE`, where the value is optional, and if left out, the value is taken from the environment instead. -```toml title="pants.toml" +```toml pants.toml [docker] build_args = [ "VAR1=value1", @@ -117,14 +116,14 @@ build_args = [ ] ``` -```python title="example/BUILD" +```python example/BUILD docker_image( name="docker", extra_build_args=["VAR1=my_value", "VAR3"] ) ``` -```dockerfile title="example/Dockerfile" +```dockerfile example/Dockerfile FROM python:3.8 ARG VAR1 ARG VAR2 @@ -134,7 +133,7 @@ ARG VAR3=default ### Target build stage -When your `Dockerfile` is a multi-stage build file, you may specify which stage to build with the [`--docker-build-target-stage`](../../reference/subsystems/docker.mdx#section-build-target-stage) for all images, or provide a per image setting with the `docker_image` field [`target_stage`](../../reference/targets/docker_image.mdx#codetarget_stagecode). +When your `Dockerfile` is a multi-stage build file, you may specify which stage to build with the [`--docker-build-target-stage`](doc:reference-docker#section-build-target-stage) for all images, or provide a per image setting with the `docker_image` field [`target_stage`](doc:reference-docker_image#codetarget_stagecode). ```dockerfile FROM python:3.8 AS base @@ -152,9 +151,9 @@ See this [blog post](https://blog.pantsbuild.org/optimizing-python-docker-deploy ### Build time secrets -Secrets are supported for `docker_image` targets with the [`secrets`](../../reference/targets/docker_image.mdx#codesecretscode) field. The defined secrets may then be mounted in the `Dockerfile` as [usual](https://docs.docker.com/develop/develop-images/build_enhancements/#new-docker-build-secret-information). +Secrets are supported for `docker_image` targets with the [`secrets`](doc:reference-docker_image#codesecretscode) field. The defined secrets may then be mounted in the `Dockerfile` as [usual](https://docs.docker.com/develop/develop-images/build_enhancements/#new-docker-build-secret-information). -```python title="BUILD" +```python BUILD docker_image( secrets={ "mysecret": "mysecret.txt", @@ -172,21 +171,21 @@ RUN --mount=type=secret,id=mysecret cat /run/secrets/mysecret RUN --mount=type=secret,id=mysecret,dst=/foobar cat /foobar ``` -```text title="mysecret.txt" +```text mysecret.txt very-secret-value ``` -:::note Secret file path -Secrets should not be checked into version control. Use absolute paths to reference a file that is not in the project source tree. However, to keep the BUILD file as hermetic as possible, the files may be placed within the project source tree at build time for instance, and referenced with a path relative to the project root by default, or relative to the directory of the BUILD file when prefixed with `./`. - -See the example for the [`secrets`](../../reference/targets/docker_image.mdx#codesecretscode) field. -::: +> 📘 Secret file path +> +> Secrets should not be checked into version control. Use absolute paths to reference a file that is not in the project source tree. However, to keep the BUILD file as hermetic as possible, the files may be placed within the project source tree at build time for instance, and referenced with a path relative to the project root by default, or relative to the directory of the BUILD file when prefixed with `./`. +> +> See the example for the [`secrets`](doc:reference-docker_image#codesecretscode) field. ### Build Docker image example This example copies both a `file` and `pex_binary`. The file is specified as an explicit dependency in the `BUILD` file, whereas the `pex_binary` dependency is inferred from the path in the `Dockerfile`. -```python title="src/docker/hw/BUILD" +```python src/docker/hw/BUILD file(name="msg", source="msg.txt") docker_image( @@ -195,24 +194,24 @@ docker_image( ) ``` -```dockerfile title="src/docker/hw/Dockerfile" +```dockerfile src/docker/hw/Dockerfile FROM python:3.8 ENTRYPOINT ["/bin/helloworld"] COPY src/docker/hw/msg.txt /var/msg COPY src.python.hw/bin.pex /bin/helloworld ``` -```text title="src/docker/hw/msg.txt" +```text src/docker/hw/msg.txt Hello, Docker! ``` -```python title="src/python/hw/BUILD" +```python src/python/hw/BUILD python_sources(name="lib") pex_binary(name="bin", entry_point="main.py") ``` -```python title="src/python/hw/main.py" +```python src/python/hw/main.py import os msg = "Hello" @@ -267,13 +266,13 @@ Pants can push your images to registries using `pants publish`: Publishing may be skipped per registry or entirely per `docker_image` using `skip_push`. -See [here](./tagging-docker-images.mdx) for how to set up registries. +See [here](doc:tagging-docker-images) for how to set up registries. ## Docker configuration To configure the Docker binary, set `[docker].env_vars` in your `pants.toml` configuration file. You use that key to list environment variables such as `DOCKER_CONTEXT` or `DOCKER_HOST`, that will be set in the environment of the `docker` binary when Pants runs it. Each listed value can be of the form `NAME=value`, or just `NAME`, in which case the value will be inherited from the Pants process's own environment. -```toml title="pants.toml" +```toml pants.toml [docker] env_vars = [ "DOCKER_CONTEXT=pants_context", @@ -281,9 +280,9 @@ env_vars = [ ] ``` -:::note Docker environment variables -See [Docker documentation](https://docs.docker.com/engine/reference/commandline/cli/#environment-variables) for the authoritative table of environment variables for the Docker CLI. -::: +> 📘 Docker environment variables +> +> See [Docker documentation](https://docs.docker.com/engine/reference/commandline/cli/#environment-variables) for the authoritative table of environment variables for the Docker CLI. ## Docker authentication @@ -307,7 +306,7 @@ Then, tell Pants to use this config by setting `[docker].env_vars = ["DOCKER_CO Most authentication mechanisms will also require tools exposed on the `$PATH` to work. Teach Pants about those by setting the names of the tools in `[docker].tools`, and ensuring that they show up on your `$PATH`. For example, GCloud authentication requires `dirname`, `readlink` and `python3`. -```toml title="pants.toml" +```toml pants.toml # Example GCloud authentication. [docker] @@ -326,20 +325,19 @@ tools = [ You may need to set additional environment variables with `[docker].env_vars`. -:::note How to troubleshoot authentication -It can be tricky to figure out what environment variables and tools are missing, as the output often has indirection. - -It can help to simulate a hermetic environment by using `env -i`. With credential helpers, it also helps to directly invoke the helper without Docker and Pants. For example, you can symlink the tools you think you need into a directory like `/some/isolated/directory`, then run the below: - -``` -❯ echo europe-north1-docker.pkg.dev | env -i PATH=/some/isolated/directory docker-credential-gcr get -{ -"Secret": "ya29.A0ARrdaM-...-ZhScVscwTVtQ", -"Username": "_dcgcloud_token" -} -``` - -::: +> 📘 How to troubleshoot authentication +> +> It can be tricky to figure out what environment variables and tools are missing, as the output often has indirection. +> +> It can help to simulate a hermetic environment by using `env -i`. With credential helpers, it also helps to directly invoke the helper without Docker and Pants. For example, you can symlink the tools you think you need into a directory like `/some/isolated/directory`, then run the below: +> +> ``` +> ❯ echo europe-north1-docker.pkg.dev | env -i PATH=/some/isolated/directory docker-credential-gcr get +> { +> "Secret": "ya29.A0ARrdaM-...-ZhScVscwTVtQ", +> "Username": "_dcgcloud_token" +> } +> ``` ## Linting Dockerfiles with Hadolint @@ -351,7 +349,7 @@ Pants can run [Hadolint](https://github.com/hadolint/hadolint) on your Dockerfil This must first be enabled by activating the Hadolint backend: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] backend_packages = ["pants.backend.docker.lint.hadolint"] ``` diff --git a/versioned_docs/version-2.18/docs/docker/tagging-docker-images.mdx b/versioned_docs/version-2.18/docs/markdown/Docker/tagging-docker-images.md similarity index 88% rename from versioned_docs/version-2.18/docs/docker/tagging-docker-images.mdx rename to versioned_docs/version-2.18/docs/markdown/Docker/tagging-docker-images.md index 6f16c4ca7..8b323ddd1 100644 --- a/versioned_docs/version-2.18/docs/docker/tagging-docker-images.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Docker/tagging-docker-images.md @@ -1,17 +1,16 @@ --- - title: Tagging Docker images - sidebar_position: 1 ---- - -How to set registry, repository and tag names on your images - +title: "Tagging Docker images" +slug: "tagging-docker-images" +excerpt: "How to set registry, repository and tag names on your images" +hidden: false +createdAt: "2021-10-04T15:50:36.840Z" --- ## Configuring registries A `docker_image` target takes an optional `registries` field, whose value is a list of registry endpoints and aliases: -```python title="src/example/BUILD" +```python src/example/BUILD docker_image( name="demo", registries=[ @@ -50,7 +49,7 @@ Options for `registries` in `pants.toml`: Example: -```toml title="pants.toml" +```toml pants.toml [docker.registries.company-registry1] address = "reg1.company.internal" default = true @@ -66,7 +65,7 @@ repository = "{parent_directory}/{name}" use_local_alias = true ``` -```python title="src/example/BUILD" +```python src/example/BUILD docker_image(name="demo") # This is equivalent to the previous target, @@ -92,7 +91,7 @@ In Docker parlance, an image is identified by a _repository_ and one or more _ta You set a repository name using the `repository` field on `docker_image`: -```python title="src/example/BUILD" +```python src/example/BUILD docker_image( name="demo", repository="example/demo", @@ -108,7 +107,7 @@ To use a repository only for a specific registry, provide a `repository` value i configuration, and this can contain placeholders in curly braces that will be interpolated for each image name. -```toml title="pants.toml" +```toml pants.toml [docker.registries.demo] address = "reg.company.internal" repository = "example/{name}" @@ -117,12 +116,12 @@ repository = "example/{name}" You can also specify a default repository name in config, and this name can contain placeholders in curly braces that will be interpolated for each `docker_image`: -```toml title="pants.toml" +```toml pants.toml [docker] default_repository = "{directory}/{name}" ``` -```python title="src/example/BUILD" +```python src/example/BUILD docker_image( name="demo", ) @@ -142,18 +141,18 @@ by allowing you to omit the `repository` field on each `docker_image`. But you c this field on specific `docker_image` targets, of course. In fact, you can use these placeholders in the `repository` field as well, if you find that helpful. -See [String interpolation using placeholder values](./tagging-docker-images.mdx#string-interpolation-using-placeholder-values) for more information. +See [String interpolation using placeholder values](doc:tagging-docker-images#string-interpolation-using-placeholder-values) for more information. ## Tagging images When Docker builds images, it can tag them with a set of tags. Pants will apply the tags listed in the `image_tags` field of `docker_image`, and any additional tags if defined from the registry -configuration (see [Configuring registries](./tagging-docker-images.mdx#configuring-registries). +configuration (see [Configuring registries](doc:tagging-docker-images#configuring-registries). (Note that the field is named `image_tags` and not just `tags`, because Pants has [its own tags concept](doc:reference-target#codetagscode), which is unrelated.) -```python title="src/example/BUILD" +```python src/example/BUILD docker_image( name="demo", repository="example/demo", @@ -170,7 +169,7 @@ It's often useful to keep versions of derived images and their base images in sy out with this by interpolating tags referenced in `FROM` commands in your Dockerfile into the `image_tags` in the corresponding `docker_image`: -```python title="src/example/BUILD" +```python src/example/BUILD # These three are equivalent docker_image(name="demo1", image_tags=["{tags.upstream}"]) docker_image(name="demo1", image_tags=["{tags.stage0}"]) @@ -181,7 +180,7 @@ docker_image(name="demo1", image_tags=["{tags.baseimage}"]) docker_image(name="demo1", image_tags=["{tags.stage1}-custom-suffix"]) ``` -```dockerfile title="src/example/Dockerfile" +```dockerfile src/example/Dockerfile FROM upstream:1.2 as upstream # ... FROM scratch @@ -195,7 +194,7 @@ You may also use any Docker build arguments (when configured as described in [Do arguments](doc:docker#build-arguments)) for interpolation into the `image_tags` in the corresponding `docker_image`: -```python title="src/example/BUILD" +```python src/example/BUILD docker_image(image_tags=["{build_args.ARG_NAME}"]) ``` @@ -226,11 +225,11 @@ $ GIT_COMMIT=$(git rev-parse HEAD) pants package src/example:demo the value from the environment will be used. -:::note Generating dynamic tags in a plugin -If you don't want to use the environment variable method described above, you'll need to write some custom plugin code. Don't hesitate to [reach out](/community/getting-help) for help with this. - -We are looking into making some common dynamic data, such as the git sha, automatically available in the core Docker plugin in the future. -::: +> 📘 Generating dynamic tags in a plugin +> +> If you don't want to use the environment variable method described above, you'll need to write some custom plugin code. Don't hesitate to [reach out](doc:getting-help) for help with this. +> +> We are looking into making some common dynamic data, such as the git sha, automatically available in the core Docker plugin in the future. ## Providing additional image tags with a plugin @@ -239,7 +238,7 @@ not enough, the next option is to write a plugin to provide additional tags when Demonstrated with an example: -```python title="example/plugin.py" +```python example/plugin.py from pants.backend.docker.target_types import DockerImageTagsRequest, DockerImageTags from pants.engine.unions import UnionRule from pants.engine.rules import rule, collect_rules @@ -273,7 +272,7 @@ def rules(): To illustrate how all the above work together, this target: -```python title="src/example/BUILD" +```python src/example/BUILD docker_image( name="demo", repository="example/demo", @@ -301,11 +300,11 @@ The interpolation context (the available placeholder values) depends on which fi - `{build_args.ARG_NAME}`: Each defined Docker build arg is available for interpolation under the `build_args.` prefix. - `{pants.hash}`: This is a unique hash value calculated from all input sources and the `Dockerfile`. It is effectively a hash of the Docker build context. See note below regarding its stability guarantee. -See [Setting a repository name](./tagging-docker-images.mdx#setting-a-repository-name) for placeholders specific to the `repository` field. +See [Setting a repository name](doc:tagging-docker-images#setting-a-repository-name) for placeholders specific to the `repository` field. -:::note The `{pants.hash}` stability guarantee -The calculated hash value _may_ change between stable versions of Pants for the otherwise same input sources. -::: +> 📘 The `{pants.hash}` stability guarantee +> +> The calculated hash value _may_ change between stable versions of Pants for the otherwise same input sources. ## Retrieving the tags of an packaged image diff --git a/versioned_docs/version-2.18/docs/markdown/Getting Help/getting-help.md b/versioned_docs/version-2.18/docs/markdown/Getting Help/getting-help.md new file mode 100644 index 000000000..b231f21a5 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Getting Help/getting-help.md @@ -0,0 +1,45 @@ +--- +title: "Getting help" +slug: "getting-help" +excerpt: "How to engage with the Pants community." +hidden: false +createdAt: "2020-03-23T21:37:03.235Z" +--- + +The [Pants community](doc:the-pants-community) is friendly, welcoming, and passionate about improving the craft of software engineering. If you need help with anything Pants-related, you've come to the right place. We'd love to hear from you! + +## Slack + +The best place to become acquainted with Pants community members, exchange informal chat and ask quick questions is at the project's Slack. You can join using [this link](https://docs.google.com/forms/d/e/1FAIpQLSf9zgf-MXRnVDJbrVEST3urqneq7LCcy0zw8qU-GH4hPMn52A/viewform?usp=sf_link). + +We encourage you to introduce yourself in the `#welcome` channel! + +## Discussions + +The best place to ask deeper technical questions or hold design discussions is via the project's [GitHub Discussions](https://github.com/pantsbuild/pants). While questions, feedback, and design discussions are equally welcome on Slack, _we encourage you to choose Discussions whenever it's likely other users would benefit from persistent access to the conversation_. GitHub Discussions is indexed by search engines, and its content is retained long-term, so this is opportunity to help your fellow Pants users by making it easier for folks to discover supplementary technical information beyond the [docs](https://pantsbuild.org/docs). + +We encourage you to introduce yourself in the [`"welcome"`](https://github.com/pantsbuild/pants/discussions/categories/-welcome) category! + +## Blog + +Read [blog.pantsbuild.org](https://blog.pantsbuild.org/) to find elaboration on new features, tutorials, reveals of upcoming features, insights into what we're thinking about and working on, case studies, and behind-the-scenes interviews with Pants users and maintainers. + +## Mailing list + +You can join the `pants-devel@googlegroups.com` mailing list [here](https://groups.google.com/forum/#!forum/pants-devel). This is used mostly for announcements and for us to solicit user feedback. + +## GitHub Repository + +Pants is an open-source software project, developed at [https://github.com/pantsbuild/pants](https://github.com/pantsbuild/pants). + +If you discover a bug with Pants or have a feature request, feel free to [file an issue](https://github.com/pantsbuild/pants/issues). Please check first if a similar issue has already been filed; if it has, please comment so that we know to bump the issue in priority. + +## YouTube + +We also have a [Pants Build YouTube channel](https://www.youtube.com/channel/UCCcfCbDqtqlCkFEuENsHlbQ) with a variety of concise tutorials, introductions to core concepts, and tips. Subscribe to the channel to get notified of additions. + +Have an idea or request for a future video topic? Bring it up on the Slack! We'd love to know what you're wondering about. + +## About us + +[Learn more](doc:the-pants-community) about the Pants community. diff --git a/versioned_docs/version-2.18/docs/markdown/Getting Help/service-providers.md b/versioned_docs/version-2.18/docs/markdown/Getting Help/service-providers.md new file mode 100644 index 000000000..7a7f709be --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Getting Help/service-providers.md @@ -0,0 +1,21 @@ +--- +title: "Service providers" +slug: "service-providers" +hidden: false +createdAt: "2022-08-26T18:57:07.437Z" +--- + +## Vicara Solutions + +[Vicara Solutions](https://vicarasolutions.com) is a prototype-to-production partner for embedded hardware and software products. We bring a big-picture perspective to the design and development process that helps our clients avoid pitfalls common to building and launching connected products. + +Vicara’s relationship with Pants stems from valuing an unobtrusive, polyglot build system which lets our team focus on the hard problems and cut through the tangled maze of Makefiles, build containers, and bash scripts (aka. developer paperwork). + +Vicara's principal, Suresh Joshi, is a Pants contributor who has written several [plug-ins](https://github.com/pantsbuild/pants/pulls?q=is%3Apr+author%3Asureshjoshi+is%3Aclosed) and [tutorials](https://www.pantsbuild.org/docs/media#suresh-joshi), and is actively contributing to the [C/C++ backend](https://github.com/pantsbuild/pants/pull/16424). +Need help putting on your Pants? Email [info@vicarasolutions.com](mailto:info@vicarasolutions.com). + +--- + +> 📘 Do you offer Pants expert services? +> +> Terrific! Contact us on the #development channel of [pantsbuild.slack.com](https://pantsbuild.slack.com) to discuss getting listed here. Note that the Pants project requires that all listees have at least one employee or principle active on [Pants Team](doc:team). diff --git a/versioned_docs/version-2.18/docs/markdown/Getting Help/the-pants-community.md b/versioned_docs/version-2.18/docs/markdown/Getting Help/the-pants-community.md new file mode 100644 index 000000000..4631bbfc4 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Getting Help/the-pants-community.md @@ -0,0 +1,66 @@ +--- +title: "The Pants community" +slug: "the-pants-community" +hidden: false +createdAt: "2021-03-13T18:57:07.437Z" +--- + +## Who is behind Pants? + +Pants is developed by a community of people who are passionate about improving the craft of software engineering. We come from diverse backgrounds and interests, but share the goal of creating the best tools to support more effective and enjoyable software development. + +Pants Build is registered as a 501c(6) non-profit in California, whose purpose is to maintain the Pants project's assets, such as its CI resources. + +## Can I join this community? + +Absolutely! We welcome the involvement of anyone who shares our passion for creating state-of-the-art software development tooling. + +Joining the Pants community can be as simple as jumping into one of our [Slack channels](doc:getting-help) for a chat. We welcome questions, comments, opinions, jokes and memes on anything related to software development tooling and practices. We'd love to hear about your current or planned uses of Pants, and, of course, we are happy to help onboard you and your team! + +There are no bad questions. We require only that all community members abide by our [Code of Conduct](doc:code-of-conduct). + +## How can I contribute to Pants? + +Contributions come in many forms, and we appreciate all of them! Examples include reporting or fixing bugs, suggesting or adding new features, improving documentation, identifying confusing or insufficient error messages, answering user questions on Slack, helping with developer outreach, and more. + +Whatever your area of expertise and your skill level, there may be valuable contributions you can make. Are you a graphic designer? A technical writer? Do you know how to make videos? There might be a cool contribution in your future. + +We try and make contributions easy. For example, you can suggest documentation fixes by clicking on the Suggest Edits link on any page. And you can report bugs by opening a [GitHub issue](https://github.com/pantsbuild/pants/issues). If you want to hack on the Pants codebase itself there is a [helpful guide](doc:contributor-overview). + +For some contributions, such as adding new features, the best place to get started is our [Slack workspace](doc:getting-started). You can make suggestions, solicit feedback and connect with like-minded contributors. That way we know who is working on what, and can help you avoid duplicating efforts or hitting known pitfalls. + +If you want to contribute but don't have a specific plan or idea, we can help you discover some fruitful areas to focus on. There is plenty to do! + +## How is the community structured? + +We welcome contributions from anyone, and we recognize consistent contributions with invitation to join the Pants team. + +> 📘 Interested in joining the Pants team? +> +> Welcome, future colleague! Learn more about the team's composition and eligibility criteria by reading below, then post in the #development channel of the [community Slack](doc:getting-started) to express interest in formally joining the [team](doc:team). We love opportunity to usher in new teammates, and are happy to offer mentorship support to community members who request it and have a track record of commitment to the long-term vitality of the project. + +### Maintainers + +Pants has a core group of [_Maintainers_](doc:maintainers): trusted people with a long-term interest in Pants who have made regular contributions for some time and plan to continue to do so. Maintainers conduct code reviews of pull requests, and may be granted extra permissions, such as write access to the Pants repository, as needed. + +### Contributors + +Anyone who has made a few contributions of any kind, and has an ongoing interest in the Pants project, may be nominated by a Maintainer to become a _Contributor_. + +Contributors are granted extra permissions, such as the ability to assign issues and participating in monthly team meetings (with the Maintainers and Contributors). These permissions stop short of full Maintainer permissions, such as not yet getting write access to the repository. + +Contributors do not have any new obligations. For example, you are _not_ expected to make a certain number of changes. However, Contributors are expected to respect their extra permissions. + +Contributors will be eligible to receive more attention and mentorship in activities like code review. Contributors with a continuing track record of contribution may be nominated to become Maintainers. + +### Former team members + +Sometimes a team member may need to step back to less intensive involvement. To recognize their past contributions, a former team member in good standing may be granted the honorary _Maintainer Emeritus_ or _Contributor Emeritus_ status. + +### Officers + +This is a subset of the Maintainers that are officers of the Pants Build 501c(6) organization. Their role is primarily bureaucratic, as well as a formality required by the State of California. They don't have extra voting power over the other Maintainers. + +## How are decisions made? + +We strive to arrive at decisions - about priorities, technical choices and others - by consensus where possible. If we cannot achieve consensus, we have [a process in place](doc:contentious-decisions) for putting decisions to a vote among the Maintainers. We avail ourselves of this process extremely rarely. diff --git a/versioned_docs/version-2.18/docs/markdown/Getting Help/the-pants-community/code-of-conduct.md b/versioned_docs/version-2.18/docs/markdown/Getting Help/the-pants-community/code-of-conduct.md new file mode 100644 index 000000000..e3996f0fe --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Getting Help/the-pants-community/code-of-conduct.md @@ -0,0 +1,51 @@ +--- +title: "Code of conduct" +slug: "code-of-conduct" +excerpt: "Our expectations for participants in the Pants community." +hidden: false +createdAt: "2020-05-16T22:54:21.817Z" +--- + +We are committed to providing a welcoming and inspiring community for all and expect our code of conduct to be honored. Anyone who violates this code of conduct may be banned from contributing to the project or participating in community discussion. + +This code is not exhaustive or complete. It serves to distill our common understanding of a collaborative, shared environment, and goals. We expect it to be followed in spirit as much as in the letter. + +Our open source community strives to: + +- _Be friendly and patient._ +- _Be welcoming:_ We encourage everyone to participate and are committed to building a community for all. Although we will fail at times, we seek to treat everyone as fairly and equally as possible. We strive to be a community that welcomes and supports people of all backgrounds and identities. +- _Be considerate:_ Your work will be used by other people, and you, in turn, will depend on the work of others. Any decision you take will affect users and colleagues, and you should take those outcomes into account when making decisions. Remember that we’re a world-wide community, so you might not be communicating in someone else’s primary language. +- _Be respectful:_ Not all of us will agree all the time, but disagreement is no excuse for poor behavior and poor manners. We might all experience some frustration now and then, but we cannot allow that frustration to turn into a personal attack. It’s important to remember that a community where people feel uncomfortable or threatened is not a productive one. On that note, whenever a participant has made a mistake, we expect them to take responsibility for it. If someone has been harmed or offended, it is our responsibility to listen carefully and respectfully, and do our best to right the wrong. +- _Be careful in the words that we choose:_ we are a community of professionals, and we conduct ourselves professionally. Be kind to others. Do not insult or put down other participants. Harassment and other exclusionary behavior isn’t acceptable. +- _Try to understand why we disagree:_ Disagreements, both social and technical, happen all the time. It is important that we resolve disagreements and differing views constructively. Remember that the strength of our community comes from different people have different perspectives on issues. Being unable to understand why someone holds a viewpoint doesn’t mean that they’re wrong. Don’t forget that it is human to err and blaming each other doesn’t get us anywhere. Instead, focus on helping to resolve issues and learning from mistakes. +- _Be inclusive:_ Although this list cannot be exhaustive, we explicitly honor diversity in age, gender, gender identity or expression, culture, ethnicity, language, national origin, political beliefs, profession, race, religion, sexual orientation, socioeconomic status, and technical ability. We will not tolerate discrimination based on any of the protected characteristics above, including participants with disabilities. + +## Reporting issues + +If you have experienced or witnessed unacceptable behavior—or have any other concerns—please report it by contacting us via pants-conduct@googlegroups.com. All reports will be handled with discretion. In your report please include: + +- Your contact information. +- Names (real, nicknames, or pseudonyms) of any individuals involved. If there are additional witnesses, please include them as well. Your account of what occurred, and if you believe the incident is ongoing. If there is a publicly available record (e.g. a mailing list archive or a slack history), please include a link. +- Any additional information that may be helpful. + +After filing a report, a representative will contact you personally, review the incident, follow up with any additional questions, and make a decision as to how to respond. If the person who is harassing you is part of the response team, they are required to be excluded from handling your incident. If the complaint originates from a member of the response team, it will be handled by a different member of the response team. We will respect confidentiality requests for the purpose of protecting victims of abuse. We will endeavor to make an alternative reporting chain available in the event you need to report a project lead or a member of the response team. The members of the response team are currently: + +- Benjy Weinberger +- Carina C. Zona +- Daniel Wagner-Hall +- Eric Arellano +- Nora Howard +- Joshua Cannon + +## Attribution and acknowledgements + +This code of conduct is based on the [Open Code of Conduct v1.0](https://github.com/todogroup/opencodeofconduct) from the [TODOGroup](http://todogroup.org/). + +We all stand on the shoulders of giants across many open source communities. We’d like to thank the communities and projects that established code of conducts and diversity statements as our inspiration: + +- [Django](https://www.djangoproject.com/conduct/reporting/) +- [Python](https://www.python.org/community/diversity/) +- [Ubuntu](http://www.ubuntu.com/about/about-ubuntu/conduct) +- [Contributor Covenant](http://contributor-covenant.org/) +- [Geek Feminism](http://geekfeminism.org/about/code-of-conduct/) +- [Citizen Code of Conduct](http://citizencodeofconduct.org/) diff --git a/versioned_docs/version-2.18/docs/markdown/Getting Help/the-pants-community/contentious-decisions.md b/versioned_docs/version-2.18/docs/markdown/Getting Help/the-pants-community/contentious-decisions.md new file mode 100644 index 000000000..d5be698a2 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Getting Help/the-pants-community/contentious-decisions.md @@ -0,0 +1,23 @@ +--- +title: "Contentious decisions" +slug: "contentious-decisions" +excerpt: "How we make decisions when consensus cannot be reached" +hidden: false +createdAt: "2021-03-17T04:19:25.352Z" +--- + +Pants is a friendly community, and we prefer to reach decisions by consensus among Maintainers. + +To address cases where consensus cannot be reached even after an extended discussion, Maintainers may use a vote to reach a conclusion. + +Before calling a vote, it's very important to attempt to reach consensus without a vote. Because discussion and collaboration help us to understand one another's concerns and weigh them, issues that are potentially contentious generally deserve a thread on [pants-devel@googlegroups.com](mailto:pants-devel@googlegroups.com): if you are unsure of whether an issue is contentious, consider sending the mail anyway. + +If it becomes clear that all concerns have been voiced, but that consensus cannot be reached via discussion, a Maintainer may call a vote by creating a new thread on [pants-devel@googlegroups.com](mailto:pants-devel@googlegroups.com) with a subject line of the form `[vote] Should We X for Y?`, and a body that presents a series of the (pre-discussed) numbered choices. The Maintainer should publicize the vote in relevant Slack channels such as `#infra` and `#releases`, and on the [pants-committers@googlegroups.com](mailto:pants-committers@googlegroups.com) list. + +Because the topic will already have been extensively discussed, the voting thread should not be used for further discussion: instead, it should be filled with responses containing only a list of the individual's ranked numerical choices (from first choice to last choice in descending order), with no rationale included. Individuals may change their votes by replying again. + +When a thread has not received any new responses in three business days, the Maintainer who called the vote should reply to request any final votes within one business day (and restart the three day countdown if any new votes arrive before that period has elapsed). On the other hand, if new information is raised on the discussion (note: not voting) thread during the course of voting, the committer who called the vote might choose to cancel the vote and start a new voting thread based on that new information. + +When tallying the votes, only Maintainers' votes will be counted: votes are counted using (the "last choice" alternative is eliminated round by round until only the target number of choices remains), using a simple majority of the participating (i.e., those who replied to the voting thread) Maintainers' votes. Once the votes have been tallied, the Maintainer should reply to the thread with the conclusion of the vote. + +It is our goal, and hope, that this process is used only rarely. diff --git a/versioned_docs/version-2.18/docs/markdown/Getting Help/the-pants-community/maintainers.md b/versioned_docs/version-2.18/docs/markdown/Getting Help/the-pants-community/maintainers.md new file mode 100644 index 000000000..d1e0d7e81 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Getting Help/the-pants-community/maintainers.md @@ -0,0 +1,112 @@ +--- +title: "Maintainers" +slug: "maintainers" +excerpt: "What Pants maintainers do and how to become one." +hidden: false +createdAt: "2020-05-16T22:36:48.659Z" +--- + +Pants community Maintainers are contributors who have been recognized by the project as stewards of Pants. They have a proven record of contributions, are committed to ensuring the continued success of our project, and through their actions help to grow our Community. + +## What is a maintainer? + +[Maintainers are the core group of trusted people with a long-term interest in Pants, who have made regular contributions for some time, and plan to continue to do so](doc:the-pants-community#maintainers). Maintainers are entrusted to make decisions on the future and direction of Pants. In doing so, it is their responsibility to uphold the health, culture, and quality of the project. + +We do not expect a minimum commitment of time from Maintainers, nor do we expect maintainers to contribute in specific ways, rather, we expect them to act in a way that makes Pants better whenever they interact with the project and our community. + +## What do maintainers do? + +Every Maintainer contributes to the health of Pants in ways that are valuable. We don't need each Maintainer to do all of the things needed to sustain the project, as long as we collectively have those skills. If your track record as a [Contributor](doc:the-pants-community#contributors) includes any of the following, you will be valuable as a Maintainer, and you do not need to change how you contribute to the project unless you enthusiastically choose to do so. + +Maintainers shape the features and capabilities of Pants, and how we present and explain them to our users: + +- They approve code and documentation changes from other maintainers and contributors, especially in their area of expertise +- They ensure the contributions they approve meet our project's quality standards + +Maintainers set the direction for the future of Pants: + +- They participate in Pants' design process, offering their expertise and opinions when appropriate, or if they are called upon +- They understand the current and future needs and goals of the project, and provide informed context that justifies accepting or rejecting a proposal +- They contribute expertise in an important area of concern for the project; for example, performance, security, maintainability, product management, user experience, documentation, or open source governance + +Maintainers set the tone and establish the culture of the Pants Community, and foster its growth: + +- They are welcoming when they interact with current and prospective members of the  community +- They maintain a courteous and professional demeanor when participating in the community, upholding the standards set in our Code of Conduct +- They help steward changes through our contribution process, especially by helping new contributors identify where changes fit into Pants, or by giving context for why certain features do not, or should not exist +- They are active participants in one or more of our communication channels as they are able, or as they are called on +- They help sustain the project's long-term growth and sustainability by seeking ways to make contributing to the project more enjoyable, engaging, and educational for others + +### Time commitment + +Most Maintainers perform the role as a volunteer commitment, without direct support from their employer. We understand everyone's availability can vary from day to day, and that we can't really make demands on your time. We appreciate the generosity you are able to show to the project, and value what you bring to it. + +We expect Maintainers to be able to answer questions about their areas of expertise as they are called upon. If you are unable to respond to a question in a timely manner, we'd appreciate it if you could make that clear, so someone else can offer help, or a decision can be made in your absence. + +If there are demands on your time that prevent you from participating in the Pants community, that's OK! We can usually cope with this, especially if you can let other maintainers know in advance. That way, we can prioritize work that you might have otherwise taken on, and ensure there isn't a daunting pile of issues and pull requests awaiting you when you return. + +If you no longer feel that you are able to contribute effectively as a maintainer, you may request to be converted to a [Maintainer Emeritus](doc:the-pants-community#former-team-members). + +### Maintainer of the Week + +Some maintainers also accept responsibility for being on the Maintainer of the Week (MOTW) rotation, which has three main responsibilities, in no particular order: + +1. Shepherding [the week’s releases](doc:release-process): + - This includes updating the release documentation, creating release builds, and stewarding them through the review, as well as flagging (not necessarily fixing) any problems + - This will typically involve one dev release from `main`, and possibly one or more release candidates or stable releases (feel free to ask in #development for guidance on which releases). +2. Greeting newcomers on the #welcome channel in Slack: + - The same script can be copy-pasted once or twice per week, depending on the number of newcomers. +3. Triaging incoming GitHub PRs, issues and discussions. This includes: + - Ensuring that PRs have a `category:` label. + - Approving CI runs for first-time contributors. + - Assigning code reviewers for incoming PRs if not done so by the author. + - Responding to issues and/or assigning them to appropriate owners. + - Ensuring that [approved PRs](https://github.com/pantsbuild/pants/pulls?q=is%3Apr+is%3Aopen+review%3Aapproved) are merged, if the author isn’t a Maintainer and so doesn’t have merge permissions. + +The MOTW will also make a best-effort attempt to ensure that questions on Slack are responded to by someone. The MOTW is not personally expected to respond to every question thread, but to make sure things don’t fall through the cracks. + +The MOTW rotation is opt-in, and a maintainer is not required to join it, although we do encourage this. Please ask for help with any part in #development or #maintainers-confidential + +The MOTW rotation is managed on a dedicated Google calendar. + +## Becoming a Maintainer + +Maintainer candidates are nominated by existing Maintainers from among the wider contributor base. Criteria for nomination include: + +- Candidate has a record of good contributions to Pants +- Candidate has a record of collaboration with Pants community members +- Candidate understands the principles described on this page +- Candidate is committed to upholding Pants community standards, including the Code of Conduct + +Candidates will only be publicly nominated after one Maintainer has determined they are willing to become a Maintainer. + +If a contributor has been nominated, and is willing to become a Maintainer, then their candidacy will be discussed and voted on by the existing Maintainers. + +## Onboarding tasks + +### Maintainer onboarding + +New maintainers should be: + +- Added: + - to the [Maintainers Github team](https://github.com/orgs/pantsbuild/teams/maintainers) + - to the [pants-maintainers@ Google Group](https://groups.google.com/g/pants-maintainers) + - to [`MAINTAINERS.md`](https://github.com/pantsbuild/pants/blob/main/MAINTAINERS.md) + - to the [Slack #maintainers-confidential room](doc:getting-help#slack) + - to the [Meet the Team page](doc:team), with their proudest contribution +- Welcomed: + - on the [pants-devel@ Google Group](https://groups.google.com/g/pants-devel) + - in the [Slack #announce room](doc:getting-help#slack) + - by [@pantsbuild on Twitter](https://twitter.com/pantsbuild) + +### Contributor onboarding + +New Contributors should be: + +- Added: + - to the [Contributors Github team](https://github.com/orgs/pantsbuild/teams/contributors) + - to the [Meet the Team page](doc:team), with their proudest contribution +- Welcomed: + - on the [pants-devel@ Google Group](https://groups.google.com/g/pants-devel) + - in the [Slack #announce room](doc:getting-help#slack) + - by [@pantsbuild on Twitter](https://twitter.com/pantsbuild) diff --git a/versioned_docs/version-2.18/docs/markdown/Getting Help/the-pants-community/team.md b/versioned_docs/version-2.18/docs/markdown/Getting Help/the-pants-community/team.md new file mode 100644 index 000000000..d2fd79c56 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Getting Help/the-pants-community/team.md @@ -0,0 +1,109 @@ +--- +title: "Meet the Team" +slug: "team" +excerpt: "" +hidden: false +createdAt: "2022-08-15T22:36:48.659Z" +--- + +Pants open source project has had many team members in over a decade. The current team is comprised of elected Contributors and Maintainers, who are nominated based on [criteria](doc:the-pants-community#how-is-the-community-structured) including demonstrated commitment to the project and a track record of contributions to the project and community. + +> 📘 Interested in joining the Pants team? +> +> Welcome, future colleague! Learn more about the team's composition and eligibility criteria on the [Pants Community](doc:the-pants-community) page, then post in the #development channel of the [community Slack](doc:getting-started) to express interest in joining the team. We love opportunity to usher in new teammates, and are happy to offer mentorship support to community members who request it and have a track record of commitment to the long-term vitality of the project. + +## Current Team + +### Maintainers + +--- + +| **NAME** | **PROUDEST CONTRIBUTION** | +| -------------------------- | ----------------------------------------------------------------------------------------------------- | +| **A. Alonso Dominguez** | "Adding support for Helm and working on extending it to support managing deployments" | +| **Alexey Tereshenkov** | "Adding yapf formatter support and writing blog posts about Pants" | +| **Andreas Stenius** | "Adding Docker support" | +| **Benjy Weinberger** | "The options system — unifying our flags, config and env vars into a coherent, extensible framework." | +| **Carina C. Zona** | "Developing the #welcome channel on Pants community chat" | +| **Christopher Neugebauer** | Adding multi-architecture Mac support for Apple Silicon (M1s) | +| **Dan Moran** | "Enabling batched `pytest` execution in `pants test`" | +| **Daniel Wagner-Hall** | Laid the foundation for remote execution | +| **Danny McClanahan** | Implemented bounded runtime polymorphism with union rules and improved plugin UX with async/await | +| **Eric Arellano** | "Migrating Pants to Python 3 for my internship project" | +| **Henry Fuller** | "Working on replacing watchman with a kernel based file watcher in the V2 engine" | +| **Huon Wilson** | "Improving the experiencing of using `mypy` with Pants" | +| **Jacob Floyd** | Gave the idea for `skip_flake8` et al, which grew into a flagship feature: incremental adoption | +| **John Sirois** | | +| **Josh Reed** | "Remains continually willing to bikeshed about design decisions on the Pants Slack" | +| **Joshua Cannon** | "I'm proud and thankful my voice can and is being used to shape Pants inside and out" | +| **Kris Wilson** | "Helping lay the foundation for the v2 engine and realizing the power of Rust + Python for perf". | +| **Patrick Lawson** | Formalized targets, BUILD files, and fingerprinting in v.1 | +| **Stu Hood** | Helping to push the v2 engine forward, which eventually turned into Pants 2.0. | +| **Suresh Joshi (SJ)** | "Writing a post on the Pants Blog about my experimental PyOxidizer plugin" | +| **Tobias Nilsson** | "Implementing Javascript dependency inference and nodejs workspaces the Pants way" | +| **Tom Dyas** | Adding the Golang backend and getting remote execution to work with more servers. | +| **Yi Cheng** | Adding coursier integration to v.1 | + +### Contributors + +--- + +| **NAME** | **PROUDEST CONTRIBUTION** | +| ----------------------- | -------------------------------------------------------------------------------------------------------- | +| **Chris Williams** | | +| **Daniel Goldman** | "Pants metaprogramming" | +| **Darcy Shen** | "Exploring the best Pants practice for Data and ML Engineering in Python and Scala" | +| **Doron Somech** | "Improving Scala dependency inference to support our codebase" | +| **Gautham Nair** | | +| **Jonas Stendahl** | "Adding formatting and linting support for Protobuf" | +| **Marcelo Trylesinski** | "Improving onboarding experience" | +| **Nick Grisafi** | "Participating in podcasts with maintainers (Eric and Josh) on developer experience and Pants!" | +| **Raúl Cuza** | "The first time I was able to help someone else with pants on the Slack ." | +| **Rhys Madigan** | "Making unit test run times easier to understand" | +| **Shantanu Kumar** | | +| **Tansy Arron-Walker** | "Writing my first task in the new engine was really exciting!" | +| **Thales Menato** | "Making sure Pants can run even under heavily secured work environments!" | +| **Tom Solberg** | "Owning multiple OSS Pants plugins" | + +--- + +## Emeritus + +When team members retire from the team in good standing, they are designated emeritus. We are grateful for the many past contributons by our emeritus team members, whose collective work created the strong foundations that modern Pants stands on. We are honored to have had the opportunity to collaborate with them as teammates. + +### Maintainers Emeritus + +--- + +| **NAME** | **PROUDEST CONTRIBUTION** | +| --------------------- | ----------------------------------------------------------------------------------- | +| **Andy Reitz** | | +| **Borja Lorente** | "Polished several components, including the v1 daemon and the v2 CLI UX" | +| **Chris Heisterkamp** | Revamped the JUnit Test runner in v.1 | +| **Chris Livingston** | Added support to v.1 for 3rd party resolution of native (C/C++) dependencies | +| **David Taylor** | | +| **David Turner** | | +| **Dorothy Ordogh** | | +| **Eric Ayers** | | +| **Fedor Korotkov** | | +| **Ity Kaul** | | +| **Garrett Malmquist** | Worked on codegen in v.1 | +| **Greg Shuflin** | "Being a part of the team effort to get Pants 2.0 shipped" | +| **Larry Hosken** | | +| **Mateo Rodriguez** | Added Android support to v.1 | +| **Matt Olsen** | Added infrastructure Scala to v.1 | +| **Nora Howard** | "Parallelized JVM compilation in v.1 and developed one of the v2 engine prototypes" | +| **Peiyu Wang** | | +| **Pierre Chevalier** | Kickstarting adoption of the Black linter | +| **Tejal Desai** | | +| **Travis Crawford** | | +| **Yujie Chen** | | + +### Contributors Emeritus + +--- + +| **NAME** | **PROUDEST CONTRIBUTION** | +| -------------------- | ----------------------------------------------------------------------- | +| **Liam Wilson** | Added Poetry support | +| **Mathieu Sabourin** | "Helped with the Python 3 migration and fixed some bugs along the way." | diff --git a/versioned_docs/version-2.18/docs/markdown/Getting Started/getting-started.md b/versioned_docs/version-2.18/docs/markdown/Getting Started/getting-started.md new file mode 100644 index 000000000..6fc6ef596 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Getting Started/getting-started.md @@ -0,0 +1,18 @@ +--- +title: "Getting started" +slug: "getting-started" +hidden: false +createdAt: "2020-07-29T02:02:59.962Z" +--- + +Thanks for your interest in trying out Pants! + +We recommend joining our [Slack workspace](doc:the-pants-community), in case you have any questions along the way. + +And if you want to show support for the project, [GitHub stars](https://github.com/pantsbuild/pants) are always appreciated! + +- [Prerequisites](doc:prerequisites) +- [Installing Pants](doc:installation) +- [Initial configuration](doc:initial-configuration) +- [Example repositories](doc:example-repos) +- [Incremental adoption](doc:existing-repositories) diff --git a/versioned_docs/version-2.18/docs/getting-started/example-projects-and-repositories.mdx b/versioned_docs/version-2.18/docs/markdown/Getting Started/getting-started/example-repos.md similarity index 82% rename from versioned_docs/version-2.18/docs/getting-started/example-projects-and-repositories.mdx rename to versioned_docs/version-2.18/docs/markdown/Getting Started/getting-started/example-repos.md index 45802d080..81d661322 100644 --- a/versioned_docs/version-2.18/docs/getting-started/example-projects-and-repositories.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Getting Started/getting-started/example-repos.md @@ -1,10 +1,9 @@ --- - title: Example projects and repositories - sidebar_position: 3 ---- - -Example projects to help set up your own repository. - +title: "Example projects and repositories" +slug: "example-repos" +excerpt: "Example projects to help set up your own repository." +hidden: false +createdAt: "2020-03-12T20:25:05.256Z" --- A [Python repository](https://github.com/pantsbuild/example-python), demonstrating features such as: diff --git a/versioned_docs/version-2.18/docs/getting-started/incremental-adoption.mdx b/versioned_docs/version-2.18/docs/markdown/Getting Started/getting-started/existing-repositories.md similarity index 53% rename from versioned_docs/version-2.18/docs/getting-started/incremental-adoption.mdx rename to versioned_docs/version-2.18/docs/markdown/Getting Started/getting-started/existing-repositories.md index 9df6ee4a0..e9ba0d2de 100644 --- a/versioned_docs/version-2.18/docs/getting-started/incremental-adoption.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Getting Started/getting-started/existing-repositories.md @@ -1,10 +1,9 @@ --- - title: Incremental adoption - sidebar_position: 4 ---- - -How to incrementally add Pants to an existing repository. - +title: "Incremental adoption" +slug: "existing-repositories" +excerpt: "How to incrementally add Pants to an existing repository." +hidden: false +createdAt: "2020-09-28T23:03:33.586Z" --- ## Recommended steps @@ -13,38 +12,38 @@ If you have an existing repository, we recommend incrementally adopting to reduc Incremental adoption also allows you to immediately start benefitting from Pants, then deepen adoption at your own pace, instead of postponing benefit until you are ready to make dramatic change all at once. -:::note Joining Slack -We would love to help you with adopting Pants. Please reach out through [Slack](/community/getting-help). -::: +> 📘 Joining Slack +> +> We would love to help you with adopting Pants. Please reach out through [Slack](doc:getting-help). ### 1. A basic `pants.toml` -Follow the [Getting Started](./index.mdx) guide to install Pants and [set up an initial `pants.toml`](./initial-configuration.mdx). Validate that running `pants count-loc ::` works properly. If you want to exclude a specific folder at first, you can use the [`pants_ignore`](../../../reference/global-options.mdx#section-pants-ignore) option. +Follow the [Getting Started](doc:getting-started) guide to install Pants and [set up an initial `pants.toml`](doc:initial-configuration). Validate that running `pants count-loc ::` works properly. If you want to exclude a specific folder at first, you can use the [`pants_ignore`](https://www.pantsbuild.org/docs/reference-global#section-pants-ignore) option. -Add the [relevant backends](../../using-pants/key-concepts/backends.mdx) to `[GLOBAL].backend_packages`. +Add the [relevant backends](doc:enabling-backends) to `[GLOBAL].backend_packages`. ### 2. Set up formatters/linters with basic BUILD files Formatters and linters are often the simplest to get working because—for all tools other than Pylint— you do not need to worry about things like dependencies and third-party requirements. -First, run [`pants tailor ::`](./initial-configuration.mdx#5-generate-build-files) to generate BUILD files. This tells Pants which files to operate on, and will allow you to set additional metadata over time like test timeouts and dependencies on resources. +First, run [`pants tailor ::`](doc:initial-configuration#5-generate-build-files) to generate BUILD files. This tells Pants which files to operate on, and will allow you to set additional metadata over time like test timeouts and dependencies on resources. -Then, activate the [Linters and formatters](../../python/python-overview/linters-and-formatters.mdx) you'd like to use. Hook up the `fmt` and `lint` goals to your [CI](../../using-pants/using-pants-in-ci.mdx). +Then, activate the [Linters and formatters](doc:python-linters-and-formatters) you'd like to use. Hook up the `fmt` and `lint` goals to your [CI](doc:using-pants-in-ci). ### 3. Set up tests -To get [tests](../../python/goals/test.mdx) working, you will first need to set up [source roots](../../using-pants/key-concepts/source-roots.mdx) and [third-party dependencies](../../python/python-overview/third-party-dependencies.mdx). +To get [tests](doc:python-test-goal) working, you will first need to set up [source roots](doc:source-roots) and [third-party dependencies](doc:python-third-party-dependencies). -Pants's [dependency inference](../../using-pants/key-concepts/targets-and-build-files.mdx) will infer most dependencies for you by looking at your import statements. However, some dependencies cannot be inferred, such as [resources](../../using-pants/assets-and-archives.mdx). +Pants's [dependency inference](doc:targets) will infer most dependencies for you by looking at your import statements. However, some dependencies cannot be inferred, such as [resources](doc:assets). Try running `pants test ::` to see if any tests fail. Sometimes, your tests will fail with Pants even if they pass with your normal setup because tests are more isolated than when running Pytest/unittest directly: -- Tests run in a sandbox, meaning they can only access dependencies that Pants knows about. If you have a missing file or missing import, run `pants dependencies path/to/my_test.py` and `pants dependencies --transitive path/to/my_test.py` to confirm what you are expecting is known by Pants. If not, see [Troubleshooting / common issues](../../using-pants/troubleshooting-common-issues.mdx) for reasons dependency inference can fail. +- Tests run in a sandbox, meaning they can only access dependencies that Pants knows about. If you have a missing file or missing import, run `pants dependencies path/to/my_test.py` and `pants dependencies --transitive path/to/my_test.py` to confirm what you are expecting is known by Pants. If not, see [Troubleshooting / common issues](doc:troubleshooting) for reasons dependency inference can fail. - Test files are isolated from each other. If your tests depended on running in a certain order, they may now fail. This requires rewriting your tests to remove the shared global state. You can port your tests incrementally with the `skip_tests` field: -```python title="project/BUILD" +```python project/BUILD python_tests( name="tests", # Skip all tests in this folder. @@ -57,26 +56,26 @@ python_tests( ) ``` -`pants test ::` will only run the relevant tests. You can combine this with [`pants peek`](../../using-pants/project-introspection.mdx) to get a list of test files that should be run with your original test runner: +`pants test ::` will only run the relevant tests. You can combine this with [`pants peek`](doc:project-introspection) to get a list of test files that should be run with your original test runner: ``` pants --filter-target-type=python_test peek :: | \ jq -r '.[] | select(.skip_tests== true) | .["sources"][]' ``` -You may want to [speed up your CI](../../using-pants/using-pants-in-ci.mdx) by having Pants only run tests for changed files. +You may want to [speed up your CI](doc:using-pants-in-ci) by having Pants only run tests for changed files. ### 4. Set up `pants package` -You can use `pants package` to package your code into various formats, such as a [PEX binary](../../python/goals/package.mdx), a [wheel](../../python/goals/package.mdx#create-a-setuptools-distribution), an [AWS Lambda](../../python/integrations/aws-lambda.mdx), or a [zip/tar archive](../../using-pants/assets-and-archives.mdx). +You can use `pants package` to package your code into various formats, such as a [PEX binary](doc:python-package-goal), a [wheel](doc:python-package-goal#create-a-setuptools-distribution), an [AWS Lambda](doc:awslambda-python), or a [zip/tar archive](doc:assets). -We recommend manually verifying that this step is working how you'd like by inspecting the built packages. Alternatively, you can [write automated tests](../../python/goals/test.mdx) that will call the equivalent of `pants package` for you, and insert the built package into your test environment. +We recommend manually verifying that this step is working how you'd like by inspecting the built packages. Alternatively, you can [write automated tests](doc:python-test-goal) that will call the equivalent of `pants package` for you, and insert the built package into your test environment. ### 5. Check out writing a plugin Pants is highly extensible. In fact, all of Pants's core functionality is implemented using the exact same API used by plugins. -Check out [Plugins Overview](../../writing-plugins/plugins-overview.mdx). We'd also love to help in the #plugins channel on [Slack](/community/members). +Check out [Plugins Overview](doc:plugins-overview). We'd also love to help in the #plugins channel on [Slack](doc:the-pants-community). Some example plugins that users have written: @@ -91,9 +90,9 @@ If you're migrating from another system that already uses the name `BUILD`, such First, by default Pants recognizes `BUILD.extension` for any `extension` as a valid BUILD file. So you can use a name like `BUILD.pants` without changing configuration. -Second, you can [configure](../../../reference/global-options.mdx#section-build-patterns) Pants to use a different set of file names entirely: +Second, you can [configure](doc:reference-global#section-build-patterns) Pants to use a different set of file names entirely: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] build_patterns = ["PANTSBUILD", "PANTSBUILD.*"] @@ -103,7 +102,7 @@ build_file_name = "PANTSBUILD" And finally you can configure Pants to not look for BUILD files in certain locations. This can be helpful, for example, if you use Pants for some languages and another tool for other languages: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] build_ignore = ["src/cpp"] ``` diff --git a/versioned_docs/version-2.18/docs/getting-started/initial-configuration.mdx b/versioned_docs/version-2.18/docs/markdown/Getting Started/getting-started/initial-configuration.md similarity index 50% rename from versioned_docs/version-2.18/docs/getting-started/initial-configuration.mdx rename to versioned_docs/version-2.18/docs/markdown/Getting Started/getting-started/initial-configuration.md index b688242d3..04609cac6 100644 --- a/versioned_docs/version-2.18/docs/getting-started/initial-configuration.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Getting Started/getting-started/initial-configuration.md @@ -1,10 +1,9 @@ --- - title: Initial configuration - sidebar_position: 2 ---- - -Creating the configuration necessary to run Pants. - +title: "Initial configuration" +slug: "initial-configuration" +excerpt: "Creating the configuration necessary to run Pants." +hidden: false +createdAt: "2020-02-21T17:44:29.297Z" --- To get started in a new repository, follow these steps, and then visit one of the language-specific overview pages. @@ -15,7 +14,7 @@ Pants configuration lives in a file called `pants.toml` in the root of the repo. If you haven't yet, create a `pants.toml` file: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] pants_version = "$PANTS_VERSION" ``` @@ -24,7 +23,7 @@ where `$PANTS_VERSION` is the version of Pants that you want to pin your repo to 2. # Configure source roots -Many languages organize code in a package hierarchy, so that the relative location of a source file on the filesystem corresponds to a logical package name. The directories that correspond to the roots of the language's package hierarchy are referred to as [source roots](../../using-pants/key-concepts/source-roots.mdx). These are the filesystem locations from which import paths are computed. +Many languages organize code in a package hierarchy, so that the relative location of a source file on the filesystem corresponds to a logical package name. The directories that correspond to the roots of the language's package hierarchy are referred to as [source roots](doc:source-roots). These are the filesystem locations from which import paths are computed. For example, if your Python code lives under `src/python`, then `import myorg.myproject.app` will import the code in `src/python/myorg/myproject/app.py`. @@ -32,17 +31,17 @@ In simple cases the root of the repository itself might be your only source root To work correctly, Pants needs to know about the source roots in your repo. By default, given a source file path, Pants will treat the longest path prefix that ends in `src`, `src/python`, or `src/py` as its source root, falling back to the repo root itself if no such prefix is found. -If your project has a different structure, see [Source roots](../../using-pants/key-concepts/source-roots.mdx) for how to configure them, and for examples of different project structures you can use Pants with. +If your project has a different structure, see [Source roots](doc:source-roots) for how to configure them, and for examples of different project structures you can use Pants with. -:::note Golang projects can skip this step -Golang projects already use `go.mod` to indicate source roots. -::: +> 📘 Golang projects can skip this step +> +> Golang projects already use `go.mod` to indicate source roots. 3. # Enable backends -Most Pants functionality is provided via pluggable [_backends_](../../using-pants/key-concepts/backends.mdx), which are activated by adding to the `[GLOBAL].backend_packages` option like this: +Most Pants functionality is provided via pluggable [_backends_](doc:enabling-backends), which are activated by adding to the `[GLOBAL].backend_packages` option like this: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] ... backend_packages = [ @@ -52,28 +51,28 @@ backend_packages = [ ] ``` -See [here](../../using-pants/key-concepts/backends.mdx) for a list of available backends. +See [here](doc:enabling-backends) for a list of available backends. 4. # Update `.gitignore` If you use Git, we recommend adding these lines to your top-level `.gitignore` file: -```text title=".gitignore" +```text .gitignore # Pants workspace files /.pants.* /dist/ /.pids ``` -:::note FYI: Pants will ignore all files in your `.gitignore` by default -The `pants_ignore` option tells Pants which files to avoid looking at, but it additionally ignores all `.gitignore`d files by default. Occasionally, you will want to ignore something with Git, but still want Pants to work on the file. See [Troubleshooting / common issues](../../using-pants/troubleshooting-common-issues.mdx) for how to do this. -::: +> 📘 FYI: Pants will ignore all files in your `.gitignore` by default +> +> The `pants_ignore` option tells Pants which files to avoid looking at, but it additionally ignores all `.gitignore`d files by default. Occasionally, you will want to ignore something with Git, but still want Pants to work on the file. See [Troubleshooting / common issues](doc:troubleshooting) for how to do this. 5. # Generate BUILD files -Once you have enabled the backends for the language(s) you'd like to use, run [`pants tailor ::`](./initial-configuration.mdx#5-generate-build-files) to generate an initial set of [BUILD](../../using-pants/key-concepts/targets-and-build-files.mdx) files. +Once you have enabled the backends for the language(s) you'd like to use, run [`pants tailor ::`](doc:initial-configuration#5-generate-build-files) to generate an initial set of [BUILD](doc:targets) files. -[BUILD](../../using-pants/key-concepts/targets-and-build-files.mdx) files provide metadata about your code (the timeout of a test, any dependencies which cannot be inferred, etc). BUILD files are typically located in the same directory as the code they describe. Unlike many other systems, Pants BUILD files are usually very succinct, as most metadata is either inferred from static analysis, assumed from sensible defaults, or generated for you. +[BUILD](doc:targets) files provide metadata about your code (the timeout of a test, any dependencies which cannot be inferred, etc). BUILD files are typically located in the same directory as the code they describe. Unlike many other systems, Pants BUILD files are usually very succinct, as most metadata is either inferred from static analysis, assumed from sensible defaults, or generated for you. In general, you should create (and update) BUILD files by running `pants tailor ::`: @@ -88,24 +87,23 @@ Created src/go/BUILD: - Add go_mod target mod ``` -Often, this will be all you need for Pants to work, thanks to sensible defaults and inference, like [inferring your dependencies](../../using-pants/key-concepts/targets-and-build-files.mdx). Sometimes, though, you may need to or want to change certain fields, like setting a longer timeout on a test. - -You may also need to add some targets that Pants cannot generate, like [`resources` and `files`](../../using-pants/assets-and-archives.mdx) targets. +Often, this will be all you need for Pants to work, thanks to sensible defaults and inference, like [inferring your dependencies](doc:targets). Sometimes, though, you may need to or want to change certain fields, like setting a longer timeout on a test. -To ignore false positives, set `[tailor].ignore_paths` and `[tailor].ignore_adding_targets`. See [tailor](../../../reference/goals/tailor.mdx) for more detail. +You may also need to add some targets that Pants cannot generate, like [`resources` and `files`](doc:assets) targets. -:::note Run `pants tailor --check ::` in CI -We recommend running `pants tailor --check ::` in your [continuous integration](../../using-pants/using-pants-in-ci.mdx) so that you don't forget to add any targets and BUILD files (which might mean that tests aren't run or code isn't validated). - -``` -❯ pants tailor --check :: -Would create scripts/BUILD: -- Add shell_sources target scripts - -To fix `tailor` failures, run `pants tailor`. -``` +To ignore false positives, set `[tailor].ignore_paths` and `[tailor].ignore_adding_targets`. See [tailor](doc:reference-tailor) for more detail. -::: +> 📘 Run `pants tailor --check ::` in CI +> +> We recommend running `pants tailor --check ::` in your [continuous integration](doc:using-pants-in-ci) so that you don't forget to add any targets and BUILD files (which might mean that tests aren't run or code isn't validated). +> +> ``` +> ❯ pants tailor --check :: +> Would create scripts/BUILD: +> - Add shell_sources target scripts +> +> To fix `tailor` failures, run `pants tailor`. +> ``` 6. # Visit a language specific overview diff --git a/versioned_docs/version-2.18/docs/getting-started/installing-pants.mdx b/versioned_docs/version-2.18/docs/markdown/Getting Started/getting-started/installation.md similarity index 62% rename from versioned_docs/version-2.18/docs/getting-started/installing-pants.mdx rename to versioned_docs/version-2.18/docs/markdown/Getting Started/getting-started/installation.md index 86f9e26a4..fbe6be1eb 100644 --- a/versioned_docs/version-2.18/docs/getting-started/installing-pants.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Getting Started/getting-started/installation.md @@ -1,8 +1,8 @@ --- - title: Installing Pants - sidebar_position: 1 ---- - +title: "Installing Pants" +slug: "installation" +hidden: false +createdAt: "2020-02-21T17:44:53.022Z" --- You can download and run an installer script that will install the Pants binary with this command: @@ -31,44 +31,43 @@ bin i github.com/pantsbuild/scie-pants ~/.local/bin/pants - If you run `pants` in a repo that is already configured to use Pants, it will read the repo's Pants version from the `pants.toml` config file, install that version if necessary, and then run it. -- If you run `pants` in a repo that is not yet configured to use Pants, it will prompt you to set up a skeleton `pants.toml` that uses that latest stable version of Pants. You'll then need to edit that config file to add [initial configuration](./initial-configuration.mdx). - -If you have difficulty installing Pants, see our [getting help](/community/getting-help) for community resources to help you resolve your issue. +- If you run `pants` in a repo that is not yet configured to use Pants, it will prompt you to set up a skeleton `pants.toml` that uses that latest stable version of Pants. You'll then need to edit that config file to add [initial configuration](doc:initial-configuration). -:::tip Upgrading Pants -The `pants` launcher binary will automatically install and use the Pants version specified in `pants.toml`, so upgrading Pants in a repo is as simple as editing `pants_version` in that file. +If you have difficulty installing Pants, see our [getting help](doc:getting-help) for community resources to help you resolve your issue. -To upgrade the `pants` launcher binary itself, run - -``` -SCIE_BOOT=update pants -``` - -::: +> 👍 Upgrading Pants +> +> The `pants` launcher binary will automatically install and use the Pants version specified in `pants.toml`, so upgrading Pants in a repo is as simple as editing `pants_version` in that file. +> +> To upgrade the `pants` launcher binary itself, run +> +> ``` +> SCIE_BOOT=update pants +> ``` ## Running Pants from unreleased builds -To use an unreleased build of Pants from the [pantsbuild/pants](https://github.com/pantsbuild/pants) main branch, locate the main branch SHA, set `PANTS_SHA=\` in the environment, and run `pants` as usual: +To use an unreleased build of Pants from the [pantsbuild/pants](https://github.com/pantsbuild/pants) main branch, locate the main branch SHA, set `PANTS_SHA=` in the environment, and run `pants` as usual: ``` PANTS_SHA=8553e8cbc5a1d9da3f84dcfc5e7bf3139847fb5f pants --version ``` -If a particular SHA does not have built wheels, you can either wait for [the next release from the relevant branch](../../contributions/releases/release-strategy.mdx), ping a maintainer [in Slack](/community/getting-help), or file a Github issue mentioning the SHA that you would like to test. +If a particular SHA does not have built wheels, you can either wait for [the next release from the relevant branch](doc:release-strategy), ping a maintainer [in Slack](doc:getting-help), or file a Github issue mentioning the SHA that you would like to test. ## Running Pants from sources -See [here](../../contributions/development/running-pants-from-sources.mdx) for instructions on how to run Pants directly from its [sources](https://github.com/pantsbuild/pants). +See [here](doc:running-pants-from-sources) for instructions on how to run Pants directly from its [sources](https://github.com/pantsbuild/pants). This is useful when making changes directly to Pants, to see how those changes impact your repo. -:::caution The old `./pants` script -Before the creation of the `pants` launcher binary, the recommended way of installing Pants was to check a `./pants` launcher script into each repo. This script required an external Python interpreter, and was prone to errors and issues related to discovery and use of this interpreter. - -The `pants` launcher binary uses an embedded interpreter and does not rely on one being present on the system (although if your repo contains Python code then it naturally requires a Python interpreter). - -We strongly recommend removing the `./pants` script from your repo and using the `pants` binary instead. You can keep a simple `./pants` script that delegates to `pants` to ease the transition. However, if you do need to continue to use the old installation method for some reason, it is described [here](./manual-installation.mdx). But please [let us know](/community/getting-help) so we can accommodate your use case in the launcher binary. -::: +> 🚧 The old `./pants` script +> +> Before the creation of the `pants` launcher binary, the recommended way of installing Pants was to check a `./pants` launcher script into each repo. This script required an external Python interpreter, and was prone to errors and issues related to discovery and use of this interpreter. +> +> The `pants` launcher binary uses an embedded interpreter and does not rely on one being present on the system (although if your repo contains Python code then it naturally requires a Python interpreter). +> +> We strongly recommend removing the `./pants` script from your repo and using the `pants` binary instead. You can keep a simple `./pants` script that delegates to `pants` to ease the transition. However, if you do need to continue to use the old installation method for some reason, it is described [here](doc:manual-installation). But please [let us know](doc:getting-help) so we can accommodate your use case in the launcher binary. ## The `pants` binary's implementation diff --git a/versioned_docs/version-2.18/docs/getting-started/manual-installation.mdx b/versioned_docs/version-2.18/docs/markdown/Getting Started/getting-started/manual-installation.md similarity index 69% rename from versioned_docs/version-2.18/docs/getting-started/manual-installation.mdx rename to versioned_docs/version-2.18/docs/markdown/Getting Started/getting-started/manual-installation.md index 9ebde3d98..d584e54c5 100644 --- a/versioned_docs/version-2.18/docs/getting-started/manual-installation.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Getting Started/getting-started/manual-installation.md @@ -1,13 +1,12 @@ --- - title: Manual installation - sidebar_position: 5 +title: "Manual installation" +slug: "manual-installation" +hidden: false +createdAt: "2022-07-12T00:00:00.000Z" --- ---- - -:::caution This page describes an old, deprecated method for installing Pants. -We highly recommend using the `pants` [launcher binary](./installing-pants.mdx) instead. -::: +> 🚧 This page describes an old, deprecated method for installing Pants. +> We highly recommend using the `pants` [launcher binary](doc:installation) instead. ## Manual installation @@ -35,13 +34,13 @@ Now, run this to bootstrap Pants and to verify the version it installs: ./pants --version ``` -:::note Add `./pants` to version control -You should check the `./pants` script into your repo so that all users can easily run Pants. -::: +> 📘 Add `./pants` to version control +> +> You should check the `./pants` script into your repo so that all users can easily run Pants. -:::tip Upgrading Pants -The `./pants` script will automatically install and use the Pants version specified in `pants.toml`, so upgrading Pants is as simple as editing `pants_version` in that file. -::: +> 👍 Upgrading Pants +> +> The `./pants` script will automatically install and use the Pants version specified in `pants.toml`, so upgrading Pants is as simple as editing `pants_version` in that file. ## Building Pants from sources diff --git a/versioned_docs/version-2.18/docs/markdown/Getting Started/getting-started/prerequisites.md b/versioned_docs/version-2.18/docs/markdown/Getting Started/getting-started/prerequisites.md new file mode 100644 index 000000000..db69127d1 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Getting Started/getting-started/prerequisites.md @@ -0,0 +1,62 @@ +--- +title: "Prerequisites" +slug: "prerequisites" +hidden: false +createdAt: "2021-10-17T18:21:38.905Z" +--- + +To run Pants, you need: + +- One of: + - Linux (x86_64 or ARM64) + - macOS (Intel or Apple Silicon, 10.15 Catalina or newer) + - Microsoft Windows 10 with WSL 2 +- Internet access (so that Pants can fully bootstrap itself) + +> 📘 Restricted Internet access? +> +> See [Restricted Internet access](doc:restricted-internet-access) for instructions. + +## System-specific notes + +### Linux + +> 🚧 Some Linux distributions may need additional packages +> +> On Ubuntu you may need to run: +> `apt install -y python3-dev python3-distutils`. + +> 🚧 Alpine Linux is not yet supported +> +> Pants for Linux is currently distributed as a manylinux wheel. Alpine Linux is not covered by manylinux (it uses MUSL libc while manylinux requires glibc), so at present Pants will not run on Alpine Linux. +> +> If you need to run Pants on Alpine, [let us know](doc:the-pants-community), so we can prioritize this work. Meanwhile, you can try [building Pants yourself](doc:manual-installation#building-pants-from-sources) on Alpine. + +> 🚧 Linux on ARM will be supported from Pants 2.16 +> +> Pants 2.16 will be distributed for Linux x86_64 and ARM64. Earlier versions are only distributed for Linux x86_64. +> +> If you need to run an earlier version of Pants on ARM, you can try [building Pants yourself](doc:manual-installation#building-pants-from-sources) on that platform. + +### macOS + +> 📘 Apple Silicon (M1/M2) support +> +> If running Pants inside a Docker container on an Apple Silicon machine you may need to set `--no-watch-filesystem --no-pantsd`. This is because notifications on native macOS files aren't mirrored over to the virtualized Linux system. +> +> We don't recommend setting this permanently, as these options are crucial for performance when iterating. Instead, you may want to look at the new [Environments](doc:environments) feature, that lets Pants run natively on macOS but selectively invoke processes in a Docker container. + +### Microsoft Windows + +> 📘 Windows 10 support +> +> Pants runs on Windows 10 under the Windows Subsystem for Linux (WSL): +> +> - Follow [these instructions](https://docs.microsoft.com/en-us/windows/wsl/install-win10) to install WSL 2. +> - Install a recent Linux distribution under WSL 2 (we have tested with Ubuntu 20.04 LTS). +> - Run `sudo apt install unzip python3-dev python3-distutils python3-venv gcc` in the distribution. +> - You can then run Pants commands in a Linux shell, or in a Windows shell by prefixing with `wsl `. +> +> Projects using Pants must be contained within the Linux virtual machine: +> +> - Navigating a Linux shell to a Windows directory via the `/mnt` directory, or using the `wsl` prefix with a Windows shell in a Windows directory, and executing Pants may result in unexpected behavior. diff --git a/versioned_docs/version-2.18/docs/markdown/Go/go-integrations.md b/versioned_docs/version-2.18/docs/markdown/Go/go-integrations.md new file mode 100644 index 000000000..83a6124b7 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Go/go-integrations.md @@ -0,0 +1,9 @@ +--- +title: "Integrations" +slug: "go-integrations" +excerpt: "Useful integrations for Golang." +hidden: false +createdAt: "2022-04-20T22:33:39.254Z" +--- + +- [Protobuf](doc:protobuf-go) diff --git a/versioned_docs/version-2.18/docs/go/integrations/protobuf.mdx b/versioned_docs/version-2.18/docs/markdown/Go/go-integrations/protobuf-go.md similarity index 60% rename from versioned_docs/version-2.18/docs/go/integrations/protobuf.mdx rename to versioned_docs/version-2.18/docs/markdown/Go/go-integrations/protobuf-go.md index 66d7a9d2f..6b2b914e1 100644 --- a/versioned_docs/version-2.18/docs/go/integrations/protobuf.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Go/go-integrations/protobuf-go.md @@ -1,35 +1,34 @@ --- - title: Protobuf - sidebar_position: 0 ---- - -How to generate Go from Protocol Buffers. - +title: "Protobuf" +slug: "protobuf-go" +excerpt: "How to generate Go from Protocol Buffers." +hidden: false +createdAt: "2022-04-20T22:34:22.819Z" --- When your Go code imports Protobuf generated files, Pants will detect the imports and run the Protoc compiler to generate then compile those files. -:::note Example repository -See [the codegen example repository](https://github.com/pantsbuild/example-codegen) for an example of using Protobuf to generate Go. -::: +> 📘 Example repository +> +> See [the codegen example repository](https://github.com/pantsbuild/example-codegen) for an example of using Protobuf to generate Go. -:::tip Benefit of Pants: generated files are always up-to-date -With Pants, there's no need to manually regenerate your code or check it into version control. Pants will ensure you are always using up-to-date files in your builds. +> 👍 Benefit of Pants: generated files are always up-to-date +> +> With Pants, there's no need to manually regenerate your code or check it into version control. Pants will ensure you are always using up-to-date files in your builds. +> +> Thanks to fine-grained caching, Pants will regenerate the minimum amount of code required when you do make changes. -Thanks to fine-grained caching, Pants will regenerate the minimum amount of code required when you do make changes. -::: - -:::caution `go mod tidy` will complain about missing modules -Because Pants does not save generated code to disk, `go mod tidy` will error that it cannot find the generated packages. - -One workaround is to run `pants export-codegen ::` to save the generated files. -::: +> 🚧 `go mod tidy` will complain about missing modules +> +> Because Pants does not save generated code to disk, `go mod tidy` will error that it cannot find the generated packages. +> +> One workaround is to run `pants export-codegen ::` to save the generated files. ## Step 1: Activate the Protobuf Go backend Add this to your `pants.toml`: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] backend_packages = [ "pants.backend.experimental.codegen.protobuf.go", @@ -37,11 +36,11 @@ backend_packages = [ ] ``` -This adds the new [`protobuf_source`](../../../reference/targets/protobuf_source.mdx) target, which you can confirm by running `pants help protobuf_source`. +This adds the new [`protobuf_source`](doc:reference-protobuf_source) target, which you can confirm by running `pants help protobuf_source`. -To reduce boilerplate, you can also use the [`protobuf_sources`](../../../reference/targets/protobuf_sources.mdx) target, which generates one `protobuf_source` target per file in the `sources` field. +To reduce boilerplate, you can also use the [`protobuf_sources`](doc:reference-protobuf_sources) target, which generates one `protobuf_source` target per file in the `sources` field. -```python title="BUILD" +```python BUILD protobuf_sources(name="protos", sources=["user.proto", "admin.proto"]) # Spiritually equivalent to: @@ -56,7 +55,7 @@ protobuf_sources(name="protos") The generated Go code requires `google.golang.org/protobuf` to compile. Add it to your `go.mod` with the version you'd like. Then run `go mod download all` to update your `go.sum`. -```text title="go.mod" +```text go.mod require google.golang.org/protobuf v1.27.1 ``` @@ -64,7 +63,7 @@ require google.golang.org/protobuf v1.27.1 Every Protobuf file that should work with Go must set `option go_package` with the name of its Go package. For example: -```text title="src/protos/example/v1/person.proto" +```text src/protos/example/v1/person.proto syntax = "proto3"; package simple_example.v1; @@ -76,7 +75,7 @@ Multiple Protobuf files can set the same `go_package` if their code should show ## Step 4: Generate `protobuf_sources` targets -Run [`pants tailor ::`](../../getting-started/initial-configuration.mdx#5-generate-build-files) for Pants to create a `protobuf_sources` target wherever you have `.proto` files: +Run [`pants tailor ::`](doc:initial-configuration#5-generate-build-files) for Pants to create a `protobuf_sources` target wherever you have `.proto` files: ``` ❯ pants tailor :: @@ -84,11 +83,11 @@ Created src/protos/BUILD: - Add protobuf_sources target protos ``` -Pants will use [dependency inference](../../using-pants/key-concepts/targets-and-build-files.mdx) for any `import` statements in your `.proto` files, which you can confirm by running `pants dependencies path/to/file.proto`. +Pants will use [dependency inference](doc:targets) for any `import` statements in your `.proto` files, which you can confirm by running `pants dependencies path/to/file.proto`. If you want gRPC code generated for all files in the folder, set `grpc=True`. -```python title="src/proto/example/BUILD" +```python src/proto/example/BUILD protobuf_sources( name="protos", grpc=True, @@ -97,7 +96,7 @@ protobuf_sources( If you only want gRPC generated for some files in the folder, you can use the `overrides` field: -```python title="src/proto/example/BUILD" +```python src/proto/example/BUILD protobuf_sources( name="protos", overrides={ @@ -112,7 +111,7 @@ protobuf_sources( Now, you can import the generated Go package in your Go code like normal, using whatever you set with `option go_package` from Step 3. -```go title="src/go/examples/proto_test.go" +```go src/go/examples/proto_test.go package examples import "testing" @@ -132,11 +131,11 @@ func TestGenerateUuid(t *testing.T) { Pants's dependency inference will detect Go imports of Protobuf packages, which you can confirm by running `pants dependencies path/to/file.go`. You can also run `pants check path/to/file.go` to confirm that everything compiles. -:::note Run `pants export-codegen ::` to inspect the files -`pants export-codegen ::` will run all relevant code generators and write the files to `dist/codegen` using the same paths used normally by Pants. - -You do not need to run this goal for codegen to work when using Pants; `export-codegen` is only for external consumption outside of Pants, e.g. to get `go mod tidy` working. -::: +> 📘 Run `pants export-codegen ::` to inspect the files +> +> `pants export-codegen ::` will run all relevant code generators and write the files to `dist/codegen` using the same paths used normally by Pants. +> +> You do not need to run this goal for codegen to work when using Pants; `export-codegen` is only for external consumption outside of Pants, e.g. to get `go mod tidy` working. ## Buf: format and lint Protobuf @@ -144,7 +143,7 @@ Pants integrates with the [`Buf`](https://buf.build/blog/introducing-buf-format) To activate, add this to `pants.toml`: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] backend_packages = [ "pants.backend.codegen.protobuf.lint.buf", diff --git a/versioned_docs/version-2.18/docs/go/go-overview.mdx b/versioned_docs/version-2.18/docs/markdown/Go/go.md similarity index 68% rename from versioned_docs/version-2.18/docs/go/go-overview.mdx rename to versioned_docs/version-2.18/docs/markdown/Go/go.md index 1165928e9..ddb107238 100644 --- a/versioned_docs/version-2.18/docs/go/go-overview.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Go/go.md @@ -1,38 +1,36 @@ --- - title: Go overview - sidebar_position: 0 +title: "Go overview" +slug: "go" +excerpt: "Pants's support for Golang." +hidden: false +createdAt: "2021-10-08T18:16:00.142Z" --- -Pants's support for Golang. - ---- - -:::caution Go support is beta stage -We are done implementing the initial core functionality for Pants's initial Go support ([tracked here](https://github.com/pantsbuild/pants/issues/17447)). However, there may be some edge cases we aren't yet handling. There are also some features that are not yet supported like vendoring, which we'd love your input on how to prioritize! - -Please share feedback for what you need to use Pants with your Go project by either [opening a GitHub issue](https://github.com/pantsbuild/pants/issues/new/choose) or [joining our Slack](/community/members)! -::: - -:::tip Why use Pants with Go? -Go's builtin tooling is already excellent! Many projects may be fine only using Go's tooling, although Pants offers some unique benefits: - -- A consistent interface for all languages/tools in your repository, such as being able to run `pants fmt lint check test package`. -- Integration with Git, such as running `pants --changed-since=HEAD test`. -- Caching, such as caching test results on a per-package basis. -- [Remote execution and remote caching](../using-pants/remote-caching-&-execution/index.mdx). -- [Advanced project introspection](../using-pants/project-introspection.mdx), such as finding all code that transitively depends on a certain package. - -::: - -:::note Example Go repository -Check out [github.com/pantsbuild/example-golang](https://github.com/pantsbuild/example-golang) to try out Pants's Go support. -::: +> 🚧 Go support is beta stage +> +> We are done implementing the initial core functionality for Pants's initial Go support ([tracked here](https://github.com/pantsbuild/pants/issues/17447)). However, there may be some edge cases we aren't yet handling. There are also some features that are not yet supported like vendoring, which we'd love your input on how to prioritize! +> +> Please share feedback for what you need to use Pants with your Go project by either [opening a GitHub issue](https://github.com/pantsbuild/pants/issues/new/choose) or [joining our Slack](doc:the-pants-community)! + +> 👍 Why use Pants with Go? +> +> Go's builtin tooling is already excellent! Many projects may be fine only using Go's tooling, although Pants offers some unique benefits: +> +> - A consistent interface for all languages/tools in your repository, such as being able to run `pants fmt lint check test package`. +> - Integration with Git, such as running `pants --changed-since=HEAD test`. +> - Caching, such as caching test results on a per-package basis. +> - [Remote execution and remote caching](doc:remote-caching-execution). +> - [Advanced project introspection](doc:project-introspection), such as finding all code that transitively depends on a certain package. + +> 📘 Example Go repository +> +> Check out [github.com/pantsbuild/example-golang](https://github.com/pantsbuild/example-golang) to try out Pants's Go support. ## Initial setup First, activate the Go backend in `pants.toml`: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] backend_packages = ["pants.backend.experimental.go"] ``` @@ -41,7 +39,7 @@ You may want to set the option `[golang].minimum_expected_version` to a value li You can also set `[golang].go_search_paths` to influence where Pants looks for Go, e.g. `["/usr/bin"]`. It defaults to your `PATH`. -Then run [`pants tailor ::`](../getting-started/initial-configuration.mdx#5-generate-build-files) to generate BUILD files. This will add a `go_mod` target where you have your `go.mod` file, a `go_package` target for every directory with a `.go` file, and a `go_binary` target in every directory where you have `package main`. +Then run [`pants tailor ::`](doc:initial-configuration#5-generate-build-files) to generate BUILD files. This will add a `go_mod` target where you have your `go.mod` file, a `go_package` target for every directory with a `.go` file, and a `go_binary` target in every directory where you have `package main`. ``` ❯ pants tailor :: @@ -79,26 +77,26 @@ pkg/deploy:deploy pkg/runner:runner ``` -:::caution `go.mod` and `go.sum` need to be up-to-date -Pants does not yet update your `go.mod` and `go.sum` for you; it only reads these files when downloading modules. Run `go mod download all` to make sure these files are correct. -::: +> 🚧 `go.mod` and `go.sum` need to be up-to-date +> +> Pants does not yet update your `go.mod` and `go.sum` for you; it only reads these files when downloading modules. Run `go mod download all` to make sure these files are correct. ### The `embed` directive and `resource` targets -To use the [`embed` directive](https://pkg.go.dev/embed), you must first teach Pants about the [files](../using-pants/assets-and-archives.mdx) with the `resource` / `resources` targets: +To use the [`embed` directive](https://pkg.go.dev/embed), you must first teach Pants about the [files](doc:assets) with the `resource` / `resources` targets: 1. Add a `resource` or `resources` target with the embedded files in the `source` / `sources` field, respectively. 2. Add that target to the `dependencies` field of the relevant `go_package` target. For example: -```python title="pkg/runner/BUILD" +```python pkg/runner/BUILD go_package(dependencies=[":embeds"]) resources(name="embeds", sources=["hello.txt"]) ``` -```go title="pkg/runner/lib.go" +```go pkg/runner/lib.go package runner import _ "embed" @@ -108,7 +106,7 @@ var s string print(s) ``` -```text title="pkg/runner/hello.txt" +```text pkg/runner/hello.txt Hello world! ``` @@ -135,7 +133,7 @@ You can also package your binaries (aka `go build`) by using `pants package`. `p By default, Pants names the binary with the scheme `path.to.directory/target_name`, e.g. `cmd.deploy/bin`. You can set the field `output_path` to use a different name: -```go title="cmd/deploy/BUILD" +```go cmd/deploy/BUILD go_binary(name="bin", output_path="deploy") ``` @@ -175,15 +173,15 @@ You can pass through arguments with `--`, e.g. `pants test pkg/deploy: -- -v -ru ### Loose files in tests (`testdata`) -To open files in your tests, use [`file` / `files` targets](../using-pants/assets-and-archives.mdx) targets and add them as `dependencies` to your `go_package`. +To open files in your tests, use [`file` / `files` targets](doc:assets) targets and add them as `dependencies` to your `go_package`. -```python title="pkg/runner/BUILD" +```python pkg/runner/BUILD go_package(dependencies=[":testdata"]) files(name="testdata", sources=["testdata/*"]) ``` -```go title="pkg/runner/foo_test.go" +```go pkg/runner/foo_test.go package foo import ( @@ -199,7 +197,7 @@ func TestFilesAvailable(t *testing.T) { } ``` -```text title="pkg/runner/testdata/f.txt" +```text pkg/runner/testdata/f.txt "Hello world!" ``` @@ -211,13 +209,13 @@ Pants can cancel tests that take too long, which is useful to prevent tests from To add a timeout, set the `test_timeout` field to an integer value of seconds, like this: -```python title="BUILD" +```python BUILD go_package(test_timeout=120) ``` You can also set a default value and a maximum value in `pants.toml`: -```toml title="pants.toml" +```toml pants.toml [test] timeout_default = 60 timeout_maximum = 600 @@ -247,7 +245,7 @@ Gofmt is activated by default when you activate the Go backend. Simply run `pant If you'd like to disable Gofmt, set this: -```go title="pants.toml" +```go pants.toml [gofmt] skip = true ``` @@ -263,7 +261,7 @@ To only run Gofmt, use `--fmt-only` and `--lint-only`: Pants can run [golangci-lint](https://golangci-lint.run/) on your Go source code. To activate, add this to your `pants.toml`: -```tomls title="pants.toml" +```tomls pants.toml [GLOBAL] backend_packages = [ "pants.backend.experimental.go", @@ -307,6 +305,6 @@ Only run golangci-lint with `--lint-only`: pants lint --only=golangci-lint :: ``` -:::tip Benefit of Pants: golangci-lint runs in parallel with other linters -Pants will attempt to run all activated linters and formatters at the same time for improved performance, including [Python](../python/python-overview/linters-and-formatters.mdx), Shell, Java, and Scala linters. You can see this through Pants's dynamic UI. -::: +> 👍 Benefit of Pants: golangci-lint runs in parallel with other linters +> +> Pants will attempt to run all activated linters and formatters at the same time for improved performance, including [Python](doc:python-linters-and-formatters), Shell, Java, and Scala linters. You can see this through Pants's dynamic UI. diff --git a/versioned_docs/version-2.18/docs/helm/deployments.mdx b/versioned_docs/version-2.18/docs/markdown/Helm/helm-deployments.md similarity index 74% rename from versioned_docs/version-2.18/docs/helm/deployments.mdx rename to versioned_docs/version-2.18/docs/markdown/Helm/helm-deployments.md index 19efa0d64..aeb4418e3 100644 --- a/versioned_docs/version-2.18/docs/helm/deployments.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Helm/helm-deployments.md @@ -1,15 +1,15 @@ --- - title: Deployments - sidebar_position: 1 +title: "Deployments" +slug: "helm-deployments" +hidden: false +createdAt: "2022-07-19T13:16:00.000Z" --- ---- - -:::caution Helm deployment support is in alpha stage -Pants has experimental support for managing deployments via the `experimental-deploy` goal. Helm deployments provides with a basic implementation of this goal. - -Please share feedback for what you need to use Pants with your Helm deployments by either [opening a GitHub issue](https://github.com/pantsbuild/pants/issues/new/choose) or [joining our Slack](/community/getting-help)! -::: +> 🚧 Helm deployment support is in alpha stage +> +> Pants has experimental support for managing deployments via the `experimental-deploy` goal. Helm deployments provides with a basic implementation of this goal. +> +> Please share feedback for what you need to use Pants with your Helm deployments by either [opening a GitHub issue](https://github.com/pantsbuild/pants/issues/new/choose) or [joining our Slack](doc:getting-help)! ## Motivation @@ -23,18 +23,18 @@ Pants solves this problem by providing with the ability to manage the configurat Helm deployments are defined using the `helm_deployment` target which has a series of fields that can be used to guarantee the reproducibility of the given deployment. `helm_deployment` targets need to be added by hand as there is no deterministic way of instrospecting your repository to find sources that are specific to Helm: -```python title="src/chart/BUILD" +```python src/chart/BUILD helm_chart() ``` -```yaml title="src/chart/Chart.yaml" +```yaml src/chart/Chart.yaml apiVersion: v2 description: Example Helm chart name: example version: 0.1.0 ``` -```python title="src/deployment/BUILD" +```python src/deployment/BUILD helm_deployment( name="dev", chart="//src/chart", @@ -54,25 +54,25 @@ helm_deployment( ) ``` -```yaml title="src/deployment/common-values.yaml" +```yaml src/deployment/common-values.yaml # Default values common to all deployments env: SERVICE_NAME: my-service ``` -```yaml title="src/deployment/dev-override.yaml" +```yaml src/deployment/dev-override.yaml # Specific values to the DEV environment env: ENV_ID: dev ``` -```yaml title="src/deployment/stage-override.yaml" +```yaml src/deployment/stage-override.yaml # Specific values to the STAGE environment env: ENV_ID: stage ``` -```yaml title="src/deployment/prod-override.yaml" +```yaml src/deployment/prod-override.yaml # Specific values to the PRODUCTION environment env: ENV_ID: prod @@ -93,31 +93,31 @@ A Helm deployment will in most cases deploy one or more Docker images into Kuber To illustrate this, let's imagine the following scenario: Let's say we have a first-party Docker image that we want to deploy into Kubernetes as a `Pod` resource kind. For achieving this we define the following workspace: -```python title="src/docker/BUILD" +```python src/docker/BUILD docker_image() ``` -```text title="src/docker/Dockerfile" +```text src/docker/Dockerfile FROM busybox:1.28 ``` -```python title="src/chart/BUILD" +```python src/chart/BUILD helm_chart() ``` -```yaml title="src/chart/Chart.yaml" +```yaml src/chart/Chart.yaml apiVersion: v2 description: Example Helm chart name: example version: 0.1.0 ``` -```yaml title="src/chart/values.yaml" +```yaml src/chart/values.yaml # Default image in case this chart is used by other tools after being published image: example.com/registry/my-app:latest ``` -```yaml title="src/chart/templates/pod.yaml" +```yaml src/chart/templates/pod.yaml --- apiVersion: v1 kind: Pod @@ -132,15 +132,15 @@ spec: image: {{ .Values.image }} ``` -```python title="src/deployment/BUILD" +```python src/deployment/BUILD # Overrides the `image` value for the chart using the target address for the first-party docker image. helm_deployment(chart="src/chart", values={"image": "src/docker:docker"}) ``` -:::note Docker image references VS Pants' target addresses -You should use typical Docker registry addresses in your Helm charts. Because Helm charts are distributable artifacts and may be used with tools other than Pants, you should create your charts such that when that chart is being used, all Docker image addresses are valid references to images in accessible Docker registries. As shown in the example, we recommend that you make the image address value configurable, especially for charts that deploy first-party Docker images. -Your chart resources can still use off-the-shelf images published with other means, and in those cases you will also be referencing the Docker image address. Usage of Pants' target addresses is intended for your own first-party images because the image reference of those is not known at the time we create the sources (they are computed later). -::: +> 📘 Docker image references VS Pants' target addresses +> +> You should use typical Docker registry addresses in your Helm charts. Because Helm charts are distributable artifacts and may be used with tools other than Pants, you should create your charts such that when that chart is being used, all Docker image addresses are valid references to images in accessible Docker registries. As shown in the example, we recommend that you make the image address value configurable, especially for charts that deploy first-party Docker images. +> Your chart resources can still use off-the-shelf images published with other means, and in those cases you will also be referencing the Docker image address. Usage of Pants' target addresses is intended for your own first-party images because the image reference of those is not known at the time we create the sources (they are computed later). With this setup we should be able to run `pants dependencies src/deployment` and Pants should give the following output: @@ -149,18 +149,18 @@ src/chart src/docker ``` -This should work with any kind of Kubernetes resource that leads to Docker image being deployed into Kubernetes, such as `Deployment`, `StatefulSet`, `ReplicaSet`, `CronJob`, etc. Please get in touch with us in case you find Pants was not capable to infer dependencies in any of your `helm_deployment` targets by either [opening a GitHub issue](https://github.com/pantsbuild/pants/issues/new/choose) or [joining our Slack](/community/getting-help). +This should work with any kind of Kubernetes resource that leads to Docker image being deployed into Kubernetes, such as `Deployment`, `StatefulSet`, `ReplicaSet`, `CronJob`, etc. Please get in touch with us in case you find Pants was not capable to infer dependencies in any of your `helm_deployment` targets by either [opening a GitHub issue](https://github.com/pantsbuild/pants/issues/new/choose) or [joining our Slack](doc:getting-help). -:::note How the Docker image reference is calculated during deployment? -Pants' will rely on the behaviour of the `docker_image` target when it comes down to generate the final image reference. Since a given image may have more than one valid image reference, **Pants will try to use the first one that is not tagged as `latest`**, falling back to `latest` if none could be found. -It's good practice to publish your Docker images using tags other than `latest` and Pants preferred behaviour is to choose those as this guarantees that the _version_ of the Docker image being deployed is the expected one. -::: +> 📘 How the Docker image reference is calculated during deployment? +> +> Pants' will rely on the behaviour of the `docker_image` target when it comes down to generate the final image reference. Since a given image may have more than one valid image reference, **Pants will try to use the first one that is not tagged as `latest`**, falling back to `latest` if none could be found. +> It's good practice to publish your Docker images using tags other than `latest` and Pants preferred behaviour is to choose those as this guarantees that the _version_ of the Docker image being deployed is the expected one. ## Value files It's very common that Helm deployments use a series of files providing with values that customise the given chart. When using deployments that may have more than one YAML file as the source of configuration values, the Helm backend needs to sort the file names in a way that is consistent across different machines, as the order in which those files are passed to the Helm command is relevant. The final order depends on the same order in which those files are specified in the `sources` field of the `helm_deployment` target. For example, given the following `BUILD` file: -```python title="src/deployment/BUILD" +```python src/deployment/BUILD helm_deployment(name="dev", chart="//src/chart", sources=["first.yaml", "second.yaml", "last.yaml"]) ``` @@ -179,7 +179,7 @@ src/deployment/last.yaml And also the following `helm_deployment` target definition: -```python title="src/deployment/BUILD" +```python src/deployment/BUILD helm_deployment( name="dev", chart="//src/chart", @@ -206,7 +206,7 @@ In addition to value files, you can also use inline values in your `helm_deploym Inline values are defined as a key-value dictionary, like in the following example: -```python title="src/deployment/BUILD" +```python src/deployment/BUILD helm_deployment( name="dev", chart="//src/chart", @@ -223,7 +223,7 @@ Pants has support for value interpolation in your BUILD files and you can make u Consider the following example: -```python title="src/deployment/BUILD" +```python src/deployment/BUILD helm_deployment( name="dev", chart="//src/chart", @@ -241,7 +241,7 @@ DEPLOY_TIME=$(date) pants experimental-deploy src/deployment:dev This isn't restricted to just the `values` field and it can be used in others like shown in the following example: -```python title="src/deployment/BUILD" +```python src/deployment/BUILD helm_deployment( name="dev", chart="//src/chart", @@ -252,10 +252,10 @@ helm_deployment( As shown above, now the `release` and `namespace` fields are calculated at deploy-time by Pants and, as in the previous example, they will be forwarded to the Helm chart accordingly. -:::caution Ensuring repeatable deployments -You should always favor using static values (or value files) VS dynamic values in your deployments. Using interpolated environment variables in your deployments can render your deployments non-repetable anymore if those values can affect the behaviour of the system deployed, or what gets deployed (i.e. Docker image addresses). -Be careful when chossing the values that are going to be calculated dynamically. -::: +> 🚧 Ensuring repeatable deployments +> +> You should always favor using static values (or value files) VS dynamic values in your deployments. Using interpolated environment variables in your deployments can render your deployments non-repetable anymore if those values can affect the behaviour of the system deployed, or what gets deployed (i.e. Docker image addresses). +> Be careful when chossing the values that are going to be calculated dynamically. ## Third party chart artifacts @@ -263,7 +263,7 @@ Previous examples on the usage of the `helm_deployment` target are all based on However, `helm_deployment`s are not limited to only first party charts, as it is also possible to declare a deployment having a dependency on a 3rd party Helm artifact instead. As an example, consider the following workspace layout: -```python title="3rdparty/helm/jetstack/BUILD" +```python 3rdparty/helm/jetstack/BUILD helm_artifact( name="cert-manager", artifact="cert-manager", @@ -272,7 +272,7 @@ helm_artifact( ) ``` -```python title="src/deploy/BUILD" +```python src/deploy/BUILD helm_deployment( name="main", chart="//3rdparty/helm/jetstack:cert-manager", @@ -290,18 +290,18 @@ User-defined [Helm post-renderers](https://helm.sh/docs/topics/advanced/#post-re As an example, let's show how we can use the tool [`vals`](https://github.com/variantdev/vals) as a post-renderer and replace all references to secret values stored in HashiCorp Vault by their actual values. The following example is composed of a Helm chart that creates a secret resource in Kubernetes and a Helm deployment that is configured to use `vals` as a post-renderer: -```python title="src/chart/BUILD" +```python src/chart/BUILD helm_chart() ``` -```yaml title="src/chart/Chart.yaml" +```yaml src/chart/Chart.yaml apiVersion: v2 description: Example Helm chart with vals name: example version: 0.1.0 ``` -```yaml title="src/chart/templates/secret.yaml" +```yaml src/chart/templates/secret.yaml apiVersion: v1 kind: Secret metadata: @@ -314,7 +314,7 @@ data: type: Opaque ``` -```python title="src/deploy/BUILD" +```python src/deploy/BUILD run_shell_command( name="vals", command="vals eval -f -", @@ -328,9 +328,9 @@ helm_deployment( In the previous example we define a `run_shell_command` target that will invoke the `vals eval` command (`vals` needs to be installed in the local machine) as part of the Helm post-rendering machinery, which will result on the `ref+vault` reference being replaced by the actual value stored in Vault at the given path. -:::note Using multiple post-renderers -If more than one target address is given in the `post_renderers` field, then they will be invoked in the same order given piping the output of one them into the input of the next one. -::: +> 📘 Using multiple post-renderers +> +> If more than one target address is given in the `post_renderers` field, then they will be invoked in the same order given piping the output of one them into the input of the next one. ## Deploying @@ -351,7 +351,7 @@ For example, to make an atomic deployment into a non-default Kubernetes context pants experimental-deploy src/deployments:prod -- --kube-context my-custom-kube-context --atomic ``` -:::note How does Pants authenticate with the Kubernetes cluster? -Short answer is: it doesn't. -Pants will invoke Helm under the hood with the appropriate arguments to only perform the deployment. Any authentication steps that may be needed to perform the given deployment have to be done before invoking the `experimental-deploy` goal. If you are planning to run the deployment procedure from your CI/CD pipelines, ensure that all necessary preliminary steps (including authentication with the cluster) are done before the one that triggers the deployment. -::: +> 📘 How does Pants authenticate with the Kubernetes cluster? +> +> Short answer is: it doesn't. +> Pants will invoke Helm under the hood with the appropriate arguments to only perform the deployment. Any authentication steps that may be needed to perform the given deployment have to be done before invoking the `experimental-deploy` goal. If you are planning to run the deployment procedure from your CI/CD pipelines, ensure that all necessary preliminary steps (including authentication with the cluster) are done before the one that triggers the deployment. diff --git a/versioned_docs/version-2.18/docs/helm/kubeconform.mdx b/versioned_docs/version-2.18/docs/markdown/Helm/helm-kubeconform.md similarity index 60% rename from versioned_docs/version-2.18/docs/helm/kubeconform.mdx rename to versioned_docs/version-2.18/docs/markdown/Helm/helm-kubeconform.md index 89e929375..d57e36d00 100644 --- a/versioned_docs/version-2.18/docs/helm/kubeconform.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Helm/helm-kubeconform.md @@ -1,8 +1,8 @@ --- - title: Kubeconform - sidebar_position: 999 ---- - +title: "Kubeconform" +slug: "helm-kubeconform" +hidden: false +createdAt: "2023-07-07T10:32:00.000Z" --- ## Overview @@ -11,7 +11,7 @@ The Helm backend has opt-in support for using [Kubeconform](https://github.com/y To enable the usage of Kubeconform, first we need to activate the relevant backend in `pants.toml`: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] backend_packages = [ ... @@ -22,9 +22,9 @@ backend_packages = [ This will enable the `kubeconform` subsystem in our workspace and enrich our `helm_chart` and `helm_deployment` with common fields that can be used to fine tune Kubeconform's behaviour in each of our targets. -:::note Extra documentation on `kubeconform` -Enabling the backend will add the `kubeconform` subsystem in our workspace and enrich our `helm_chart` and `helm_deployment` with common fields that can be used to fine tune Kubeconform's behaviour in each of our targets. Please run `pants help kubeconform` as well as `pants help helm_chart`/`pants help helm_deployment` after enabling the backend to consult the different configuration settings. -::: +> 📘 Extra documentation on `kubeconform` +> +> Enabling the backend will add the `kubeconform` subsystem in our workspace and enrich our `helm_chart` and `helm_deployment` with common fields that can be used to fine tune Kubeconform's behaviour in each of our targets. Please run `pants help kubeconform` as well as `pants help helm_chart`/`pants help helm_deployment` after enabling the backend to consult the different configuration settings. ## Validating charts and deployments @@ -40,7 +40,7 @@ For `helm_deployment` targets, the referenced chart will be rendered using the d You can use the `skip_kubeconform` field in both `helm_chart` or `helm_deployment` to prevent running it against a given target in case you consider it to be a redundant check. -:::caution Skipping check on publishable charts -On a workspace that contains both `helm_deployment` and `helm_chart` targets is easy to consider that checking the charts is a redundant task as doing it so on the deployment is effectively the same. This is a safe assumption as long as you don't publish your charts to be consumed elsewhere. For that specific case we recommend also checking the standalone chart as that gives assurance that the chart package itself is sound. -Regardless of that, running Kubeconform on a standalone chart is a pretty lightweight operation so unless you are facing extremelly long build times, better to not skip it. -::: +> 🚧 Skipping check on publishable charts +> +> On a workspace that contains both `helm_deployment` and `helm_chart` targets is easy to consider that checking the charts is a redundant task as doing it so on the deployment is effectively the same. This is a safe assumption as long as you don't publish your charts to be consumed elsewhere. For that specific case we recommend also checking the standalone chart as that gives assurance that the chart package itself is sound. +> Regardless of that, running Kubeconform on a standalone chart is a pretty lightweight operation so unless you are facing extremelly long build times, better to not skip it. diff --git a/versioned_docs/version-2.18/docs/helm/helm-overview.mdx b/versioned_docs/version-2.18/docs/markdown/Helm/helm-overview.md similarity index 81% rename from versioned_docs/version-2.18/docs/helm/helm-overview.mdx rename to versioned_docs/version-2.18/docs/markdown/Helm/helm-overview.md index bee03f869..f028ecd2e 100644 --- a/versioned_docs/version-2.18/docs/helm/helm-overview.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Helm/helm-overview.md @@ -1,21 +1,21 @@ --- - title: Helm Overview - sidebar_position: 0 +title: "Helm Overview" +slug: "helm-overview" +hidden: false +createdAt: "2022-05-13T16:06:59.247Z" --- ---- - -:::caution Helm support is in alpha stage -Pants has good support for the most common operations for managing Helm charts sources. However there may be use cases not covered yet. - -Please share feedback for what you need to use Pants with your Helm charts by either [opening a GitHub issue](https://github.com/pantsbuild/pants/issues/new/choose) or [joining our Slack](/community/getting-help)! -::: +> 🚧 Helm support is in alpha stage +> +> Pants has good support for the most common operations for managing Helm charts sources. However there may be use cases not covered yet. +> +> Please share feedback for what you need to use Pants with your Helm charts by either [opening a GitHub issue](https://github.com/pantsbuild/pants/issues/new/choose) or [joining our Slack](doc:getting-help)! # Initial setup First, activate the relevant backend in `pants.toml`: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] backend_packages = [ ... @@ -26,14 +26,14 @@ backend_packages = [ If you have more than one Helm chart in the same repository, organise them such that each of them lives in a separate folder with the chart definition file (`Chart.yaml`) at their root. The Helm backend is capable of auto-detecting the root folder of your Helm charts taking the chart definition file `Chart.yaml` as the reference for that root. -```yaml title="src/helm/foo/Chart.yaml" +```yaml src/helm/foo/Chart.yaml apiVersion: v2 description: Foo Helm chart name: foo version: 0.1.0 ``` -```yaml title="src/helm/bar/Chart.yaml" +```yaml src/helm/bar/Chart.yaml apiVersion: v2 description: Bar Helm chart name: bar @@ -44,18 +44,18 @@ version: 0.1.0 Helm charts are identified by the presence of a `Chart.yaml` or `Chart.yml` file, which contains relevant metadata about the chart like its name, version, dependencies, etc. To get started quickly you can create a simple `Chart.yaml` file in your sources folder: -```yaml title="Chart.yaml" +```yaml Chart.yaml apiVersion: v2 description: Example Helm chart name: example version: 0.1.0 ``` -:::note Using `helm create` -You can use the `helm create` command to create an initial skeleton for your chart but be sure you have properly configured your source root patterns (as shown in the previous section) since the `helm create` command will create a folder name with the name of your chart and place the sources inside. -::: +> 📘 Using `helm create` +> +> You can use the `helm create` command to create an initial skeleton for your chart but be sure you have properly configured your source root patterns (as shown in the previous section) since the `helm create` command will create a folder name with the name of your chart and place the sources inside. -Then run [`pants tailor ::`](../getting-started/initial-configuration.mdx#5-generate-build-files) to generate `BUILD` files. This will scan your source repository in search of `Chart.yaml` or `Chart.yml` files and create a `helm_chart` target for each of them. +Then run [`pants tailor ::`](doc:initial-configuration#5-generate-build-files) to generate `BUILD` files. This will scan your source repository in search of `Chart.yaml` or `Chart.yml` files and create a `helm_chart` target for each of them. ``` ❯ pants tailor :: @@ -86,13 +86,13 @@ pants lint :: The linting command is non-strict by default. If you want to enforce strict linting it can be either done globally in the `pants.toml` file, or in a per-chart target basis, using one of the two following ways: -```toml title="pants.toml" +```toml pants.toml [helm] # Enables strict linting globally lint_strict = true ``` -```python title="BUILD" +```python BUILD helm_chart(lint_strict=True) ``` @@ -119,11 +119,11 @@ Helm charts are versioned artifacts with the value of the `version` field in `Ch For example, a chart defined as such: -```python title="src/helm/example/BUILD" +```python src/helm/example/BUILD helm_chart() ``` -```yaml title="src/helm/example/Chart.yaml" +```yaml src/helm/example/Chart.yaml apiVersion: v2 description: Example Helm chart name: example @@ -132,11 +132,11 @@ version: 0.1.0 Will be understood to have version `0.1.0` (as read from the `Chart.yaml` file). However, if we specify a version in `helm_chart` as follows: -```python title="src/helm/example/BUILD" +```python src/helm/example/BUILD helm_chart(version="2.0.0") ``` -```yaml title="src/helm/example/Chart.yaml" +```yaml src/helm/example/Chart.yaml apiVersion: v2 description: Example Helm chart name: example @@ -147,7 +147,7 @@ Now the value in `Chart.yaml` will be ignored and the chart will be understood t Because Pants has support for interpolating values in the target fields, we can also make this version value more dynamic as follows: -```python title="src/helm/example/BUILD" +```python src/helm/example/BUILD helm_chart(version=env('HELM_CHART_VERSION')) ``` @@ -157,11 +157,11 @@ Now the version value for this chart will be what has been set as the value of t The Helm backend supports running Helm unit tests via the [Helm `unittest` plugin](https://github.com/quintush/helm-unittest). To run unit tests follow the instructions on how to use that plugin and then create a `BUILD` file in the same folder where your tests live with the following target: -```python title="src/helm/example/tests/BUILD" +```python src/helm/example/tests/BUILD helm_unittest_tests() ``` -```yaml title="src/helm/example/templates/env-configmap.yaml" +```yaml src/helm/example/templates/env-configmap.yaml apiVersion: v1 kind: ConfigMap metadata: @@ -172,7 +172,7 @@ data: {{- end }} ``` -```yaml title="src/helm/example/tests/env-configmap_test.yaml" +```yaml src/helm/example/tests/env-configmap_test.yaml suite: test env-configmap templates: - env-configmap.yaml @@ -205,13 +205,13 @@ pants test :: In some cases we may want our tests to have access to additional files which are not part of the chart. This can be achieved by setting a dependency between our unit test targets and a `resources` target as follows: -```python title="src/helm/example/tests/BUILD" +```python src/helm/example/tests/BUILD helm_unittest_tests(dependencies=[":extra-values"]) resources(name="extra-values", sources=["extra-values.yml"]) ``` -```yaml title="src/helm/example/templates/env-configmap.yaml" +```yaml src/helm/example/templates/env-configmap.yaml apiVersion: v1 kind: ConfigMap metadata: @@ -222,13 +222,13 @@ data: {{- end }} ``` -```yaml title="src/helm/example/tests/extra-values.yml" +```yaml src/helm/example/tests/extra-values.yml data: VAR1_NAME: var1Value var2_name: var2Value ``` -```yaml title="src/helm/example/tests/env-configmap_test.yaml" +```yaml src/helm/example/tests/env-configmap_test.yaml suite: test env-configmap templates: - env-configmap.yaml @@ -251,26 +251,26 @@ In this example, since Helm charts define their source root at the location of t However, in the following case, we need to reference the extra file relative to the chart root. Note the `../data/extra-values.yml` path in the test suite. -```toml title="pants.toml" +```toml pants.toml [source] root_patterns=["src/extra"] ``` -```python title="src/extra/data/BUILD" +```python src/extra/data/BUILD resources(name="extra-values", sources=["extra-values.yml"]) ``` -```yaml title="src/extra/data/extra-values.yml" +```yaml src/extra/data/extra-values.yml data: VAR1_NAME: var1Value var2_name: var2Value ``` -```python title="src/helm/example/tests/BUILD" +```python src/helm/example/tests/BUILD helm_unittest_tests(dependencies=["src/extra/data:extra-values"]) ``` -```yaml title="src/helm/example/templates/env-configmap.yaml" +```yaml src/helm/example/templates/env-configmap.yaml apiVersion: v1 kind: ConfigMap metadata: @@ -281,7 +281,7 @@ data: {{- end }} ``` -```yaml title="src/helm/example/tests/env-configmap_test.yaml" +```yaml src/helm/example/tests/env-configmap_test.yaml suite: test env-configmap templates: - env-configmap.yaml @@ -298,11 +298,11 @@ tests: value: "var2Value" ``` -:::caution Using `file`, `files` and `relocated_files` targets -Other file-centric targets are also supported, just be aware that `file` and `files` targets are -not affected by the source roots setting. When using `relocated_files`, the files will be relative -to the value set in the `dest` field. -::: +> 🚧 Using `file`, `files` and `relocated_files` targets +> +> Other file-centric targets are also supported, just be aware that `file` and `files` targets are +> not affected by the source roots setting. When using `relocated_files`, the files will be relative +> to the value set in the `dest` field. ### Snapshot testing @@ -324,13 +324,13 @@ Pants can cancel tests that take too long, which is useful to prevent tests from To add a timeout, set the `timeout` field to an integer value of seconds, like this: -```python title="BUILD" +```python BUILD helm_unittest_test(name="tests", source="env-configmap_test.yaml", timeout=120) ``` When you set `timeout` on the `helm_unittest_tests` target generator, the same timeout will apply to every generated `helm_unittest_test` target. Instead, you can use the `overrides` field: -```python title="BUILD" +```python BUILD helm_unittest_tests( name="tests", overrides={ @@ -342,7 +342,7 @@ helm_unittest_tests( You can also set a default value and a maximum value in `pants.toml`: -```toml title="pants.toml" +```toml pants.toml [test] timeout_default = 60 timeout_maximum = 600 @@ -362,7 +362,7 @@ The publishing is done with Pants' `publish` goal but first you will need to tel In a similar way as the `docker_image` target, a `helm_chart` target takes an optional `registries` field whose value is a list of registry endpoints (prefixed by the `oci://` protocol): -```python title="src/helm/example/BUILD" +```python src/helm/example/BUILD helm_chart( name="example", registries=[ @@ -377,7 +377,7 @@ If you have several charts that have to be published into the same registries, y You can also designate one or more registries as default and then charts that have no explicit `registries` field will use those default registries. -```toml title="pants.toml" +```toml pants.toml [helm.registries.company-registry1] address = "oci://reg1.company.internal" default = true @@ -386,7 +386,7 @@ default = true address = "oci://reg2.company.internal" ``` -```python title="src/example/BUILD" +```python src/example/BUILD helm_chart(name="demo") # This is equivalent to the previous target, @@ -410,7 +410,7 @@ helm_chart( When publishing charts into an OCI registry, you most likely will be interested on separating them from other kind of OCI assets (i.e. container images). For doing so you can set a `repository` field in the `helm_chart` target so the chart artifact will be uploaded to the given path: -```python title="src/helm/example/BUILD" +```python src/helm/example/BUILD helm_chart( name="example", repository="charts" @@ -421,7 +421,7 @@ With the previous setting, your chart would be published to your default registr You can also set a default global repository in `pants.toml` as in the following example: -```toml title="pants.toml" +```toml pants.toml [helm] default_registry_repository = "charts" ``` @@ -430,9 +430,9 @@ default_registry_repository = "charts" Helm charts can depend on other charts, whether first-party charts defined in the same repo, or third-party charts published in a registry. Pants uses this dependency information to know when work needs to be re-run. -:::note Chart.yaml API version -To benefit from Pants dependency management and inference in your Helm charts, you will need to use `apiVersion: v2` in your `Chart.yaml` file. -::: +> 📘 Chart.yaml API version +> +> To benefit from Pants dependency management and inference in your Helm charts, you will need to use `apiVersion: v2` in your `Chart.yaml` file. ## `Chart.yaml` dependencies @@ -440,18 +440,18 @@ Pants will automatically infer dependencies from the `Chart.yaml` file. For example, given two charts `foo` and `bar` and a dependency between them: -```yaml title="src/helm/foo/Chart.yaml" +```yaml src/helm/foo/Chart.yaml apiVersion: v2 description: Foo Helm chart name: foo version: 0.1.0 ``` -```python title="src/helm/foo/BUILD" +```python src/helm/foo/BUILD helm_chart() ``` -```yaml title="src/helm/bar/Chart.yaml" +```yaml src/helm/bar/Chart.yaml apiVersion: v2 description: Bar Helm chart name: bar @@ -460,7 +460,7 @@ dependencies: - name: foo ``` -```python title="src/helm/bar/BUILD" +```python src/helm/bar/BUILD helm_chart() ``` @@ -475,25 +475,25 @@ src/helm/foo If you prefer, you can let your BUILD files be the "source of truth" for dependencies, instead of specifying them in `Chart.yaml`: -```yaml title="src/helm/foo/Chart.yaml" +```yaml src/helm/foo/Chart.yaml apiVersion: v2 description: Foo Helm chart name: foo version: 0.1.0 ``` -```python title="src/helm/foo/BUILD" +```python src/helm/foo/BUILD helm_chart() ``` -```yaml title="src/helm/bar/Chart.yaml" +```yaml src/helm/bar/Chart.yaml apiVersion: v2 description: Bar Helm chart name: bar version: 0.1.0 ``` -```python title="src/helm/bar/BUILD" +```python src/helm/bar/BUILD helm_chart(dependencies=["//src/helm/foo"]) ``` @@ -503,7 +503,7 @@ In this case, the `pants dependencies` command will show the same result and, in Third party charts are provided to Pants using the `helm_artifact` target: -```yaml title="3rdparty/helm/BUILD" +```yaml 3rdparty/helm/BUILD helm_artifact( artifact="chart_name", version="0.0.1", @@ -518,7 +518,7 @@ When adding third party artifacts, the `artifact` and `version` fields are manda For **classic repositories**, provide with the full URL to the location of the chart archive, excluding the archive file itself: -```python title="3rdparty/helm/jetstack/BUILD" +```python 3rdparty/helm/jetstack/BUILD helm_artifact( artifact="cert-manager", version="v0.7.0", @@ -528,7 +528,7 @@ helm_artifact( For **OCI registries**, you must provide with the URL to the registry in the `registry` field and an optional `repository` field with the path inside that registry. -```python title="3rdparty/helm/example/BUILD" +```python 3rdparty/helm/example/BUILD helm_artifact( artifact="foo", version="1.0.0", diff --git a/versioned_docs/version-2.18/docs/introduction/how-does-pants-work.mdx b/versioned_docs/version-2.18/docs/markdown/Introduction/how-does-pants-work.md similarity index 79% rename from versioned_docs/version-2.18/docs/introduction/how-does-pants-work.mdx rename to versioned_docs/version-2.18/docs/markdown/Introduction/how-does-pants-work.md index 661fa57d0..1436634e0 100644 --- a/versioned_docs/version-2.18/docs/introduction/how-does-pants-work.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Introduction/how-does-pants-work.md @@ -1,8 +1,8 @@ --- - title: How does Pants work? - sidebar_position: 1 ---- - +title: "How does Pants work?" +slug: "how-does-pants-work" +hidden: false +createdAt: "2020-07-29T02:58:23.473Z" --- ## The Pants Engine @@ -19,9 +19,19 @@ The engine is designed so that fine-grained invalidation, concurrency, hermetici The engine can take full advantage of all the cores on your machine because relevant portions are implemented in Rust atop the [Tokio](https://tokio.rs/) framework. - - Pants running multiple linters in parallel. - +[block:image] +{ +"images": [ +{ +"image": [ +"https://files.readme.io/de72295-concurrency.gif", +"concurrency.gif" +], +"caption": "Pants running multiple linters in parallel." +} +] +} +[/block] This means, for example, that you can run all of your linters at the same time, and fully utilize your cores to run tests in parallel. @@ -29,10 +39,19 @@ This means, for example, that you can run all of your linters at the same time, The engine caches processes precisely based on their inputs, and sandboxes execution to minimize side-effects and to make builds consistent and repeatable. - - We run both tests, then add a syntax error to one test and rerun; the - unmodified test uses the cache and is isolated from the syntax error. - +[block:image] +{ +"images": [ +{ +"image": [ +"https://files.readme.io/603ef44-caching.gif", +"caching.gif" +], +"caption": "We run both tests, then add a syntax error to one test and rerun; the unmodified test uses the cache and is isolated from the syntax error." +} +] +} +[/block] ### Remote Execution @@ -54,7 +73,7 @@ Pants analyzes your code's import statements to determine files' dependencies au Older build tools like Bazel: -```python title="BUILD" +```python BUILD python_library( name="lib" deps=[ @@ -79,14 +98,14 @@ python_tests( Pants 2: -```python title="BUILD" +```python BUILD python_sources(name="lib") python_tests(name="tests") ``` ### A powerful plugin system -With the [Pants plugin API](../writing-plugins/plugins-overview.mdx), your custom rules will run with the same concurrency, caching, and remoting semantics as the core rules. +With the [Pants plugin API](doc:plugins-overview), your custom rules will run with the same concurrency, caching, and remoting semantics as the core rules. Some example plugins that users have written: diff --git a/versioned_docs/version-2.18/docs/markdown/Introduction/language-support.md b/versioned_docs/version-2.18/docs/markdown/Introduction/language-support.md new file mode 100644 index 000000000..23ccc4486 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Introduction/language-support.md @@ -0,0 +1,10 @@ +--- +title: "Language support" +slug: "language-support" +hidden: false +createdAt: "2021-09-22T06:29:10.108Z" +--- + +We're excited to have added support for several languages—including Go, Python, Shell, Java, and Scala. We're eager to add support for more languages, frameworks, and tools. + +See [here](page:language-support) for the latest information on current language support and our language development roadmap. diff --git a/versioned_docs/version-2.18/docs/markdown/Introduction/media.md b/versioned_docs/version-2.18/docs/markdown/Introduction/media.md new file mode 100644 index 000000000..6d56f8204 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Introduction/media.md @@ -0,0 +1,312 @@ +--- +title: "Resource hub" +slug: "media" +excerpt: "Learn more about Pants and related topics from these talks, posts and podcasts featuring Pants contributors and users." +hidden: false +createdAt: "2021-04-18T17:27:18.361Z" +--- + +## Case Studies + +### Tweag + +January 3, 2023 +"From adopting Pants, to generalizing our CI to multiple Python versions" + +> Describes why and how the maintainers of Bazel's Haskell rules chose to use Pants for a client's Python monorepo. Also covers some gotchas for newcomers. + +### Oxbotica + +November 4, 2022 +"Introducing Pants to Oxbotica" + + +> Self-driving vehicle company's successful journey to adopting Pants locally and in CI. + +### Coinbase + +September 1, 2022 +"Part 1: Building a Python ecosystem for efficient and reliable development" + + +> Describes how the company developed an efficient, reliable Python ecosystem using Pants, and solved the challenge of managing Python applications at a large scale at Coinbase. + +October 27, 2022 +"Part 2: Building a Python ecosystem for efficient and reliable development" + + +> Explains the technical details of the continuous integration/continuous delivery (CI/CD) infrastructure and dependency management of the company's Python ecosystem. + +### IBM Developer Blog + +August 24, 2022 +"Incrementally migrating a Python monorepo from Bazel to Pants" + + +> Watson Orders is an IBM Silicon Valley based technology development group targeting the development of world-class conversational AI. This posts walks through the process of migrating off Bazel, where they maintained 19,000 lines of BUILD file metadata, to Pants where that was slashed to 2,400 lines thanks to [dependency inference](doc:how-does-pants-work#dependency-inference). CI build time for PRs dropped from 10-12 minutes with Bazel to under 4 minutes with Pants. + +### Astranis Space Technologies + +August 12, 2022 +"Astranis Case Study: Wrangling Python In a Monorepo" + + +> "...We found it incredibly easy to hook in our existing remote caching systems to Pants, and added other nice features like running tailor in a check-only mode to highlight any inconsistencies in our repo. As a side benefit, Pants has helped us gain better insight into our repository by being able to easily scan for and report the transitive dependencies of modules. Having that insight has helped us plan out how to minimize the coupling of our modules..." + +### Twitter Engineering + +December 31, 2021 +"Advancing Jupyter Notebooks at Twitter - Part 1" + + +> About the intersection of Twitter data science, monorepos, Pants, Pex, and the [pants-jupyter-plugin](https://github.com/pantsbuild/pants-jupyter-plugin). + +### iManage + +October 2, 2021 +"Putting Pants On: One Thing We Did Right After 5 Years with Django" + + +## Tutorials + +### Doctrine.fr Engineering blog + +Nov 25, 2022 +"Industrialized Python code with Pylint plugins in Pants" + + +> What if you needed to put strict code convention rules through a linter and apply them with the help of Pants? + +### Suresh Joshi + +April 4, 2022 +"It's Pants Plugins All the Way Down" + + +> A follow-up to "Your first Pants plugin" detailing how to manage code quality via plugins, continuous integration checks, and pre-commit hooks. + +January 25, 2022 +"Your first Pants plugin" + + +> A newcomer's walk-through of the code and experience of writing one's first Pants plugin. + +### Gordon Cassie + +October 30, 2021 +"Getting Started With Pants and Django" + + +## Podcasts + +### The Real Python Podcast + +Episode 137: Start Using a Build System & Continuous Integration in Python +December 16, 2022 + +> What advantages can a build system provide for a Python developer? What new skills are required when working with a team of developers? Pants core maintainer and co-author Benjy Weinberger discusses Pants and getting started with continuous integration (CI). + +### Happy Path Programming Podcast + +Episode 72: Pants Makes Developers Happier and More Productive, with Benjy Weinberger +December 16, 2022 + + +### Humans of Devops + +Season 3, Episode 69: The Curse of Knowledge +March 7, 2022 + + +> Pants core maintainer Eric Arellano and Pants contributor Nick Grisafi discuss what Pants team has learned from philosophical concepts such as The Curse of Knowledge, Beginners Mind, and The Power of the Outsider. + +### Podcast.\_\_init\_\_ + +Episode 352: Simplify And Scale Your Software Development Cycles By Putting On Pants (Build Tool) +February 14, 2022 + + +> Pants core maintainers Stu Hood, Eric Arellano, and Andreas Stenius guest. + +### Software Engineering Daily + +Build Tools with Benjy Weinberger +January 17, 2022 + + +### Semaphore Uncut + +Episode 33: Monorepo and Building at Scale +April 13, 2021 + + +> Pants core maintainer Benjy Weinberger guests. + +### Angelneers + +Episode 28: Shifting Build Execution Paradigm +February 12, 2021 + + +> Pants core maintainer Benjy Weinberger guests. + +### Podcast.\_\_init\_\_ + +Episode 290: Pants Has Got Your Python Monorepo Covered +November 23, 2020 + + +> Pants core maintainers Stu Hood and Eric Arellano guest. + +## Posts & Articles + +### Inside Doctrine + +November 25, 2022 +"Industrialized python code with Pylint plugins in Pants" + + +### Dev.to + +July 25, 2022 +"Better CI/CD caching with new-gen build systems" + + +> How the cache solutions offered by CI providers work, why they are often of limited benefit, and how Pants supports a much more effective caching paradigm. + +### Software Development Times + +January 18, 2022 +"The monorepo approach to code management" + + +> "If you’re responsible for your organization’s codebase architecture, then at some point you have to make some emphatic choices about how to manage growth in a scalable way..." + +### Semaphore Blog + +June 9, 2021 +"Building Python Projects at Scale with Pants" + + +### Towards Data Science + +Sept 3, 2020 +"Building a monorepo for Data Science with Pants Build" + + +## Talks + +### AWS Community Day Bay Area 2022 + +#### When Projects Grow: CI/CD at scale + +September 9, 2022 + + +> Pants maintainer Josh Reed gives a talk about the challenges about running CI on a large monolith codebase, and mentions Pants as part of the ensemble of soultions to help wrangle the complexity that comes with scale. + +### Pycon 2022 + +#### "Hermetic Environments in Pantsbuild" aka "Fast and Reproducible Tests, Packaging, and Deploys with Pantsbuild" + +April 24, 2022 + + + +> Pants maintainer Chris Neugebauer gives a deep dive into the sandboxing model used by Pants, the priorities driving its design, and the pros and cons. + +#### [LIGHTNING TALK] "Stop Running Your Tests" + +April 23, 2022 + + +> Chris Neugebauer gives a swift and cheeky introduction to Pants. + +### EuroPython 2021 + +#### "Python monorepos: what, why and how" + +July 30, 2021 + + + +> A discussion of the advantages of monorepos for Python codebases, and the kinds of tooling and processes we can use to make working in a Python monorepo effective. + +### Build Meetup 2021 + +#### "Faster Incremental Builds with Speculation" + +June 24, 2021 + + +### Djangocon Europe 2021 + +#### "Managing Multiple Django Services in a Single Repo" + +June 3, 2021 + + + +### Pyninsula Meetup + +#### "Effective Python Monorepos with the Pants Build System" + +May 25, 2021 + (starts at timestamp 20:25) + +### Pycon 2021 + +#### "Creating Extensible Workflows With Off-Label Use of Python" + +May 14, 2021 + + + +> A dive into how Pants 2 benefits from making unconventional use of certain Python 3 features. + +#### "Cuándo Usar Extensiones Nativas en Rust: Rendimiento Accesible y Seguro" + +May 14, 2021 + + + +> Cuando hay problemas de rendimiento, las extensiones nativas de Python se empoderan para mejorar el rendimiento del "critical path", y también seguir usando Python y evitar una reinscripción costosa. + +### Pycon Israel 2021 + +#### "Python Monorepos: What, Why, and How" + +May 3, 2021 + + + +### SF Python Meetup + +#### "How the Pants Build System Leverages Python 3 Features" + +May 13, 2020 + + + +## YouTube + +### Pants Build project's official channel + +Home: +Pants Build 2 Tour: + +## Repositories + +### Example: Python with Pants and PEX + +"A running example of the Pants Build system and Python packaging with PEX." + + +### Example: Pylint custom linter rules for a Python project using Pants + +"A ready-to-use example of a repository that contains a Python project and Pylint custom linter rules" + + +> 📘 Suggest a Resource +> +> Got more Pants-related content such as talks, case studies, interviews, tutorials, etc to include on this page? We invite you to suggest adding it. Just click _Suggest Edits_ at the top right of the page, or [let us know](doc:getting-help). diff --git a/versioned_docs/version-2.18/docs/markdown/Introduction/news-room.md b/versioned_docs/version-2.18/docs/markdown/Introduction/news-room.md new file mode 100644 index 000000000..4ed4f6811 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Introduction/news-room.md @@ -0,0 +1,22 @@ +--- +title: "News room" +slug: "news-room" +hidden: false +createdAt: "2021-12-10T19:04:25.950Z" +--- + +## Press + +- **InfoWorld**, Matthew Tyson, "_[A brief intro to the Pants build system](https://www.infoworld.com/article/3650508/a-brief-intro-to-the-pants-build-system.html)_," February 17,2022 + +- **IT Technology Series**, "_[New Preview Release Version of Pants Adds Support for Java, Scala, and Go](https://itechnologyseries.com/security/toolchain-releases-significant-update-to-the-pants-open-source-build-system/)_," December 6, 2021 + +- **Software Development Times**, Katie Dee, "_[SD Times Open Source Project of the Week: Pants](https://sdtimes.com/softwaredev/sd-times-open-source-project-of-the-week-pants/)_," December 3, 2021 + +- **Computer Weekly**, Adrian Bridgwater, "_[Pants is not pants, open source build system is good](https://www.computerweekly.com/blog/Open-Source-Insider/Pants-is-not-pants-open-source-build-system-is-good)_," November 23, 2021 + +## Interviews + +- **TechStrong TV**, "_[Open-Source Build](https://digitalanarchist.com/videos/featured-guests/open-source-build-toolchain-labs)_," December 14, 2021. Interview with long-time Pants maintainer Benjy Weinberger, who explains why developers need a simpler open-source build system. + +- **InfoQ**, Sergio De Simone, "_[Pants Build System Adds Support for Java, Scala and Go](https://www.infoq.com/news/2021/11/pants-build-system-2/)_," November 20, 2021. Interview with long-time maintainer Benjy Weinberger. diff --git a/versioned_docs/version-2.18/docs/markdown/Introduction/sponsorship.md b/versioned_docs/version-2.18/docs/markdown/Introduction/sponsorship.md new file mode 100644 index 000000000..d664e7548 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Introduction/sponsorship.md @@ -0,0 +1,61 @@ +--- +title: "Sponsoring Pants" +slug: "sponsorship" +excerpt: "How to support the Pants project financially." +hidden: false +createdAt: "2023-07-05T18:06:00.000Z" +--- + +Pants is an open-source project that is not owned or controlled by any one company or organization. Engineers from a variety of organizations around the world [collaborate](doc:the-pants-community) to develop and maintain Pants, providing a world-class developer experience to teams such as yours. + +The Pants project does incur some expenses. These are primarily the cost of infrastructure required to build, test and release Pants and its accompanying binaries, for the various platforms it runs on, as well as the cost of managing Pants's network presence and hosting its documentation site. These expenses are managed by Pants Build, a California 501(c)(6) non-profit that was established for this purpose, and whose board and officers are active members of the Pants community. This non-profit's only source of revenue is sponsorship by individuals and companies that use Pants. + +We offer formal sponsorship tiers for companies, as well as individual sponsorships via [GitHub](https://github.com/sponsors/pantsbuild). + +We are very grateful to our sponsors, whose support allows us to continue to maintain and release Pants! + +# Corporate Sponsorship + +Corporate sponsorships are formal agreements with the Pants Build organization. Sponsors receive regular access to project maintainers, privileged support channels, and listings and acknowledgements on our website. + +To inquire about corporate sponsorship, please reach out to Benjy Weinberger on [Slack](doc:getting-help#slack). + +The corporate sponsorship tiers are: + +| | Platinum | Gold | Silver | +| ---------------------------------- | --------- | -------------- | ---------- | +| Fee, if paid anually | $5,000 | $3,000 | $1,500 | +| Fee, if paid monthly | $500 | $300 | $150 | +| Maximum number of sponsors | 2 | 5 | Unlimited | +| 60 min consultation calls | 1/quarter | 1/year | - | +| Privileged support channel | yes | yes | yes | +| Jobs board placement | Highest | Below Platinum | Below Gold | +| Acknowledgement in release notes | yes | - | - | +| Placement on website sponsors list | Highest | Below Platinum | Below Gold | +| Informational text on website | 300 words | 200 words | 100 words | + +Additional tiers are available by negotiation for contributions above $5,000, or for in-kind contributions of essential infrastructure or personnel by agreement with the Pants Build board. + +## Consultation calls with maintainers + +Platinum and Gold sponsors are entitled to a regular consultation with a Pants Maintainer. This may be in the form of a 1:1 discussion with a maintainer, or a tech talk with your engineering department. + +## Privileged support channel + +A selection of Pants Maintainers are willing to support in a confidential channel, including entering into a confidentiality agreement, allowing greater insight when troubleshooting issues with your Pants environment. + +## Jobs Board placement + +The Pants [jobs board](https://www.pantsbuild.org/page/jobs) is an online resource for posting job opportunities relevant to experienced build engineers. Postings here are visible to Pants Maintainers and Contributors, as well as our user base. Sponsors will receive more prominent placement on our jobs board. + +## Acknowledgement in release notes + +Platinum sponsors will be acknowledged as a financial contributor to each Pants release series made during their sponsorship term, in blog announcements and the release notes included with each distribution. + +## Acknowledgement on the Pants website + +The [Pants website](https://www.pantsbuild.org/) will include a sponsor section, displaying logos and informational text about each sponsor. Sponsors will be sorted according to tier. + +# Individual Sponsorship + +For individuals, or small teams for whom corporate sponsorship is not appropriate, we welcome sponsorship via [GitHub](https://github.com/sponsors/pantsbuild). Any amount helps! diff --git a/versioned_docs/version-2.18/docs/markdown/Introduction/testimonials.md b/versioned_docs/version-2.18/docs/markdown/Introduction/testimonials.md new file mode 100644 index 000000000..a1cb86bff --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Introduction/testimonials.md @@ -0,0 +1,142 @@ +--- +title: "Testimonials" +slug: "testimonials" +excerpt: "Pants is helping many software teams. Here's what some of them have to say." +hidden: false +createdAt: "2021-04-18T19:21:56.778Z" +--- + +
+
+

Gordon Cassie

+

Head of Engineering, Legal Transaction Management

+

iManage

+
+
+Over the last year at iManage Closing Folders, we transitioned a mature Django monolith with three accompanying microservices to Pants. Right off the bat, this transition forced us to untangle a convoluted web of dependencies that had emerged in our codebase over the six years it had been actively developed on. Soon after the migration we were able to get significant wins through codesharing between our monolith and microservices. + +Additionally, the safety and speed of our deployment process was drastically augmented by Pants ability to build fully self-contained .pex files. + +For day-to-day work, Pants has empowered developers to create clear separation of concerns between disparate parts of the application, eliminating unnecessary dependencies and improving stability and maintainability. It has also brought sanity to keeping linting, formatting, third party dependency versioning and python versions consistent across the codebase. + +Compared to other build tools, Pants is drastically more approachable for a small team of python developers, making it possible for an early-stage company to lay the groundwork for a maintainable codebase at an early stage. Perhaps most importantly, it is backed by a passionate team who are an absolute joy to work with. I would recommend Pants highly to any team! + +
+ +**See also Gordon's case study writeup, "[Putting Pants On: One Thing We Did Right After 5 Years with Django](https://g-cassie.github.io/2021/10/02/django-pants.html)"** + +
+ +
+
+

Alexey Tereshenkov

+

Software Engineer

+
+
+We have rolled out Pants across the organization now replacing Conda based workflows. About 75 engineers will be using Pants almost daily via the CI and sometimes locally for REPL and run goal. Pants does magic and the feedback has been hugely positive. I am extending the internal docs as the feedback comes, but nothing major. It's running in CI producing Debian packages and friends, it's pure gold! +
+
+ +
+
+

Suresh Joshi

+

Principal Consultant

+

Vicara Solutions

+
+
+

I just wanted to write a quick appreciation message for a) Pants itself, and b) all the plugin help I've received on the Slack community. +

I just finished re-writing the entire build/deployment process for a multi-year legacy project using Pants + some custom plugins, and I was able to gut a slapdash set of bash scripts, Dockerfiles, build containers, and who knows what else - in favour of a handful of BUILD files of like 15 lines of code each. +

I handed over the project today and this is essentially how it went: +

Me: "Okay, so to deploy, we have to generate the protobufs, cythonize our core libs, embed the protobufs and core libs in some of our sub-repos, Dockerize the API gateway and microservices, package our system services, and then deploy all of that to our server and then run e2e testing." +

Client: "Alright, this sounds painful, how do we do it?" +

Me: "pants deploy :myproject" [drops keyboard and walks away] +

+
+ +
+
+

Raúl Cuza

+

Software Engineer

+

Chartbeat

+
+
+Pants makes our monorepo keep its promises. In theory, monorepos let any developer make improvements that impact multiple products. Big impact means big responsibility. Pants standardizes the steps, eases discovery, and highlights dependencies, tests, and other projects that are in the improvement impact area. Pants is how we keep do more good than harm with each PR. Pants is also being developed by one of the most helpful open source communities I participate in. They teach and unblock. There can be no higher praise. +
+
+ +
+
+

Vic Putz

+

Head of Engineering

+

QC Ware Corp

+
+
+Moving from "serially building all docker containers with a build script" to "parallel builds using pants": we went from 28.8 minutes (1730 sec) to 611.88 seconds, about a 2.8x improvement! And there's one spectacularly long-build container that's responsible for the long tail; most were built much faster so if it weren't for that laggard this would look even better. + +And that's not even counting the impressive dependency checking, etc. that goes with a proper build system. Very pleased with this. Thanks for the fantastic support! + +
+
+ +
+
+

Cristian Matache

+

Software Engineer

+
+
+Python is the go-to language for most quants, but its flexibility is a double-edged sword. While seeing immediate results is great, it is quasi-impossible to tame the code as it grows large without several external tools: type checkers, linters, formatters, hermetic packers etc. I love Pants not only because it unifies all these in a few simple and swift commands but also because it adds hassle-free long-term value. Remember that "time is money", so save some for your future self and add Pants to your repos! +
+
+ +
+
+

Lukas Haberzettl

+

Senior Software Developer

+
+
+I must say, it’s a life saver. I was impressed with how easy it was to migrate our current projects to Pants. Documentation is well written and the example repos (example-python and example-plugin) are good starting points. Right now we use Pants to manage 5 of our projects and our development process has improved a lot, especially the CI pipeline. +
+
+ +
+
+

Josh Reed

+

Senior Site Reliability Engineer

+

Aiven

+
+
+Seriously, the level of transparency and communication by Pants team members gives me immense confidence in Pants as a tool, because I have confidence in the team behind it. +
+
+ +
+
+

Martim Lobao

+

Data Scientist

+

People Data Labs

+
+
+The quality of support we get from Pants open source community is absolutely phenomenal! i don’t think i’ve ever worked with a tool that has such incredible support and development speed. +
+
+ +
+
+

Robert Grimm

+

Senior Software Engineer

+

Enigma

+
+
+Thank you for answering my questions with so much helpful detail. I much appreciate that. This was actually the first non-employer Slack I ever joined and I'm deeply impressed by your welcoming culture here. I of course consider that another huge plus for the project. +
+
+ +
+
+

JP Erkelens

+

Software Engineer

+
+
+Pants has been instrumental in democratizing our organization's data platform. It's allowed us to define modern, reliable build processes that can be easily declared from a wide range of personas: from data analysts to software engineers to product managers. +
+
diff --git a/versioned_docs/version-2.18/docs/introduction/welcome-to-pants.mdx b/versioned_docs/version-2.18/docs/markdown/Introduction/welcome-to-pants.md similarity index 77% rename from versioned_docs/version-2.18/docs/introduction/welcome-to-pants.mdx rename to versioned_docs/version-2.18/docs/markdown/Introduction/welcome-to-pants.md index 6cf5f759f..3c9a4af0b 100644 --- a/versioned_docs/version-2.18/docs/introduction/welcome-to-pants.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Introduction/welcome-to-pants.md @@ -1,8 +1,8 @@ --- - title: Welcome to Pants! - sidebar_position: 0 ---- - +title: "Welcome to Pants!" +slug: "welcome-to-pants" +hidden: false +createdAt: "2020-02-21T17:44:28.054Z" --- # What is Pants? @@ -15,7 +15,7 @@ Pants installs, orchestrates and runs dozens of standard underlying tools - comp Pants is designed to be easy to adopt, use, and extend. It doesn't require you to refactor your codebase or to create and maintain massive amounts of build metadata. You invoke it directly on source files and directories, so it doesn't require users to adopt a new conceptual model. -Pants is currently focused on Python, Go, Java, Scala, Shell, and Docker, with more languages and frameworks coming soon. [The Pants community](/community/members) is friendly and helpful and welcomes involvement of anyone who is interested in creating modern software development tooling. +Pants is currently focused on Python, Go, Java, Scala, Shell, and Docker, with more languages and frameworks coming soon. [The Pants community](doc:the-pants-community) is friendly and helpful and welcomes involvement of anyone who is interested in creating modern software development tooling. # Who is Pants for? @@ -38,12 +38,12 @@ Pants is designed for fast, consistent, ergonomic builds. Some noteworthy featur # Which languages and frameworks does Pants support? -- Pants [ships](page:language-support) with support for [Python](../python/python-overview/index.mdx), [Go](../go/go-overview.mdx), [Java](../java-and-scala/java-and-scala-overview.mdx), [Scala](../java-and-scala/java-and-scala-overview.mdx) and [Shell](../shell/shell-overview.mdx). +- Pants [ships](page:language-support) with support for [Python](doc:python), [Go](doc:go), [Java](doc:jvm-overview), [Scala](doc:jvm-overview) and [Shell](doc:shell). - Pants supports a wide range of code generators (such as Thrift, Protobuf, Scrooge and Avro), linters and formatters, and it is easy to add support for new or custom ones -- Pants can create standalone binaries, [Docker images](../docker/docker-overview.mdx), AWS Lambdas and GCP Cloud Functions +- Pants can create standalone binaries, [Docker images](doc:docker), AWS Lambdas and GCP Cloud Functions -We're listening to the community for which languages, frameworks and tools we should support next, so let us know about your needs by [opening an issue](https://github.com/pantsbuild/pants/issues/new/choose) on GitHub or [chatting with us](/community/members) about it on the community Slack! -Pants was designed for extensibility, and we welcome [contributions](../contributions/contribution-overview.mdx)! +We're listening to the community for which languages, frameworks and tools we should support next, so let us know about your needs by [opening an issue](https://github.com/pantsbuild/pants/issues/new/choose) on GitHub or [chatting with us](doc:the-pants-community) about it on the community Slack! +Pants was designed for extensibility, and we welcome [contributions](doc:contributor-overview)! # How does Pants work? @@ -51,7 +51,7 @@ The core of Pants is its execution engine, which sequences and coordinates all t The engine is designed so that fine-grained invalidation, concurrency, hermeticity, caching, and remote execution happen naturally, without rule authors needing to think about it. -See [here](./how-does-pants-work.mdx) for more details about the Pants engine. +See [here](doc:how-does-pants-work) for more details about the Pants engine. # Is Pants similar to X? @@ -67,6 +67,6 @@ Pants is making engineering teams productive and happy at a range of companies a Pants is an open-source software project, developed at [github.com/pantsbuild/pants](https://github.com/pantsbuild/pants). Pants is released under the [Apache License 2.0](https://github.com/pantsbuild/pants/blob/master/LICENSE). -:::note Pants v2 vs. v1 -This documentation is for Pants v2, which is a new system built from the ground up, based on lessons from past work on Pants v1, as well valued feedback from the user community. See [\[https://v1.pantsbuild.org](https://v1.pantsbuild.org)](https://v1.pantsbuild.org/) for Pants v1 documentation. -::: +> 📘 Pants v2 vs. v1 +> +> This documentation is for Pants v2, which is a new system built from the ground up, based on lessons from past work on Pants v1, as well valued feedback from the user community. See [\](https://v1.pantsbuild.org/) for Pants v1 documentation. diff --git a/versioned_docs/version-2.18/docs/markdown/Introduction/who-uses-pants.md b/versioned_docs/version-2.18/docs/markdown/Introduction/who-uses-pants.md new file mode 100644 index 000000000..a3590464d --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Introduction/who-uses-pants.md @@ -0,0 +1,8 @@ +--- +title: "Who uses Pants" +slug: "who-uses-pants" +hidden: false +createdAt: "2021-09-22T06:30:23.710Z" +--- + +Pants is making engineering teams productive and happy at a range of companies and organizations. See a sample of them [here](page:who-uses-pants). diff --git a/versioned_docs/version-2.18/docs/java-and-scala/java-and-scala-overview.mdx b/versioned_docs/version-2.18/docs/markdown/Java and Scala/jvm-overview.md similarity index 73% rename from versioned_docs/version-2.18/docs/java-and-scala/java-and-scala-overview.mdx rename to versioned_docs/version-2.18/docs/markdown/Java and Scala/jvm-overview.md index e80c2365c..65c36f723 100644 --- a/versioned_docs/version-2.18/docs/java-and-scala/java-and-scala-overview.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Java and Scala/jvm-overview.md @@ -1,27 +1,26 @@ --- - title: Java and Scala overview - sidebar_position: 0 +title: "Java and Scala overview" +slug: "jvm-overview" +excerpt: "Pants's support for Java and Scala." +hidden: false +createdAt: "2022-01-10T20:58:57.450Z" --- -Pants's support for Java and Scala. +> 🚧 Java and Scala support is beta stage +> +> We are done implementing most functionality for Pants's Java and Scala support ([tracked here](https://github.com/pantsbuild/pants/labels/lang-jvm)). However, there may be use cases that we aren't yet handling. +> +> Please share feedback for what you need to use Pants with your JVM project by either [opening a GitHub issue](https://github.com/pantsbuild/pants/issues/new/choose) or [joining our Slack](doc:the-pants-community)! ---- - -:::caution Java and Scala support is beta stage -We are done implementing most functionality for Pants's Java and Scala support ([tracked here](https://github.com/pantsbuild/pants/labels/lang-jvm)). However, there may be use cases that we aren't yet handling. - -Please share feedback for what you need to use Pants with your JVM project by either [opening a GitHub issue](https://github.com/pantsbuild/pants/issues/new/choose) or [joining our Slack](/community/members)! -::: - -:::note Example Java and Scala repository -Check out [github.com/pantsbuild/example-jvm](https://github.com/pantsbuild/example-jvm) to try out Pants's Java and Scala support. -::: +> 📘 Example Java and Scala repository +> +> Check out [github.com/pantsbuild/example-jvm](https://github.com/pantsbuild/example-jvm) to try out Pants's Java and Scala support. ## Initial setup First, activate the relevant backends in `pants.toml`: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] backend_packages = [ # Each backend can be used independently, so there is no need to enable Scala if you @@ -31,7 +30,7 @@ backend_packages = [ ] ``` -Then run [`pants tailor ::`](../getting-started/initial-configuration.mdx#5-generate-build-files) to generate BUILD files. This will create `java_sources` and `scala_sources` targets in every directory containing library code, as well as test targets like `scalatest_tests` and `junit_tests` for filenames that look like tests. +Then run [`pants tailor ::`](doc:initial-configuration#5-generate-build-files) to generate BUILD files. This will create `java_sources` and `scala_sources` targets in every directory containing library code, as well as test targets like `scalatest_tests` and `junit_tests` for filenames that look like tests. ``` ❯ pants tailor :: @@ -62,31 +61,31 @@ Pants `2.11.x` adds support for choosing JDK and Scala versions per target in yo #### JDK -JDKs used by Pants are automatically fetched using [Coursier](https://get-coursier.io/), and are chosen using the [`[jvm].jdk` setting](../../reference/subsystems/jvm.mdx#section-jdk) to set a repository-wide default. +JDKs used by Pants are automatically fetched using [Coursier](https://get-coursier.io/), and are chosen using the [`[jvm].jdk` setting](doc:reference-jvm#section-jdk) to set a repository-wide default. -To override the default on a particular target, you can use the [`jdk=` field](../../reference/targets/java_source.mdx#codejdkcode). It can be useful to use the [`parametrize` builtin](../using-pants/key-concepts/targets-and-build-files.mdx#parametrizing-targets) with the `jdk=` field, particularly to run test targets under multiple JDKs. +To override the default on a particular target, you can use the [`jdk=` field](doc:reference-java_source#codejdkcode). It can be useful to use the [`parametrize` builtin](doc:targets#parametrizing-targets) with the `jdk=` field, particularly to run test targets under multiple JDKs. #### Scala version -The Scala version to use is configured on a resolve-by-resolve basis (see the "Third-party dependencies" section below) using the [`[scala].version_for_resolve` option](../../reference/subsystems/scala.mdx#section-version_for_resolve). The default Scala version for your repository will thus be whichever Scala version is configured for the "default" resolve, which is configured by the [`[jvm].default_resolve` option](reference-jvm#section-default-resolve). +The Scala version to use is configured on a resolve-by-resolve basis (see the "Third-party dependencies" section below) using the [`[scala].version_for_resolve` option](doc:reference-scala#section-version_for_resolve). The default Scala version for your repository will thus be whichever Scala version is configured for the "default" resolve, which is configured by the [`[jvm].default_resolve` option](reference-jvm#section-default-resolve). -To use multiple Scala versions in a repository, you would define multiple resolves, and then adjust the [`resolve` field](../../reference/targets/scalatest_test.mdx#coderesolvecode) of any targets which should be used with the non-`default_resolve` resolve. +To use multiple Scala versions in a repository, you would define multiple resolves, and then adjust the [`resolve` field](doc:reference-scalatest_test#coderesolvecode) of any targets which should be used with the non-`default_resolve` resolve. -To cross-build a set of Scala targets for multiple Scala versions, you can use the [`parametrize` builtin](../using-pants/key-concepts/targets-and-build-files.mdx#parametrizing-targets) with the `resolve=` field of the target and its dependencies. +To cross-build a set of Scala targets for multiple Scala versions, you can use the [`parametrize` builtin](doc:targets#parametrizing-targets) with the `resolve=` field of the target and its dependencies. -:::caution A jvm_artifact for scala-library artifact is explicitly required. -The Scala backend currently requires that a `jvm_artifact` target for the `org.scala-lang:scala-library` Scala runtime be present in any resolve used for Scala. If such a jvm_artifact is missing, Pants will error. Pants will automatically inject a dependency on the runtime. (This target may be automatically supplied by Pants in a future version, but that is not currently implemented.) -::: +> 🚧 A jvm_artifact for scala-library artifact is explicitly required. +> +> The Scala backend currently requires that a `jvm_artifact` target for the `org.scala-lang:scala-library` Scala runtime be present in any resolve used for Scala. If such a jvm_artifact is missing, Pants will error. Pants will automatically inject a dependency on the runtime. (This target may be automatically supplied by Pants in a future version, but that is not currently implemented.) ### First-party dependencies -In many cases, the dependencies of your first-party code are automatically inferred via [dependency inference](https://blog.pantsbuild.org/automatically-unlocking-concurrent-builds-and-fine-grained-caching-on-the-jvm-with-dependency-inference/) based on your `import` statements. If you do need to declare additional dependencies for any reason, you can do so using Pants' [syntax for declaring dependencies for targets](../using-pants/key-concepts/targets-and-build-files.mdx). +In many cases, the dependencies of your first-party code are automatically inferred via [dependency inference](https://blog.pantsbuild.org/automatically-unlocking-concurrent-builds-and-fine-grained-caching-on-the-jvm-with-dependency-inference/) based on your `import` statements. If you do need to declare additional dependencies for any reason, you can do so using Pants' [syntax for declaring dependencies for targets](doc:targets). ### Third-party dependencies and lockfiles -Third-party dependencies (i.e. those from repositories like [Maven central](https://search.maven.org/)) are also automatically inferred via dependency inference, but must first be declared once per repository as [`jvm_artifact` targets](../../reference/targets/jvm_artifact.mdx): +Third-party dependencies (i.e. those from repositories like [Maven central](https://search.maven.org/)) are also automatically inferred via dependency inference, but must first be declared once per repository as [`jvm_artifact` targets](doc:reference-jvm_artifact): -```python title="BUILD" +```python BUILD jvm_artifact( group="com.google.guava", artifact="guava", @@ -98,7 +97,7 @@ jvm_artifact( If your third party dependency is a Scala library, you should use the `scala_artifact` target instead like follows: -```python title="BUILD" +```python BUILD scala_artifact( group="org.typelevel", artifact="cats-core", @@ -109,38 +108,38 @@ scala_artifact( Pants will use the right artifact for the Scala version corresponding for the resolve specified (or the default one). -Pants requires use of a lockfile for thirdparty dependencies. After adding or editing `jvm_artifact` targets, you will need to update affected lockfiles by running `pants generate-lockfiles`. The default lockfile is located at `3rdparty/jvm/default.lock`, but it can be relocated (as well as additional resolves declared) via the [`[jvm].resolves` option](../../reference/subsystems/jvm.mdx#section-resolves). - -:::note Thirdparty symbols and the `packages` argument -To efficiently determine which symbols are provided by thirdparty code (i.e., without hitting the network in order to compute dependencies in the common case), Pants relies on a static mapping of which artifacts provide which symbols, and defaults to treating each `jvm_artifact` as providing symbols within its `group`. +Pants requires use of a lockfile for thirdparty dependencies. After adding or editing `jvm_artifact` targets, you will need to update affected lockfiles by running `pants generate-lockfiles`. The default lockfile is located at `3rdparty/jvm/default.lock`, but it can be relocated (as well as additional resolves declared) via the [`[jvm].resolves` option](doc:reference-jvm#section-resolves). -The `packages` argument allows you to override which symbols a `jvm_artifact` provides. See the [`jvm_artifact` docs](../../reference/targets/jvm_artifact.mdx#codepackagescode) for more information. -::: +> 📘 Thirdparty symbols and the `packages` argument +> +> To efficiently determine which symbols are provided by thirdparty code (i.e., without hitting the network in order to compute dependencies in the common case), Pants relies on a static mapping of which artifacts provide which symbols, and defaults to treating each `jvm_artifact` as providing symbols within its `group`. +> +> The `packages` argument allows you to override which symbols a `jvm_artifact` provides. See the [`jvm_artifact` docs](doc:reference-jvm_artifact#codepackagescode) for more information. ### `resource` targets To have your code [load files as "resources"](https://docs.oracle.com/javase/8/docs/technotes/guides/lang/resources.html): 1. Add a `resource` or `resources` target with the relevant files in the `source` / `sources` field, respectively. -2. Ensure that [an appropriate `source_root`](../using-pants/key-concepts/source-roots.mdx) is detected for the `resources` target, in order to trim the relevant prefix from the filename to align with the layout of your JVM packages. +2. Ensure that [an appropriate `source_root`](doc:source-roots) is detected for the `resources` target, in order to trim the relevant prefix from the filename to align with the layout of your JVM packages. 3. Add that target to the `dependencies` field of the relevant JVM target (usually the one that uses the JVM APIs to load the resource). For example: -```toml title="pants.toml" +```toml pants.toml [source] # In order for the resource to be loadable as `org/pantsbuild/example/lib/hello.txt`, # the `/src/jvm/ prefix needs to be stripped. root_patterns = ["/src/*"] ``` -```python title="src/jvm/org/pantsbuild/example/lib/BUILD" +```python src/jvm/org/pantsbuild/example/lib/BUILD java_sources(dependencies=[":hello"]) resources(name="hello", sources=["hello.txt"]) ``` -```java title="src/jvm/org/pantsbuild/example/lib/Loader.java" +```java src/jvm/org/pantsbuild/example/lib/Loader.java package org.pantsbuild.example.lib; import com.google.common.io.Resources; @@ -152,7 +151,7 @@ public class Loader { } ``` -```text title="src/jvm/org/pantsbuild/example/lib/hello.txt" +```text src/jvm/org/pantsbuild/example/lib/hello.txt Hello world! ``` @@ -199,7 +198,7 @@ Pants can cancel tests which take too long. This is useful to prevent tests from To add a timeout, set the `timeout` field to an integer value of seconds in any of the supported targets, like this: -```python title="BUILD" +```python BUILD java_junit_test(name="java_test", source="Test.java", timeout=120) scala_junit_test(name="scala_junit_test", source="Test.scala", timeout=100) scalatest_test(name="scalatest_test", source="Spec.scala", timeout=80) @@ -207,7 +206,7 @@ scalatest_test(name="scalatest_test", source="Spec.scala", timeout=80) When you set timeout on any of the target generators (i.e. `java_junit_tests`, `scalatest_tests`, etc.), the same timeout will apply to every generated corresponding target. -```python title="BUILD" +```python BUILD java_junit_tests( name="tests", overrides={ @@ -219,7 +218,7 @@ java_junit_tests( You can also set a default value and a maximum value in `pants.toml`: -```toml title="pants.toml" +```toml pants.toml [test] timeout_default = 60 timeout_maximum = 600 @@ -237,12 +236,12 @@ To add any arbitrary environment variable back to the process, you can either ad With both `[test].extra_env_vars` and the `extra_env_vars` field, you can either hardcode a value or leave off a value to "allowlist" it and read from the parent `pants` process's environment. -```toml title="pants.toml" +```toml pants.toml [test] extra_env_vars = ["VAR1", "VAR2=hardcoded_value"] ``` -```python title="project/BUILD" +```python project/BUILD junit_tests( name="tests", # Adds to all generated `junit_test` targets, @@ -307,18 +306,18 @@ After Setup (see below), and after IntelliJ has finished indexing your code, you 2. Versions after `2.13.0.dev2` support test running. 2. Add a `.gitignore` entry for the `.bsp` directory: -```Text title=".gitignore" +```Text .gitignore # This directory is not committed: each BSP user will create it independently. /.bsp/ ``` -```Text title="..." +```Text ... ``` 3. Add a "group" config file like the one below, adjusting the address specs and resolve name as appropriate. -```toml title="bsp-groups.toml" +```toml bsp-groups.toml # A "group" named `default`. # Multiple groups are supported: consider creating a group per project or team. [groups.default] @@ -330,18 +329,18 @@ addresses = [ resolve = "jvm:jvm-default" ``` -```Text title="..." +```Text ... ``` 4. Add to `pants.toml` an option to point at the BSP configuration file: -```toml title="pants.toml" +```toml pants.toml [experimental-bsp] groups_config_files = ["bsp-groups.toml"] ``` -```Text title="..." +```Text ... ``` diff --git a/versioned_docs/version-2.18/docs/java-and-scala/kotlin.mdx b/versioned_docs/version-2.18/docs/markdown/Java and Scala/kotlin.md similarity index 63% rename from versioned_docs/version-2.18/docs/java-and-scala/kotlin.mdx rename to versioned_docs/version-2.18/docs/markdown/Java and Scala/kotlin.md index 524f40981..b84320231 100644 --- a/versioned_docs/version-2.18/docs/java-and-scala/kotlin.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Java and Scala/kotlin.md @@ -1,31 +1,30 @@ --- - title: Kotlin - sidebar_position: 1 +title: "Kotlin" +slug: "kotlin" +excerpt: "Kotlin support for Pants." +hidden: false +createdAt: "2022-07-26T02:02:59.962Z" --- -Kotlin support for Pants. +> 🚧 Kotlin support is alpha stage +> +> Kotlin support in Pants is still under active development, but currently supports compilation and testing. It has been tested with Kotlin v1.6.20. +> +> Please share feedback for what you need to use Pants with your Kotlin project by either [opening a GitHub issue](https://github.com/pantsbuild/pants/issues/new/choose) or [joining our Slack](doc:the-pants-community)! ---- - -:::caution Kotlin support is alpha stage -Kotlin support in Pants is still under active development, but currently supports compilation and testing. It has been tested with Kotlin v1.6.20. - -Please share feedback for what you need to use Pants with your Kotlin project by either [opening a GitHub issue](https://github.com/pantsbuild/pants/issues/new/choose) or [joining our Slack](/community/members)! -::: +> 📘 Example Kotlin repository +> +> Check out [github.com/pantsbuild/example-kotlin](https://github.com/pantsbuild/example-kotlin) to try a sample Pants project with Kotlin support. -:::note Example Kotlin repository -Check out [github.com/pantsbuild/example-kotlin](https://github.com/pantsbuild/example-kotlin) to try a sample Pants project with Kotlin support. -::: - -## Overview +# Overview [Kotlin](https://kotlinlang.org/) is a programming language from Jetbrains that runs on the JVM and certain other platforms. The Kotlin backend in Pants supports compilation, testing, and linting of [Kotlin code for the JVM](https://kotlinlang.org/docs/server-overview.html). (The other Kotlin platforms including [Kotlin Multiplatform Mobile](https://kotlinlang.org/docs/multiplatform.html) and [Kotlin/JS](https://kotlinlang.org/docs/js-overview.html) are not currently supported, nor are there currently any plans to do so.) -## Initial Setup +# Initial Setup First, activate the Kotlin backend in `pants.toml` plus the `ktlint` backend if you would like to use [`ktlint`](https://ktlint.github.io/) for code formatting and linting: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] backend_packages = [ "pants.backend.experimental.kotlin", @@ -35,9 +34,9 @@ backend_packages = [ ] ``` -### Setting up targets +## Setting up targets -Run [`pants tailor ::`](../getting-started/initial-configuration.mdx#5-generate-build-files) to generate BUILD files. This will create `kotlin_sources` targets in every directory containing library code, as well as `kotlin_junit_tests` targets for filenames that look like tests. +Run [`pants tailor ::`](doc:initial-configuration#5-generate-build-files) to generate BUILD files. This will create `kotlin_sources` targets in every directory containing library code, as well as `kotlin_junit_tests` targets for filenames that look like tests. ``` ❯ pants tailor :: @@ -62,19 +61,19 @@ src/jvm/org/pantsbuild/example/lib:lib src/jvm/org/pantsbuild/example/lib/ExampleLib.java ``` -### Choosing JDK and Kotlin versions +## Choosing JDK and Kotlin versions Pants supports choosing the JDK and Kotlin versions per target in your repository. To reduce the amount of boilerplate required, however, most users set repository-wide defaults in `pants.toml`, and then only override them when necessary for particular targets. -#### JDK +### JDK -JDKs used by Pants are automatically fetched using [Coursier](https://get-coursier.io/), and are chosen using the [`[jvm].jdk` option](../../reference/subsystems/jvm.mdx#section-jdk) to set a repository-wide default. +JDKs used by Pants are automatically fetched using [Coursier](https://get-coursier.io/), and are chosen using the [`[jvm].jdk` option](doc:reference-jvm#section-jdk) to set a repository-wide default. -To override the default on a particular target, you can use the [`jdk=` field](../../reference/targets/kotlin_source.mdx#codejdkcode). It can be useful to use the [`parametrize` builtin](../using-pants/key-concepts/targets-and-build-files.mdx#parametrizing-targets) with the `jdk=` field, particularly to run test targets under multiple JDKs. +To override the default on a particular target, you can use the [`jdk=` field](doc:reference-kotlin_source#codejdkcode). It can be useful to use the [`parametrize` builtin](doc:targets#parametrizing-targets) with the `jdk=` field, particularly to run test targets under multiple JDKs. -#### Kotlin version +### Kotlin version -The Kotlin version to use is configured on a resolve-by-resolve basis (see the "Third-party dependencies" section below) using the [`[kotlin].version_for_resolve` option](../../reference/subsystems/kotlin.mdx#section-version_for_resolve). The default Kotlin version for your repository will thus be whichever Kotlin version is configured for the "default" resolve, which is configured by the [`[jvm].default_resolve` option](reference-jvm#section-default-resolve). +The Kotlin version to use is configured on a resolve-by-resolve basis (see the "Third-party dependencies" section below) using the [`[kotlin].version_for_resolve` option](doc:reference-kotlin#section-version_for_resolve). The default Kotlin version for your repository will thus be whichever Kotlin version is configured for the "default" resolve, which is configured by the [`[jvm].default_resolve` option](reference-jvm#section-default-resolve). Each resolve must contain the following jars for the Kotlin runtime with the version matching the version specified for the resolve in the `[kotlin].version_for_resolve` option: @@ -82,25 +81,25 @@ Each resolve must contain the following jars for the Kotlin runtime with the ver - `org.jetbrains.kotlin:kotlin-reflect` - `org.jetbrains.kotlin:kotlin-script-runtime` -To use multiple Kotlin versions in a repository, you would define multiple resolves, and then adjust the [`resolve` field](../../reference/targets/kotlin_junit_test.mdx#coderesolvecode) of any targets which should be used with the non-`default_resolve` resolve. +To use multiple Kotlin versions in a repository, you would define multiple resolves, and then adjust the [`resolve` field](doc:reference-kotlin_junit_test#coderesolvecode) of any targets which should be used with the non-`default_resolve` resolve. -To cross-build a set of Kotlin targets for multiple Kotlin versions, you can use the [`parametrize` builtin](../using-pants/key-concepts/targets-and-build-files.mdx#parametrizing-targets) with the `resolve=` field of the target and its dependencies. +To cross-build a set of Kotlin targets for multiple Kotlin versions, you can use the [`parametrize` builtin](doc:targets#parametrizing-targets) with the `resolve=` field of the target and its dependencies. -:::caution `jvm_artifact` targets for the Kotlin runtime must be explicitly defined. -The Kotlin backend currently requires that a `jvm_artifact` target for each Kotlin runtime jars be present in any resolve used for Kotlin. If any of the required `jvm_artifact` targets are missing, Pants will error. Pants will automatically inject a dependency on the runtime into Kotlin targets. (These targets may be automatically supplied by Pants in a future version, but that is not currently implemented.) -::: +> 🚧 `jvm_artifact` targets for the Kotlin runtime must be explicitly defined. +> +> The Kotlin backend currently requires that a `jvm_artifact` target for each Kotlin runtime jars be present in any resolve used for Kotlin. If any of the required `jvm_artifact` targets are missing, Pants will error. Pants will automatically inject a dependency on the runtime into Kotlin targets. (These targets may be automatically supplied by Pants in a future version, but that is not currently implemented.) -### Dependencies +## Dependencies -#### First-party dependencies +### First-party dependencies -In many cases, the dependencies of your first-party code are automatically inferred via [dependency inference](https://blog.pantsbuild.org/automatically-unlocking-concurrent-builds-and-fine-grained-caching-on-the-jvm-with-dependency-inference/) based on `import` statements in the code. If you do need to declare additional dependencies for any reason, you can do so using Pants' [syntax for declaring dependencies for targets](../using-pants/key-concepts/targets-and-build-files.mdx). +In many cases, the dependencies of your first-party code are automatically inferred via [dependency inference](https://blog.pantsbuild.org/automatically-unlocking-concurrent-builds-and-fine-grained-caching-on-the-jvm-with-dependency-inference/) based on `import` statements in the code. If you do need to declare additional dependencies for any reason, you can do so using Pants' [syntax for declaring dependencies for targets](doc:targets). -#### Third-party dependencies and lockfiles +### Third-party dependencies and lockfiles -Third-party dependencies (i.e. those from repositories like [Maven central](https://search.maven.org/)) are also automatically inferred via dependency inference, but must first be declared once per repository as [`jvm_artifact` targets](../../reference/targets/jvm_artifact.mdx): +Third-party dependencies (i.e. those from repositories like [Maven central](https://search.maven.org/)) are also automatically inferred via dependency inference, but must first be declared once per repository as [`jvm_artifact` targets](doc:reference-jvm_artifact): -```python title="BUILD" +```python BUILD jvm_artifact( group="com.google.guava", artifact="guava", @@ -110,38 +109,38 @@ jvm_artifact( ) ``` -Pants requires use of a lockfile for third-party dependencies. After adding or editing `jvm_artifact` targets, you will need to update affected lockfiles by running `pants generate-lockfiles`. The default lockfile is located at `3rdparty/jvm/default.lock`, but it can be relocated (as well as additional resolves declared) via the [`[jvm].resolves` option](../../reference/subsystems/jvm.mdx#section-resolves). - -:::note Thirdparty symbols and the `packages` argument -To efficiently determine which symbols are provided by third-party code (i.e., without hitting the network in order to compute dependencies in the common case), Pants relies on a static mapping of which artifacts provide which symbols, and defaults to treating each `jvm_artifact` as providing symbols within its `group`. +Pants requires use of a lockfile for third-party dependencies. After adding or editing `jvm_artifact` targets, you will need to update affected lockfiles by running `pants generate-lockfiles`. The default lockfile is located at `3rdparty/jvm/default.lock`, but it can be relocated (as well as additional resolves declared) via the [`[jvm].resolves` option](doc:reference-jvm#section-resolves). -The `packages` argument allows you to override which symbols a `jvm_artifact` provides. See the [`jvm_artifact` docs](../../reference/targets/jvm_artifact.mdx#codepackagescode) for more information. -::: +> 📘 Thirdparty symbols and the `packages` argument +> +> To efficiently determine which symbols are provided by third-party code (i.e., without hitting the network in order to compute dependencies in the common case), Pants relies on a static mapping of which artifacts provide which symbols, and defaults to treating each `jvm_artifact` as providing symbols within its `group`. +> +> The `packages` argument allows you to override which symbols a `jvm_artifact` provides. See the [`jvm_artifact` docs](doc:reference-jvm_artifact#codepackagescode) for more information. -#### `resource` targets +### `resource` targets To have your code [load files as "resources"](https://docs.oracle.com/javase/8/docs/technotes/guides/lang/resources.html): 1. Add a `resource` or `resources` target with the relevant files in the `source` / `sources` field, respectively. -2. Ensure that [an appropriate `source_root`](../using-pants/key-concepts/source-roots.mdx) is detected for the `resources` target, in order to trim the relevant prefix from the filename to align with the layout of your JVM packages. +2. Ensure that [an appropriate `source_root`](doc:source-roots) is detected for the `resources` target, in order to trim the relevant prefix from the filename to align with the layout of your JVM packages. 3. Add that target to the `dependencies` field of the relevant JVM target (usually the one that uses the JVM APIs to load the resource). For example: -```toml title="pants.toml" +```toml pants.toml [source] # In order for the resource to be loadable as `org/pantsbuild/example/lib/hello.txt`, # the `/src/jvm/ prefix needs to be stripped. root_patterns = ["/src/*"] ``` -```python title="src/jvm/org/pantsbuild/example/lib/BUILD" +```python src/jvm/org/pantsbuild/example/lib/BUILD kotlin_sources(dependencies=[":hello"]) resources(name="hello", sources=["hello.txt"]) ``` -```java title="src/jvm/org/pantsbuild/example/lib/Loader.java" +```java src/jvm/org/pantsbuild/example/lib/Loader.java package org.pantsbuild.example.lib import com.google.common.io.Resources @@ -151,13 +150,13 @@ fun load() { } ``` -```text title="src/jvm/org/pantsbuild/example/lib/hello.txt" +```text src/jvm/org/pantsbuild/example/lib/hello.txt Hello world! ``` -## Tasks +# Tasks -### Compile code +## Compile code To manually check that sources compile, use `pants check`: @@ -172,7 +171,7 @@ To manually check that sources compile, use `pants check`: ❯ pants check :: ``` -### Run tests +## Run tests To run tests, use `pants test`: @@ -189,7 +188,7 @@ To run tests, use `pants test`: The Kotlin backend currently supports JUnit tests specified using the `kotlin_junit_tests` target type. -#### Setting environment variables +### Setting environment variables Test runs are _hermetic_, meaning that they are stripped of the parent `pants` process's environment variables. This is important for reproducibility, and it also increases cache hits. @@ -197,12 +196,12 @@ To add any arbitrary environment variable back to the process, you can either ad With both `[test].extra_env_vars` and the `extra_env_vars` field, you can either hardcode a value or leave off a value to "allowlist" it and read from the parent `pants` process's environment. -```toml title="pants.toml" +```toml pants.toml [test] extra_env_vars = ["VAR1", "VAR2=hardcoded_value"] ``` -```python title="project/BUILD" +```python project/BUILD kotlin_junit_tests( name="tests", # Adds to all generated `kotlin_junit_test` targets, @@ -216,7 +215,7 @@ kotlin_junit_tests( ) ``` -### Lint and Format +## Lint and Format [`ktlint`](https://ktlint.github.io/) can be enabled by adding the `pants.backend.experimental.kotlin.lint.ktlint` backend to `backend_packages` in the `[GLOBAL]` section of `pants.toml`. @@ -233,7 +232,7 @@ Once enabled, `lint` and `fmt` will check and automatically reformat your code: ❯ pants --changed-since=HEAD fmt ``` -## Caveats +# Caveats The Kotlin backend is currently experimental since many features are not implemented including: diff --git a/versioned_docs/version-2.18/docs/markdown/Python/python-goals.md b/versioned_docs/version-2.18/docs/markdown/Python/python-goals.md new file mode 100644 index 000000000..0461a831b --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Python/python-goals.md @@ -0,0 +1,15 @@ +--- +title: "Goals" +slug: "python-goals" +excerpt: "Details on the Python-related goals implemented in the Python backend." +hidden: false +createdAt: "2020-03-16T16:19:59.347Z" +--- + +- [fmt](doc:python-fmt-goal): autoformat source code. +- [lint](doc:python-lint-goal): lint source code in check-only mode. +- [package](doc:python-package-goal): package your code into an asset, e.g. a wheel or a PEX file. +- [repl](doc:python-repl-goal): open a REPL (standard shell or IPython). +- [run](doc:python-run-goal): run an executable or script. +- [test](doc:python-test-goal): run tests with Pytest. +- [check](doc:python-check-goal): run MyPy. diff --git a/versioned_docs/version-2.18/docs/python/goals/check.mdx b/versioned_docs/version-2.18/docs/markdown/Python/python-goals/python-check-goal.md similarity index 59% rename from versioned_docs/version-2.18/docs/python/goals/check.mdx rename to versioned_docs/version-2.18/docs/markdown/Python/python-goals/python-check-goal.md index 88cf95ed8..d4476f149 100644 --- a/versioned_docs/version-2.18/docs/python/goals/check.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Python/python-goals/python-check-goal.md @@ -1,17 +1,16 @@ --- - title: check - sidebar_position: 0 ---- - -How to use MyPy. - +title: "check" +slug: "python-check-goal" +excerpt: "How to use MyPy." +hidden: false +createdAt: "2020-06-30T15:53:37.799Z" --- ## Activating MyPy To opt-in, add `pants.backend.python.typecheck.mypy` to `backend_packages` in your config file. -```toml title="pants.toml" +```toml pants.toml [GLOBAL] backend_packages.add = [ "pants.backend.python", @@ -26,13 +25,13 @@ $ pants check helloworld/util/lang.py $ pants check :: ``` -:::tip Benefit of Pants: typecheck Python 2-only and Python 3-only code at the same time -MyPy determines which Python version to use based on its `python_version` option. If that's undefined, MyPy uses the interpreter the tool is run with. Because you can only use one config file at a time with MyPy, you cannot normally say to use `2.7` for part of your codebase but `3.6` for the rest; you must choose a single version. - -Instead, Pants will group your targets based on their [interpreter constraints](../python-overview/interpreter-compatibility.mdx), and run all the Python 2 targets together and all the Python 3 targets together. It will automatically set `python_version` to the minimum compatible interpreter, such as a constraint like `["==2.7.*", ">3.6"]` using `2.7`. - -To turn this off, you can still set `python_version` in `mypy.ini` or `--python-version`/`--py2` in `--mypy-args`; Pants will respect the value you set. -::: +> 👍 Benefit of Pants: typecheck Python 2-only and Python 3-only code at the same time +> +> MyPy determines which Python version to use based on its `python_version` option. If that's undefined, MyPy uses the interpreter the tool is run with. Because you can only use one config file at a time with MyPy, you cannot normally say to use `2.7` for part of your codebase but `3.6` for the rest; you must choose a single version. +> +> Instead, Pants will group your targets based on their [interpreter constraints](doc:python-interpreter-compatibility), and run all the Python 2 targets together and all the Python 3 targets together. It will automatically set `python_version` to the minimum compatible interpreter, such as a constraint like `["==2.7.*", ">3.6"]` using `2.7`. +> +> To turn this off, you can still set `python_version` in `mypy.ini` or `--python-version`/`--py2` in `--mypy-args`; Pants will respect the value you set. ### Hook up a MyPy config file @@ -40,7 +39,7 @@ Pants will automatically include your config file if it's located at `mypy.ini`, Otherwise, you must set the option `[mypy].config` for Pants to include the config file in the process's sandbox and to instruct MyPy to load it. -```toml title="pants.toml" +```toml pants.toml [mypy] config = "build-support/mypy.ini" ``` @@ -49,7 +48,7 @@ config = "build-support/mypy.ini" Use the `install_from_resolve` option in the `[mypy]` scope: -```toml title="pants.toml" +```toml pants.toml [python.resolves] mypy = "3rdparty/python/mypy.lock" @@ -57,13 +56,13 @@ mypy = "3rdparty/python/mypy.lock" install_from_resolve = "mypy" ``` -See [Lockfiles for tools](../python-overview/lockfiles.mdx#lockfiles-for-tools). +See [Lockfiles for tools](doc:python-lockfiles#lockfiles-for-tools). ### Incrementally adopt MyPy with `skip_mypy=True` You can tell Pants to skip running MyPy on certain files by adding `skip_mypy=True` to the relevant targets. -```python title="project/BUILD" +```python project/BUILD # Skip MyPy for all the Python files in this directory # (both test and non-test files). python_sources(name="lib", skip_mypy=True) @@ -82,11 +81,11 @@ python_sources( When you run `pants check ::`, Pants will skip any files belonging to skipped targets. -:::caution MyPy may still try to check the skipped files! -The `skip_mypy` field only tells Pants not to provide the skipped files as direct input to MyPy. But MyPy, by default, will still try to check files that are [dependencies of the direct inputs](https://mypy.readthedocs.io/en/stable/running_mypy.html#following-imports). So if your skipped files are dependencies of unskipped files, they may still be checked. - -To change this behavior, use MyPy's [`--follow-imports` option](https://mypy.readthedocs.io/en/stable/command_line.html#cmdoption-mypy-follow-imports), typically by setting it to `silent`. You can do so either by adding it to the [`args` option](../../../reference/subsystems/mypy.mdx#section-args) in the `[mypy]` section of your Pants config file, or by setting it in [`mypy.ini`](https://mypy.readthedocs.io/en/stable/config_file.html). -::: +> 🚧 MyPy may still try to check the skipped files! +> +> The `skip_mypy` field only tells Pants not to provide the skipped files as direct input to MyPy. But MyPy, by default, will still try to check files that are [dependencies of the direct inputs](https://mypy.readthedocs.io/en/stable/running_mypy.html#following-imports). So if your skipped files are dependencies of unskipped files, they may still be checked. +> +> To change this behavior, use MyPy's [`--follow-imports` option](https://mypy.readthedocs.io/en/stable/command_line.html#cmdoption-mypy-follow-imports), typically by setting it to `silent`. You can do so either by adding it to the [`args` option](https://www.pantsbuild.org/docs/reference-mypy#section-args) in the `[mypy]` section of your Pants config file, or by setting it in [`mypy.ini`](https://mypy.readthedocs.io/en/stable/config_file.html). ### First-party type stubs (`.pyi` files) @@ -94,14 +93,14 @@ You can use [`.pyi` files](https://mypy.readthedocs.io/en/stable/stubs.html) for Pants's dependency inference knows to infer a dependency both on the implementation and the type stub. You can verify this by running `pants dependencies path/to/file.py`. -When writing stubs for third-party libraries, you may need the set up the `[source].root_patterns` option so that [source roots](../../using-pants/key-concepts/source-roots.mdx) are properly stripped. For example: +When writing stubs for third-party libraries, you may need the set up the `[source].root_patterns` option so that [source roots](doc:source-roots) are properly stripped. For example: -```toml title="pants.toml" +```toml pants.toml [source] root_patterns = ["mypy-stubs", "src/python"] ``` -```python title="mypy-stubs/colors.pyi" +```python mypy-stubs/colors.pyi # Because we set `mypy-stubs` as a source root, this file will be # stripped to be simply `colors.pyi`. MyPy will look at this file for # imports of the `colors` module. @@ -109,18 +108,18 @@ root_patterns = ["mypy-stubs", "src/python"] def red(s: str) -> str: ... ``` -```python title="mypy-stubs/BUILD" +```python mypy-stubs/BUILD python_sources(name="lib") ``` -```python title="src/python/project/app.py" +```python src/python/project/app.py from colors import red if __name__ == "__main__": print(red("I'm red!")) ``` -```python title="src/python/project/BUILD" +```python src/python/project/BUILD # Pants will infer a dependency both on the `ansicolors` requirement # and our type stub. python_sources(name="lib") @@ -128,17 +127,17 @@ python_sources(name="lib") ### Third-party type stubs -You can install third-party type stubs (for example, `types-requests`) like [normal Python requirements](../python-overview/third-party-dependencies.mdx). Pants will infer a dependency on both the type stub and the actual dependency, for example, both `types-requests` and `requests`, which you can confirm by running `pants dependencies path/to/f.py`. +You can install third-party type stubs (for example, `types-requests`) like [normal Python requirements](doc:python-third-party-dependencies). Pants will infer a dependency on both the type stub and the actual dependency, for example, both `types-requests` and `requests`, which you can confirm by running `pants dependencies path/to/f.py`. -If you install MyPy from a [custom lockfile](../python-overview/lockfiles.mdx#lockfiles-for-tools) you can also add type stub requirements to that lockfile. +If you install MyPy from a [custom lockfile](doc:python-lockfiles#lockfiles-for-tools) you can also add type stub requirements to that lockfile. This ensures that the stubs are only used when running MyPy and are not included when, for example, -[packaging a PEX](./package.mdx). +[packaging a PEX](doc:python-package-goal). ### Add a third-party plugin -Add any third-party MyPy plugins to a [custom lockfile](../python-overview/lockfiles.mdx#lockfiles-for-tools): +Add any third-party MyPy plugins to a [custom lockfile](doc:python-lockfiles#lockfiles-for-tools): -```toml title="pants.toml" +```toml pants.toml [python.resolves] mypy = "3rdparty/python/mypy-lock.txt" @@ -146,12 +145,12 @@ mypy = "3rdparty/python/mypy-lock.txt" install_from_resolve = "mypy" ``` -```Text title="3rdparty/python/mypy-requirements.txt" +```Text 3rdparty/python/mypy-requirements.txt mypy==1.3.0 pydantic==1.6.1 ``` -```python title="3rdparty/python/BUILD" +```python 3rdparty/python/BUILD python_requirements( name="mypy", source="mypy-requirements.txt", @@ -161,7 +160,7 @@ python_requirements( Then update your `mypy.ini` to load the plugin: -```text title="mypy.ini" +```text mypy.ini [mypy] plugins = pydantic.mypy @@ -171,7 +170,7 @@ For some plugins, such as `django-stubs`, you may need to always load certain so For example, to fully use the `django-stubs` plugin, your setup might look like this: -```toml title="pants.toml" +```toml pants.toml [source] root_patterns = ["src/python"] @@ -180,12 +179,12 @@ install_from_resolve = "mypy" source_plugins = ["src/python/project:django_settings"] ``` -```Text title="3rdparty/python/mypy-requirements.txt" +```Text 3rdparty/python/mypy-requirements.txt mypy==1.3.0 django-stubs==1.5.0 ``` -```python title="3rdparty/python/BUILD" +```python 3rdparty/python/BUILD python_requirements( name="mypy", source="mypy-requirements.txt", @@ -193,7 +192,7 @@ python_requirements( ) ``` -```text title="mypy.ini" +```text mypy.ini [mypy] plugins = mypy_django_plugin.main @@ -202,7 +201,7 @@ plugins = django_settings_module = project.django_settings ``` -```python title="src/python/project/django_settings.py" +```python src/python/project/django_settings.py from django.urls import URLPattern DEBUG = True @@ -211,50 +210,50 @@ SECRET_KEY = "not so secret" MY_SETTING = URLPattern(pattern="foo", callback=lambda: None) ``` -```python title="src/python/project/BUILD" +```python src/python/project/BUILD python_source(name="django_settings", source="django_settings.py") ``` -:::caution Importing type stubs -Type stubs specified in the MyPy custom lockfile are not visible to the `python-infer` subsystem, and cannot be referenced as explicit `dependencies`. If you `import` from a stubs module in your code, and it does not have a corresponding implementation `python_requirement` target that provides the imported module, you may see a warning/error depending on the value you've configured for `[python-infer].unowned_dependency_behavior`. Goals other than `check` will also raise `ImportError`s if the `import` isn't conditional on the value of `typing.TYPE_CHECKING`: - -```toml title="pants.toml" -[python-infer] -unowned_dependency_behavior = "warning" -[mypy] -install_from_resolve = "mypy" -``` - -```Text title="3rdparty/python/mypy-requirements.txt" -mypy==1.3.0 -mypy_boto3_ec2==1.26.136 -``` - -```python title="3rdparty/python/BUILD" -python_requirements( -name="mypy", -source="mypy-requirements.txt", -resolve="mypy", -) -``` - -```python title="src/example.py" -from typing import TYPE_CHECKING - -# Unsafe! Will fail outside of `check` -from mypy_boto3_ec2 import EC2Client - -if TYPE_CHECKING: -# Safe, but will be flagged as a warning -from mypy_boto3_ec2 import EC2ServiceResource -``` - -For these reasons, it's recommended to load any type-stub libraries that require explicit imports as part of your normal [third-party dependencies](../python-overview/third-party-dependencies.mdx). Alternatively, you can set `# pants: no-infer-dep` on the lines of type-stub imports "guarded" by a check of `if TYPE_CHECKING`. -::: - -:::note MyPy Protobuf support -Add `mypy_plugin = true` to the `[python-protobuf]` scope. See [Protobuf](../integrations/protobuf-and-grpc.mdx) for more information. -::: +> 🚧 Importing type stubs +> +> Type stubs specified in the MyPy custom lockfile are not visible to the `python-infer` subsystem, and cannot be referenced as explicit `dependencies`. If you `import` from a stubs module in your code, and it does not have a corresponding implementation `python_requirement` target that provides the imported module, you may see a warning/error depending on the value you've configured for `[python-infer].unowned_dependency_behavior`. Goals other than `check` will also raise `ImportError`s if the `import` isn't conditional on the value of `typing.TYPE_CHECKING`: +> +> ```toml pants.toml +> [python-infer] +> unowned_dependency_behavior = "warning" +> [mypy] +> install_from_resolve = "mypy" +> ``` +> +> ```Text 3rdparty/python/mypy-requirements.txt +> mypy==1.3.0 +> mypy_boto3_ec2==1.26.136 +> ``` +> +> ```python 3rdparty/python/BUILD +> python_requirements( +> name="mypy", +> source="mypy-requirements.txt", +> resolve="mypy", +> ) +> ``` +> +> ```python src/example.py +> from typing import TYPE_CHECKING +> +> # Unsafe! Will fail outside of `check` +> from mypy_boto3_ec2 import EC2Client +> +> if TYPE_CHECKING: +> # Safe, but will be flagged as a warning +> from mypy_boto3_ec2 import EC2ServiceResource +> ``` +> +> For these reasons, it's recommended to load any type-stub libraries that require explicit imports as part of your normal [third-party dependencies](doc:python-third-party-dependencies). Alternatively, you can set `# pants: no-infer-dep` on the lines of type-stub imports "guarded" by a check of `if TYPE_CHECKING`. + +> 📘 MyPy Protobuf support +> +> Add `mypy_plugin = true` to the `[python-protobuf]` scope. See [Protobuf](doc:protobuf-python) for more information. ### Add a first-party plugin @@ -266,21 +265,21 @@ Finally, set the option `source_plugins` in the `[mypy]` scope to include this t For example: -```toml title="pants.toml" +```toml pants.toml [mypy] source_plugins = ["pants-plugins/mypy_plugins:plugin"] ``` -```text title="mypy.ini" +```text mypy.ini plugins = mypy_plugins.change_return_type ``` -```python title="pants-plugins/mypy_plugins/BUILD" +```python pants-plugins/mypy_plugins/BUILD python_source(name="plugin", source="change_return_type.py") ``` -```python title="pants-plugins/mypy_plugins/change_return_type.py" +```python pants-plugins/mypy_plugins/change_return_type.py """A contrived plugin that changes the return type of any function ending in `__overriden_by_plugin` to return None.""" @@ -314,7 +313,7 @@ MyPy can generate [various report files](https://mypy.readthedocs.io/en/stable/c For Pants to properly preserve the reports, instruct MyPy to write to the `reports/` folder by updating its config file or `--mypy-args`. For example, in your pants.toml: -```toml title="pants.toml" +```toml pants.toml [mypy] args = ["--linecount-report=reports"] ``` @@ -340,4 +339,4 @@ When changing type hints code, you not only need to run over the changed files, $ pants --changed-since=HEAD --changed-dependents=transitive check ``` -See [Advanced target selection](../../using-pants/advanced-target-selection.mdx) for more information. +See [Advanced target selection](doc:advanced-target-selection) for more information. diff --git a/versioned_docs/version-2.18/docs/python/goals/fmt.mdx b/versioned_docs/version-2.18/docs/markdown/Python/python-goals/python-fmt-goal.md similarity index 55% rename from versioned_docs/version-2.18/docs/python/goals/fmt.mdx rename to versioned_docs/version-2.18/docs/markdown/Python/python-goals/python-fmt-goal.md index c3222605e..79fa59399 100644 --- a/versioned_docs/version-2.18/docs/python/goals/fmt.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Python/python-goals/python-fmt-goal.md @@ -1,13 +1,12 @@ --- - title: fmt - sidebar_position: 1 +title: "fmt" +slug: "python-fmt-goal" +excerpt: "Autoformat source code." +hidden: false +createdAt: "2020-03-16T18:36:31.694Z" --- -Autoformat source code. - ---- - -See [here](../python-overview/linters-and-formatters.mdx) for how to opt in to specific formatters, along with how to configure them: +See [here](doc:python-linters-and-formatters) for how to opt in to specific formatters, along with how to configure them: - Autoflake - Black diff --git a/versioned_docs/version-2.18/docs/markdown/Python/python-goals/python-lint-goal.md b/versioned_docs/version-2.18/docs/markdown/Python/python-goals/python-lint-goal.md new file mode 100644 index 000000000..373f4420b --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Python/python-goals/python-lint-goal.md @@ -0,0 +1,32 @@ +--- +title: "lint" +slug: "python-lint-goal" +excerpt: "Lint source code." +hidden: false +createdAt: "2020-03-16T16:19:55.704Z" +--- + +The `lint` goal runs both dedicated linters and any formatters in check-only mode: + +- Autoflake +- Bandit +- Black +- Docformatter +- Flake8 +- isort +- Pydocstyle +- Pylint +- Pyupgrade +- yapf + +See [here](doc:python-linters-and-formatters) for how to opt in to specific formatters and linters, along with how to configure them. + +> 👍 Benefit of Pants: runs linters in parallel +> +> Pants will run all activated linters at the same time for improved performance. As explained at [Python linters and formatters](doc:python-linters-and-formatters), Pants also uses some other techniques to improve concurrency, such as dynamically setting the `--jobs` option for linters that have it. + +> 👍 Benefit of Pants: lint Python 2-only and Python 3-only code at the same time +> +> Bandit, Flake8, and Pylint depend on which Python interpreter the tool is run with. Normally, if your project has some Python 2-only files and some Python 3-only files, you would not be able to run the linter in a single command because it would fail to parse your code. +> +> Instead, Pants will do the right thing when you run `pants lint ::`. Pants will group your targets based on their [interpreter constraints](doc:python-interpreter-compatibility), and run all the Python 2 targets together and all the Python 3 targets together. diff --git a/versioned_docs/version-2.18/docs/python/goals/package.mdx b/versioned_docs/version-2.18/docs/markdown/Python/python-goals/python-package-goal.md similarity index 62% rename from versioned_docs/version-2.18/docs/python/goals/package.mdx rename to versioned_docs/version-2.18/docs/markdown/Python/python-goals/python-package-goal.md index b0f92e8ce..cdc1b8a13 100644 --- a/versioned_docs/version-2.18/docs/python/goals/package.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Python/python-goals/python-package-goal.md @@ -1,10 +1,9 @@ --- - title: package - sidebar_position: 3 ---- - -Create a deployable artifact. - +title: "package" +slug: "python-package-goal" +excerpt: "Create a deployable artifact." +hidden: false +createdAt: "2020-03-16T16:19:56.574Z" --- The `package` goal creates an artifact that can be deployed or distributed. @@ -13,25 +12,25 @@ The exact type of artifact depends on the type of target the goal is invoked on. You can run `pants package ::` to build all artifacts in your project. Pants will filter to only the relevant targets. -:::tip Benefit of Pants: artifacts only include your true dependencies -Because Pants understands the dependencies of your code, and the dependencies of those dependencies, the generated artifact will only include the exact code needed for your package to work. This results in smaller, more focused packages. -::: +> 👍 Benefit of Pants: artifacts only include your true dependencies +> +> Because Pants understands the dependencies of your code, and the dependencies of those dependencies, the generated artifact will only include the exact code needed for your package to work. This results in smaller, more focused packages. -:::tip Benefit of Pants: easily write automated tests of your packaging pipeline -You can depend on a package target in a `python_test` / `python_tests` target through the `runtime_package_dependencies` field. Pants will run the equivalent of `pants package` beforehand and copy the built artifact into the test's chroot, allowing you to test things like that the artifact has the correct files present and that it's executable. +> 👍 Benefit of Pants: easily write automated tests of your packaging pipeline +> +> You can depend on a package target in a `python_test` / `python_tests` target through the `runtime_package_dependencies` field. Pants will run the equivalent of `pants package` beforehand and copy the built artifact into the test's chroot, allowing you to test things like that the artifact has the correct files present and that it's executable. +> +> This allows you to test your packaging pipeline by simply running `pants test ::`, without needing custom integration test scripts. +> +> See [test](doc:python-test-goal) for more information. -This allows you to test your packaging pipeline by simply running `pants test ::`, without needing custom integration test scripts. - -See [test](./test.mdx) for more information. -::: - -:::tip Streamling Docker builds -Check out our blog [Streamling Docker Builds](https://blog.pantsbuild.org/pants-pex-and-docker/) to read about how you can combine these `package` formats with Pants's Docker support. Also see our [Docker docs](../../docker/docker-overview.mdx) -::: +> 👍 Streamling Docker builds +> +> Check out our blog [Streamling Docker Builds](https://blog.pantsbuild.org/pants-pex-and-docker/) to read about how you can combine these `package` formats with Pants's Docker support. Also see our [Docker docs](doc:docker) ## Creating a PEX file from a `pex_binary` target -Running `package` on a `pex_binary` target will create an executable [PEX file](../python-overview/pex-files.mdx). +Running `package` on a `pex_binary` target will create an executable [PEX file](doc:pex-files). The PEX file will contain all the code needed to run the binary, namely: @@ -41,7 +40,7 @@ The PEX file will contain all the code needed to run the binary, namely: The PEX metadata will include: - The entry point or console script specified by the `pex_binary` target, if any. -- The intersection of all interpreter constraints applicable to the code in the Pex. See [Interpreter compatibility](../python-overview/interpreter-compatibility.mdx). +- The intersection of all interpreter constraints applicable to the code in the Pex. See [Interpreter compatibility](doc:python-interpreter-compatibility). You can also tweak many options, such as the `execution_mode` option to optimize for faster initial runs vs. subsequent runs. Run `pants help pex_binary`. @@ -74,7 +73,7 @@ If you use the `entry_point` field, Pants will use dependency inference, which y You can specify a file name, which Pants will convert into a well-formed entry point. Like with the `source` / `sources` field, file paths are relative to the BUILD file, rather than the build root. -```python title="helloworld/BUILD" +```python helloworld/BUILD # The default `sources` field will include `main.py`. python_sources(name="lib") @@ -97,7 +96,7 @@ This approach has the added benefit that you can use file arguments, e.g. `pants You can directly specify the entry point in the format `path.to.module` or `path.to.module:my_func`. This allows you to use an entry point for a third-party requirement or the Python standard library. -```python title="helloworld/BUILD" +```python helloworld/BUILD # The default `sources` field will include `main.py`. python_sources(name="lib") @@ -125,7 +124,7 @@ Unlike using `entry_point` with a file name, this does not work with file argume You can set the `script` to any `console_script` or script exposed by your third-party requirements. -```python title="helloworld/BUILD" +```python helloworld/BUILD python_requirement(name="black_req", requirements=["black==23.1.0"]) pex_binary( @@ -143,7 +142,7 @@ This does not work with file arguments; you must use the target address, like `p You can use the `inject_args` and `inject_env` fields to "freeze" command-line arguments and environment variables into the PEX file. This can save you from having to create shim files around generic binaries. For example: -```python title="myproduct/myservice/BUILD" +```python myproduct/myservice/BUILD python_requirement(name="gunicorn", requirements=["gunicorn==20.1.0"]) pex_binary( @@ -155,19 +154,19 @@ pex_binary( ) ``` -:::caution PEX files may be platform-specific -If your code's requirements include distributions that include native code, then the resulting PEX file will only run on the platform it was built on. - -However, if all native code requirements are available as [wheels](https://packaging.python.org/glossary/#term-wheel) for the target platform, then you can cross-build a PEX file on a different source platform by specifying the `platforms` field on the `pex_binary`, e.g. `platforms=["linux-x86_64-cp-37-cp37m", "macosx_10_15_x86_64-cp-38-cp38"]`. -::: +> 🚧 PEX files may be platform-specific +> +> If your code's requirements include distributions that include native code, then the resulting PEX file will only run on the platform it was built on. +> +> However, if all native code requirements are available as [wheels](https://packaging.python.org/glossary/#term-wheel) for the target platform, then you can cross-build a PEX file on a different source platform by specifying the `platforms` field on the `pex_binary`, e.g. `platforms=["linux-x86_64-cp-37-cp37m", "macosx_10_15_x86_64-cp-38-cp38"]`. -:::note Tip: inspect the `.pex` file with `unzip` -Because a `.pex` file is simply a ZIP file, you can use the Unix tool `unzip` to inspect the contents. For example, run `unzip -l dist/app.pex` to see all file members. -::: +> 📘 Tip: inspect the `.pex` file with `unzip` +> +> Because a `.pex` file is simply a ZIP file, you can use the Unix tool `unzip` to inspect the contents. For example, run `unzip -l dist/app.pex` to see all file members. -:::caution Use `resource` instead of `file` -`file` and `files` targets will not be included in the built PEX because filesystem APIs like `open()` would not load them as expected. Instead, use the `resource` and `resources` target or wrap your `pex_binary` in an `archive` target. See [Assets and archives](../../using-pants/assets-and-archives.mdx) for further explanation. -::: +> 🚧 Use `resource` instead of `file` +> +> `file` and `files` targets will not be included in the built PEX because filesystem APIs like `open()` would not load them as expected. Instead, use the `resource` and `resources` target or wrap your `pex_binary` in an `archive` target. See [Assets and archives](doc:assets) for further explanation. ### Examples @@ -177,7 +176,7 @@ Because a `.pex` file is simply a ZIP file, you can use the Unix tool `unzip` to 17:36:42 [INFO] Wrote dist/helloworld/helloworld.pex ``` -We can also build the same Pex by using the address of the `pex_binary` target, as described [here](../../using-pants/key-concepts/targets-and-build-files.mdx). +We can also build the same Pex by using the address of the `pex_binary` target, as described [here](doc:targets). ``` ❯ pants package helloworld:app @@ -187,9 +186,9 @@ We can also build the same Pex by using the address of the `pex_binary` target, ### `pex_binaries` target generator -If you have several scripts in the same directory, it can be convenient to use the `pex_binaries` [target generator](../../using-pants/key-concepts/targets-and-build-files.mdx), which will generate one `pex_binary` target per entry in the `entry_points` field: +If you have several scripts in the same directory, it can be convenient to use the `pex_binaries` [target generator](doc:targets), which will generate one `pex_binary` target per entry in the `entry_points` field: -```python title="scripts/BUILD" +```python scripts/BUILD # The default `sources` will include all our source files. python_sources(name="lib") @@ -210,23 +209,23 @@ Use `pants peek path/to/dir:` to inspect the generated `pex_binary` targets. ## Create a setuptools distribution -Running `package` on a `python_distribution` target will create a standard setuptools-style Python distribution, such as an sdist or a wheel. See [Building Distributions](../python-overview/building-distributions.mdx) for details. +Running `package` on a `python_distribution` target will create a standard setuptools-style Python distribution, such as an sdist or a wheel. See [Building Distributions](doc:python-distributions) for details. ## Create a `zip` or `tar` file -See [Resources and archives](../../using-pants/assets-and-archives.mdx) for how to create a zip or tar file with built binaries and/or loose files in it by using the `archive` target. +See [Resources and archives](doc:assets) for how to create a zip or tar file with built binaries and/or loose files in it by using the `archive` target. This is often useful when you want to create a PEX binary using the `pex_binary` target, and bundle it with some loose config files. ## Create an AWS Lambda -See [AWS Lambda](../integrations/aws-lambda.mdx) for how to build a zip file that works with AWS Lambda. +See [AWS Lambda](doc:awslambda-python) for how to build a zip file that works with AWS Lambda. ## Create a Google Cloud Function -See [Google Cloud Functions](../integrations/google-cloud-functions.mdx) for how to build a zip file that works with Google Cloud Functions. +See [Google Cloud Functions](doc:google-cloud-function-python) for how to build a zip file that works with Google Cloud Functions. ## Create a PyOxidizer binary -See [PyOxidizer](../integrations/pyoxidizer.mdx) for how to distribute your code as a binary, like PEX, but with +See [PyOxidizer](doc:pyoxidizer) for how to distribute your code as a binary, like PEX, but with the Python interpreter included. diff --git a/versioned_docs/version-2.18/docs/python/goals/publish.mdx b/versioned_docs/version-2.18/docs/markdown/Python/python-goals/python-publish-goal.md similarity index 77% rename from versioned_docs/version-2.18/docs/python/goals/publish.mdx rename to versioned_docs/version-2.18/docs/markdown/Python/python-goals/python-publish-goal.md index b8704083d..6d22c05d0 100644 --- a/versioned_docs/version-2.18/docs/python/goals/publish.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Python/python-goals/python-publish-goal.md @@ -1,15 +1,14 @@ --- - title: publish - sidebar_position: 4 ---- - -How to distribute packages to a PyPi repository - +title: "publish" +slug: "python-publish-goal" +excerpt: "How to distribute packages to a PyPi repository" +hidden: false +createdAt: "2021-10-05T08:10:25.568Z" --- The `publish` goal is currently in the experimental Python backend. Activate it with this config: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] backend_packages.add = [ "pants.backend.experimental.python", @@ -22,7 +21,7 @@ This will register a new `repositories` field on the `python_distribution` targe When publishing a `python_distribution`, you need to tell Pants which repositories to publish to. That is done with a new `repositories` field on `python_distribution` targets. -```python title="src/python/BUILD" +```python src/python/BUILD python_distribution( name="demo", # ... @@ -34,7 +33,7 @@ python_distribution( ) ``` -```text title=".pypirc" +```text .pypirc [distutils] index-servers = pypi @@ -49,11 +48,11 @@ repository: https://pypi.private.example.com Each repository is either a repository URL or, when prefixed with `@`, a reference to a repository configured in the `.pypirc` file. -:::danger Keep Secrets Secret -We strongly discourage the use of secrets verbatim in your configuration files. - -It is better to provide the required secrets using environment variables when running `pants publish`. Or, better yet, to use `keyring` as described in the [Twine documentation](https://twine.readthedocs.io/en/latest/#keyring-support) -::: +> ❗️ Keep Secrets Secret +> +> We strongly discourage the use of secrets verbatim in your configuration files. +> +> It is better to provide the required secrets using environment variables when running `pants publish`. Or, better yet, to use `keyring` as described in the [Twine documentation](https://twine.readthedocs.io/en/latest/#keyring-support) ## Environment variables @@ -66,7 +65,7 @@ Pants will pass certain configuration [environment variables](https://twine.read - `TWINE_REPOSITORY_URL` - `TWINE_REPOSITORY_URL_` -```shell title="secrets" +```shell secrets # Ephemeral file export TWINE_USERNAME_PRIVATE_REPO="accountname" export TWINE_PASSWORD_PRIVATE_REPO="secretvalue" diff --git a/versioned_docs/version-2.18/docs/python/goals/repl.mdx b/versioned_docs/version-2.18/docs/markdown/Python/python-goals/python-repl-goal.md similarity index 62% rename from versioned_docs/version-2.18/docs/python/goals/repl.mdx rename to versioned_docs/version-2.18/docs/markdown/Python/python-goals/python-repl-goal.md index c36327941..595f69687 100644 --- a/versioned_docs/version-2.18/docs/python/goals/repl.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Python/python-goals/python-repl-goal.md @@ -1,10 +1,9 @@ --- - title: repl - sidebar_position: 5 ---- - -Open a REPL for interactive development. - +title: "repl" +slug: "python-repl-goal" +excerpt: "Open a REPL for interactive development." +hidden: false +createdAt: "2020-03-16T16:19:56.329Z" --- Pants will load a [REPL](https://en.wikipedia.org/wiki/REPL) with all of your specified source code and any of its third-party dependencies, which allows you to import those values. @@ -15,14 +14,14 @@ In addition to the default Python shell, Pants supports the improved [IPython sh To use IPython, run `pants repl --shell=ipython`. To permanently use IPython, add this to your `pants.toml`: -```toml title="pants.toml" +```toml pants.toml [repl] shell = "ipython" ``` -You can change IPython's version with `[ipython].version`. If you change it, Pants's default lockfile for IPython will not work. Either set the `lockfile` option to a custom path or `""` to opt-out. See [Third-party dependencies](../python-overview/third-party-dependencies.mdx#tool-lockfiles). +You can change IPython's version with `[ipython].version`. If you change it, Pants's default lockfile for IPython will not work. Either set the `lockfile` option to a custom path or `""` to opt-out. See [Third-party dependencies](doc:python-third-party-dependencies#tool-lockfiles). -```toml title="pants.toml" +```toml pants.toml [ipython] version = "ipython>=8.0.0" lockfile = "3rdparty/python/ipython_lock.txt" @@ -30,31 +29,30 @@ lockfile = "3rdparty/python/ipython_lock.txt" If you set the `version` lower than IPython 7, then you must set `[ipython].ignore_cwd = false` to avoid Pants setting an option that did not exist in earlier IPython releases. -:::note Python 2 support -Pants uses IPython 7 by default, which does not work with Python 2. You can override `version` to use IPython 5. As mentioned above, you must set `ignore_cwd = false`. - -```toml -[ipython] -version = "ipython<6" -lockfile = "3rdparty/python/ipython_lock.txt" -ignore_cwd = false -``` - -You can even use IPython 7 for Python 3 code, and IPython 5 for Python 2 code: - -```toml -[ipython] -version = "ipython==7.16.1 ; python_version >= '3.6'" -extra_requirements.add = ["ipython<6 ; python_version == '2.7'"] -lockfile = "3rdparty/python/ipython_lock.txt" -ignore_cwd = false -``` - -::: +> 📘 Python 2 support +> +> Pants uses IPython 7 by default, which does not work with Python 2. You can override `version` to use IPython 5. As mentioned above, you must set `ignore_cwd = false`. +> +> ```toml +> [ipython] +> version = "ipython<6" +> lockfile = "3rdparty/python/ipython_lock.txt" +> ignore_cwd = false +> ``` +> +> You can even use IPython 7 for Python 3 code, and IPython 5 for Python 2 code: +> +> ```toml +> [ipython] +> version = "ipython==7.16.1 ; python_version >= '3.6'" +> extra_requirements.add = ["ipython<6 ; python_version == '2.7'"] +> lockfile = "3rdparty/python/ipython_lock.txt" +> ignore_cwd = false +> ``` ## Examples -```text title="Shell" +```text Shell $ pants repl helloworld/greet/greeting.py Python 3.7.6 (default, Feb 26 2020, 08:28:08) @@ -71,7 +69,7 @@ Type "help", "copyright", "credits" or "license" for more information. This will not load any of your code: -```text title="Shell" +```text Shell ❯ pants repl --shell=ipython Python 3.9.12 (main, Mar 26 2022, 15:45:34) Type 'copyright', 'credits' or 'license' for more information @@ -83,6 +81,6 @@ Out[1]: 84 `pants repl ::` will load all your code. -:::note Tip: how to exit the REPL -Either type `exit()` and hit enter, or press `ctrl+d`. -::: +> 📘 Tip: how to exit the REPL +> +> Either type `exit()` and hit enter, or press `ctrl+d`. diff --git a/versioned_docs/version-2.18/docs/python/goals/run.mdx b/versioned_docs/version-2.18/docs/markdown/Python/python-goals/python-run-goal.md similarity index 50% rename from versioned_docs/version-2.18/docs/python/goals/run.mdx rename to versioned_docs/version-2.18/docs/markdown/Python/python-goals/python-run-goal.md index b92d86495..cdf762793 100644 --- a/versioned_docs/version-2.18/docs/python/goals/run.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Python/python-goals/python-run-goal.md @@ -1,18 +1,17 @@ --- - title: run - sidebar_position: 6 ---- - -Run a `pex_binary` target. - +title: "run" +slug: "python-run-goal" +excerpt: "Run a `pex_binary` target." +hidden: false +createdAt: "2020-03-16T16:19:56.403Z" --- To run an executable/script, use `pants run` on one of the following target types: -- [`pex_binary`](../../../reference/targets/pex_binary.mdx) -- [`python_source`](../../../reference/targets/python_source.mdx) +- [`pex_binary`](doc:reference-pex_binary) +- [`python_source`](doc:reference-python_source) -(See [package](./package.mdx) for more on the `pex_binary` target.) +(See [package](doc:python-package-goal) for more on the `pex_binary` target.) ```bash # A python_source target (usually referred to by the filename) @@ -36,13 +35,13 @@ You may only run one target at a time. The program will have access to the same environment used by the parent `pants` process, so you can set environment variables in the external environment, e.g. `FOO=bar pants run project/app.py`. (Pants will auto-set some values like `$PATH`). -:::note Tip: check the return code -Pants will propagate the return code from the underlying executable. Run `echo $?` after the Pants run to see the return code. -::: +> 📘 Tip: check the return code +> +> Pants will propagate the return code from the underlying executable. Run `echo $?` after the Pants run to see the return code. -:::caution Issues finding files? -Run `pants dependencies --transitive path/to/binary.py` to ensure that all the files you need are showing up, including for any [assets](../../using-pants/assets-and-archives.mdx) you intend to use. -::: +> 🚧 Issues finding files? +> +> Run `pants dependencies --transitive path/to/binary.py` to ensure that all the files you need are showing up, including for any [assets](doc:assets) you intend to use. ## Execution Semantics @@ -56,41 +55,39 @@ Running a `python_source` with the `run_goal_use_sandbox` field set to `False` i If the app that you are running is long lived and safe to restart (including web apps like Django and Flask or other types of servers/services), you can set `restartable=True` on your `pex_binary` target to indicate this to Pants. The `run` goal will then automatically restart the app when its input files change! -On the other hand, if your app is short lived (like a script) and you'd like to re-run it when files change but never interrupt an ongoing run, consider using `pants --loop run` instead. See [Goals](../../using-pants/key-concepts/goals.mdx#running-goals) for more information on `--loop`. +On the other hand, if your app is short lived (like a script) and you'd like to re-run it when files change but never interrupt an ongoing run, consider using `pants --loop run` instead. See [Goals](doc:goals#running-goals) for more information on `--loop`. ## Debugging -:::note Tip: using the VS Code (or any [DAP](https://microsoft.github.io/debug-adapter-protocol/)-compliant editor) remote debugger - -1. In your editor, set your breakpoints and any other debug settings (like break-on-exception). -2. Run your code with `pants run --debug-adapter`. -3. Connect your editor to the server. The server host and port are logged by Pants when executing `run --debug-adapter`. (They can also be configured using the `[debug-adapter]` subsystem). - -::: - -:::note Tip: Using the IntelliJ/PyCharm remote debugger -First, add the following target in some BUILD file (e.g., the one containing your other 3rd-party dependencies): - -``` -python_requirement( -name = "pydevd-pycharm", -requirements=["pydevd-pycharm==203.5419.8"], # Or whatever version you choose. -) -``` - -You can check this into your repo, for convenience. - -Now, use the remote debugger as usual: - -1. Start a Python remote debugging session in PyCharm, say on port 5000. -2. Add the following code at the point where you want execution to pause and connect to the debugger: - -``` -import pydevd_pycharm -pydevd_pycharm.settrace('localhost', port=5000, stdoutToServer=True, stderrToServer=True) -``` - -Run your executable with `pants run` as usual. - -Note: The first time you do so you may see some extra dependency resolution work, as `pydevd-pycharm` has now been added to the binary's dependencies, via inference. If you have dependency inference turned off in your repo, you will have to manually add a temporary explicit dependency in your binary target on the `pydevd-pycharm` target. -::: +> 📘 Tip: using the VS Code (or any [DAP](https://microsoft.github.io/debug-adapter-protocol/)-compliant editor) remote debugger +> +> 1. In your editor, set your breakpoints and any other debug settings (like break-on-exception). +> 2. Run your code with `pants run --debug-adapter`. +> 3. Connect your editor to the server. The server host and port are logged by Pants when executing `run --debug-adapter`. (They can also be configured using the `[debug-adapter]` subsystem). + +> 📘 Tip: Using the IntelliJ/PyCharm remote debugger +> +> First, add the following target in some BUILD file (e.g., the one containing your other 3rd-party dependencies): +> +> ``` +> python_requirement( +> name = "pydevd-pycharm", +> requirements=["pydevd-pycharm==203.5419.8"], # Or whatever version you choose. +> ) +> ``` +> +> You can check this into your repo, for convenience. +> +> Now, use the remote debugger as usual: +> +> 1. Start a Python remote debugging session in PyCharm, say on port 5000. +> 2. Add the following code at the point where you want execution to pause and connect to the debugger: +> +> ``` +> import pydevd_pycharm +> pydevd_pycharm.settrace('localhost', port=5000, stdoutToServer=True, stderrToServer=True) +> ``` +> +> Run your executable with `pants run` as usual. +> +> Note: The first time you do so you may see some extra dependency resolution work, as `pydevd-pycharm` has now been added to the binary's dependencies, via inference. If you have dependency inference turned off in your repo, you will have to manually add a temporary explicit dependency in your binary target on the `pydevd-pycharm` target. diff --git a/versioned_docs/version-2.18/docs/python/goals/test.mdx b/versioned_docs/version-2.18/docs/markdown/Python/python-goals/python-test-goal.md similarity index 62% rename from versioned_docs/version-2.18/docs/python/goals/test.mdx rename to versioned_docs/version-2.18/docs/markdown/Python/python-goals/python-test-goal.md index 16af778a7..ac50da207 100644 --- a/versioned_docs/version-2.18/docs/python/goals/test.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Python/python-goals/python-test-goal.md @@ -1,19 +1,18 @@ --- - title: test - sidebar_position: 7 ---- - -Run tests with Pytest. - +title: "test" +slug: "python-test-goal" +excerpt: "Run tests with Pytest." +hidden: false +createdAt: "2020-03-16T16:19:56.071Z" --- Pants uses the [Pytest](https://docs.pytest.org/en/latest/) test runner to run Python tests. You may write your tests in Pytest-style, unittest-style, or mix and match both. -:::tip Benefit of Pants: runs each file in parallel -Each file gets run as a separate process, which gives you fine-grained caching and better parallelism. Given enough cores, Pants will be able to run all your tests at the same time. - -This also gives you fine-grained invalidation. If you run `pants test ::`, and then you only change one file, then only tests that depended on that changed file will need to rerun. -::: +> 👍 Benefit of Pants: runs each file in parallel +> +> Each file gets run as a separate process, which gives you fine-grained caching and better parallelism. Given enough cores, Pants will be able to run all your tests at the same time. +> +> This also gives you fine-grained invalidation. If you run `pants test ::`, and then you only change one file, then only tests that depended on that changed file will need to rerun. ## Examples @@ -35,7 +34,7 @@ This also gives you fine-grained invalidation. If you run `pants test ::`, and t To change the Pytest version, set the `install_from_resolve` option in the `[pytest]` scope. You may also add [plugins](https://docs.pytest.org/en/latest/plugins.html) including the plugins in the resolve: -```toml title="pants.toml" +```toml pants.toml [python.resolves] pytest = "3rdparty/python/pytest-lock.txt" @@ -45,25 +44,25 @@ install_from_resolve = "pytest" Then, add a `requirements.txt` file specifying the version of `pytest` and other plugins: -```Text title="pytest-requirements.txt" +```Text pytest-requirements.txt pytest>=5.4 pytest-django>=3.9.0,<4 pytest-rerunfailures==9.0 ``` -Finally, generate the relevant lockfile with `pants generate-lockfiles --resolve=pytest`. For more information, see [Lockfiles for tools](../python-overview/lockfiles.mdx#lockfiles-for-tools). +Finally, generate the relevant lockfile with `pants generate-lockfiles --resolve=pytest`. For more information, see [Lockfiles for tools](doc:python-lockfiles#lockfiles-for-tools). -Alternatively, if you only want to install the plugin for certain tests, you can add the plugin to the `dependencies` field of your `python_test` / `python_tests` target. See [Third-party dependencies](../python-overview/third-party-dependencies.mdx) for how to install Python dependencies. For example: +Alternatively, if you only want to install the plugin for certain tests, you can add the plugin to the `dependencies` field of your `python_test` / `python_tests` target. See [Third-party dependencies](doc:python-third-party-dependencies) for how to install Python dependencies. For example: -```text title="requirements.txt" +```text requirements.txt pytest-django==3.10.0 ``` -```python title="BUILD" +```python BUILD python_requirements(name="reqs") ``` -```python title="helloworld/util/BUILD" +```python helloworld/util/BUILD python_tests( name="tests", # Normally, Pants infers dependencies based on imports. @@ -79,28 +78,27 @@ By default, Pants only shows output for failed tests. You can change this by set You can permanently set the output format in your `pants.toml` like this: -```toml title="pants.toml" +```toml pants.toml [test] output = "all" ``` -:::note Tip: Use Pytest options to make output more or less verbose -See ["Passing arguments to Pytest"](./test.mdx#passing-arguments-to-pytest). - -For example: - -```bash -❯ pants test project/app_test.py -- -q -``` - -You may want to permanently set the Pytest option `--no-header` to avoid printing the Pytest version for each test run: - -```toml -[pytest] -args = ["--no-header"] -``` - -::: +> 📘 Tip: Use Pytest options to make output more or less verbose +> +> See ["Passing arguments to Pytest"](doc:python-test-goal#passing-arguments-to-pytest). +> +> For example: +> +> ```bash +> ❯ pants test project/app_test.py -- -q +> ``` +> +> You may want to permanently set the Pytest option `--no-header` to avoid printing the Pytest version for each test run: +> +> ```toml +> [pytest] +> args = ["--no-header"] +> ``` ## Passing arguments to Pytest @@ -112,23 +110,22 @@ To pass arguments to Pytest, put them at the end after `--`, like this: You can also use the `args` option in the `[pytest]` scope, like this: -```toml title="pants.toml" +```toml pants.toml [pytest] args = ["-vv"] ``` -:::note Tip: some useful Pytest arguments -See [https://docs.pytest.org/en/latest/usage.html](https://docs.pytest.org/en/latest/usage.html) for more information. +> 📘 Tip: some useful Pytest arguments +> +> See for more information. +> +> - `-k expression`: only run tests matching the expression. +> - `-v`: verbose mode. +> - `-s`: always print the stdout and stderr of your code, even if a test passes. -- `-k expression`: only run tests matching the expression. -- `-v`: verbose mode. -- `-s`: always print the stdout and stderr of your code, even if a test passes. - -::: - -:::caution How to use Pytest's `--pdb` option -You must run `pants test --debug` for this to work properly. See the section "Debugging Tests" for more information. -::: +> 🚧 How to use Pytest's `--pdb` option +> +> You must run `pants test --debug` for this to work properly. See the section "Debugging Tests" for more information. ## Config files @@ -138,7 +135,7 @@ Pants will automatically include any relevant config files in the process's sand Pytest uses [`conftest.py` files](https://docs.pytest.org/en/stable/fixture.html#conftest-py-sharing-fixture-functions) to share fixtures and config across multiple distinct test files. -The default `sources` value for the `python_test_utils` target includes `conftest.py`. You can run [`pants tailor ::`](../../getting-started/initial-configuration.mdx#5-generate-build-files) to automatically add this target: +The default `sources` value for the `python_test_utils` target includes `conftest.py`. You can run [`pants tailor ::`](doc:initial-configuration#5-generate-build-files) to automatically add this target: ``` pants tailor :: @@ -158,12 +155,12 @@ To add any arbitrary environment variable back to the process, you can either ad With both `[test].extra_env_vars` and the `extra_env_vars` field, you can either hardcode a value or leave off a value to "allowlist" it and read from the parent `pants` process's environment. -```toml title="pants.toml" +```toml pants.toml [test] extra_env_vars = ["VAR1", "VAR2=hardcoded_value"] ``` -```python title="project/BUILD" +```python project/BUILD python_tests( name="tests", # Adds to all generated `python_test` targets, @@ -177,26 +174,25 @@ python_tests( ) ``` -:::note Tip: avoiding collisions between concurrent `pytest` runs using env vars -Sometimes your tests/code will need to reach outside of the sandbox, for example to initialize a test DB schema. In these cases you may see conflicts between concurrent `pytest` processes scheduled by Pants, when two or more tests try to set up / tear down the same resource concurrently. To avoid this issue, you can set `[pytest].execution_slot_var` to be a valid environment variable name. Pants will then inject a variable with that name into each `pytest` run, using the process execution slot ID (an integer) as the variable's value. You can then update your test code to check for the presence of the variable and incorporate its value into generated DB names / file paths. For example, in a project using `pytest-django` you could do: - -```toml title="pants.toml" -[pytest] -execution_slot_var = "PANTS_EXECUTION_SLOT" -``` - -```python title="src/conftest.py" -from pytest_django.fixtures import _set_suffix_to_test_databases -from pytest_django.lazy_django import skip_if_no_django - -@pytest.fixture(scope="session") -def django_db_modify_db_settings(): -skip_if_no_django() -if "PANTS_EXECUTION_SLOT" in os.environ: -_set_suffix_to_test_databases(os.environ["PANTS_EXECUTION_SLOT"]) -``` - -::: +> 📘 Tip: avoiding collisions between concurrent `pytest` runs using env vars +> +> Sometimes your tests/code will need to reach outside of the sandbox, for example to initialize a test DB schema. In these cases you may see conflicts between concurrent `pytest` processes scheduled by Pants, when two or more tests try to set up / tear down the same resource concurrently. To avoid this issue, you can set `[pytest].execution_slot_var` to be a valid environment variable name. Pants will then inject a variable with that name into each `pytest` run, using the process execution slot ID (an integer) as the variable's value. You can then update your test code to check for the presence of the variable and incorporate its value into generated DB names / file paths. For example, in a project using `pytest-django` you could do: +> +> ```toml pants.toml +> [pytest] +> execution_slot_var = "PANTS_EXECUTION_SLOT" +> ``` +> +> ```python src/conftest.py +> from pytest_django.fixtures import _set_suffix_to_test_databases +> from pytest_django.lazy_django import skip_if_no_django +> +> @pytest.fixture(scope="session") +> def django_db_modify_db_settings(): +> skip_if_no_django() +> if "PANTS_EXECUTION_SLOT" in os.environ: +> _set_suffix_to_test_databases(os.environ["PANTS_EXECUTION_SLOT"]) +> ``` ## Batching and parallelism @@ -220,33 +216,33 @@ Compatible tests _may not_ end up in the same `pytest` batch if: Compatible tests that _do_ end up in the same batch will run in a single `pytest` invocation. By default the tests will run sequentially, but they can be parallelized by enabling `pytest-xdist` (see below). A single success/failure result will be reported for the entire batch, and additional output files (i.e. XML results and coverage) will encapsulate all of the included Python test files. -:::note Tip: finding failed tests in large batches -It can sometimes be difficult to locate test failures in the logging output of a large `pytest` batch. You can pass the `-r` flag to `pytest` to make this investigation easier: - -```bash -❯ pants test :: -- -r -``` - -This will cause `pytest` to print a "summary report" at the end of its output, including the names of all failed tests. See the `pytest` docs [here](https://docs.pytest.org/en/6.2.x/usage.html#detailed-summary-report) for more information. -::: +> 📘 Tip: finding failed tests in large batches +> +> It can sometimes be difficult to locate test failures in the logging output of a large `pytest` batch. You can pass the `-r` flag to `pytest` to make this investigation easier: +> +> ```bash +> ❯ pants test :: -- -r +> ``` +> +> This will cause `pytest` to print a "summary report" at the end of its output, including the names of all failed tests. See the `pytest` docs [here](https://docs.pytest.org/en/6.2.x/usage.html#detailed-summary-report) for more information. -The high-level `pytest` fixtures that motivate batched testing are often defined in a `conftest.py` near the root of your repository, applying to every test in a directory tree. In these cases, you can mark all the tests in the directory tree as compatible using the [`__defaults__` builtin](../../using-pants/key-concepts/targets-and-build-files.mdx#field-default-values): +The high-level `pytest` fixtures that motivate batched testing are often defined in a `conftest.py` near the root of your repository, applying to every test in a directory tree. In these cases, you can mark all the tests in the directory tree as compatible using the [`__defaults__` builtin](doc:targets#field-default-values): -```python title="BUILD" +```python BUILD python_test_utils() __defaults__({(python_test, python_tests): dict(batch_compatibility_tag="your-tag-here"),}) ``` -:::caution Caching batched tests -Batched test results are cached together by Pants, meaning that if any file in the batch changes (or if a file is added to / removed from the batch) then the entire batch will be invalidated and need to re-run. Depending on the time it takes to execute your fixtures and the number of tests sharing those fixtures, you may see better performance overall by setting a lower value for `[test].batch_size`, improving your cache-hit rate to skip running tests more often. -::: +> 🚧 Caching batched tests +> +> Batched test results are cached together by Pants, meaning that if any file in the batch changes (or if a file is added to / removed from the batch) then the entire batch will be invalidated and need to re-run. Depending on the time it takes to execute your fixtures and the number of tests sharing those fixtures, you may see better performance overall by setting a lower value for `[test].batch_size`, improving your cache-hit rate to skip running tests more often. ### Parallelism via `pytest-xdist` Pants includes built-in support for `pytest-xdist`, which can be enabled by setting: -```toml title="pants.toml" +```toml pants.toml [pytest] xdist_enabled = true ``` @@ -255,23 +251,23 @@ This will cause Pants to pass `-n ` when running `pytest`. When thi By default, Pants will automatically compute the value of `` for each target based on the number of tests defined in the file and the number of available worker threads. You can instead set a hard-coded upper limit on the concurrency per target: -```python title="BUILD" +```python BUILD python_test(name="tests", source="tests.py", xdist_concurrency=4) ``` To explicitly disable the use of `pytest-xdist` for a target, set `xdist_concurrency=0`. This can be necessary for tests that are not safe to run in parallel. -:::caution Parallelism in multiple concurrent processes -Pants will limit the total number of parallel tests running across _all_ scheduled processes so that it does not exceed the configured value of `[GLOBAL].process_execution_local_parallelism` (by default, the number of CPUs available on the machine running Pants). For example, if your machine has 8 CPUs and Pants schedules 8 concurrent `pytest` processes with `pytest-xdist` enabled, it will pass `-n 1` to each process so that the total concurrency is 8. - -It is possible to work around this behavior by marking all of your `python_test` targets as batch-compatible and setting a very large value for `[test].batch_size`. This will cause Pants to schedule fewer processes (containing more `python_test`s each) overall, allowing for larger values of `-n `. Note however that this approach will limit the cacheability of your tests. -::: +> 🚧 Parallelism in multiple concurrent processes +> +> Pants will limit the total number of parallel tests running across _all_ scheduled processes so that it does not exceed the configured value of `[GLOBAL].process_execution_local_parallelism` (by default, the number of CPUs available on the machine running Pants). For example, if your machine has 8 CPUs and Pants schedules 8 concurrent `pytest` processes with `pytest-xdist` enabled, it will pass `-n 1` to each process so that the total concurrency is 8. +> +> It is possible to work around this behavior by marking all of your `python_test` targets as batch-compatible and setting a very large value for `[test].batch_size`. This will cause Pants to schedule fewer processes (containing more `python_test`s each) overall, allowing for larger values of `-n `. Note however that this approach will limit the cacheability of your tests. When `pytest-xdist` is in use, the `PYTEST_XDIST_WORKER` and `PYTEST_XDIST_WORKER_COUNT` environment variables will be automatically set. You can use those values (in addition to `[pytest].execution_slot_var`) to avoid collisions between parallel tests (i.e. by using the combination of `[pytest].execution_slot_var` and `PYTEST_XDIST_WORKER` as a suffix for generated database names / file paths). -:::caution `pytest-xdist` and high-level fixtures -Use of `pytest-xdist` may cause high-level `pytest` fixtures to execute more often than expected. See the `pytest-xdist` docs [here](https://pypi.org/project/pytest-xdist/#making-session-scoped-fixtures-execute-only-once) for more details, and tips on how to mitigate this. -::: +> 🚧 `pytest-xdist` and high-level fixtures +> +> Use of `pytest-xdist` may cause high-level `pytest` fixtures to execute more often than expected. See the `pytest-xdist` docs [here](https://pypi.org/project/pytest-xdist/#making-session-scoped-fixtures-execute-only-once) for more details, and tips on how to mitigate this. ## Force reruns with `--force` @@ -283,13 +279,13 @@ Because Pants runs multiple test targets in parallel, you will not see your test Instead, if you want to run a test interactively—such as to use a debugger like `pdb`—run your tests with `pants test --debug`. For example: -```python title="test_debug_example.py" +```python test_debug_example.py def test_debug(): import pdb; pdb.set_trace() assert 1 + 1 == 2 ``` -```text title="Shell" +```text Shell ❯ pants test --debug test_debug_example.py ===================================================== test session starts ===================================================== @@ -308,56 +304,53 @@ test_debug_example.py If you use multiple files with `test --debug`, they will run sequentially rather than in parallel. -:::note Tip: using `ipdb` in tests -[`ipdb`](https://github.com/gotcha/ipdb) integrates IPython with the normal `pdb` debugger for enhanced features like autocomplete and improved syntax highlighting. `ipdb` is very helpful when debugging tests. - -To be able to access `ipdb` when running tests, add this to your `pants.toml`: - -```toml -[pytest] -extra_requirements.add = ["ipdb"] -``` - -Then, you can use `import ipdb; ipdb.set_trace()` in your tests. - -To run the tests you will need to add `-- -s` to the test call since ipdb will need stdin and pytest will capture it. - -```bash -❯ pants test --debug -- -s -``` - -::: - -:::note Tip: using the VS Code (or any [DAP](https://microsoft.github.io/debug-adapter-protocol/)-compliant editor) remote debugger in tests - -1. In your editor, set your breakpoints and any other debug settings (like break-on-exception). -2. Run your test with `pants test --debug-adapter`. -3. Connect your editor to the server. The server host and port are logged by Pants when executing `test --debug-adapter`. (They can also be configured using the `[debug-adapter]` subsystem). - -::: +> 📘 Tip: using `ipdb` in tests +> +> [`ipdb`](https://github.com/gotcha/ipdb) integrates IPython with the normal `pdb` debugger for enhanced features like autocomplete and improved syntax highlighting. `ipdb` is very helpful when debugging tests. +> +> To be able to access `ipdb` when running tests, add this to your `pants.toml`: +> +> ```toml +> [pytest] +> extra_requirements.add = ["ipdb"] +> ``` +> +> Then, you can use `import ipdb; ipdb.set_trace()` in your tests. +> +> To run the tests you will need to add `-- -s` to the test call since ipdb will need stdin and pytest will capture it. +> +> ```bash +> ❯ pants test --debug -- -s +> ``` + +> 📘 Tip: using the VS Code (or any [DAP](https://microsoft.github.io/debug-adapter-protocol/)-compliant editor) remote debugger in tests +> +> 1. In your editor, set your breakpoints and any other debug settings (like break-on-exception). +> 2. Run your test with `pants test --debug-adapter`. +> 3. Connect your editor to the server. The server host and port are logged by Pants when executing `test --debug-adapter`. (They can also be configured using the `[debug-adapter]` subsystem). > Run your test with `pants test --debug` as usual. -:::note Tip: using the IntelliJ/PyCharm remote debugger in tests -First, add this to your `pants.toml`: - -```toml -[pytest] -extra_requirements.add = ["pydevd-pycharm==203.5419.8"] # Or whatever version you choose. -``` - -Now, use the remote debugger as usual: - -1. Start a Python remote debugging session in PyCharm, say on port 5000. -2. Add the following code at the point where you want execution to pause and connect to the debugger: - -```python -import pydevd_pycharm -pydevd_pycharm.settrace('localhost', port=5000, stdoutToServer=True, stderrToServer=True) -``` - -Run your test with `pants test --debug` as usual. -::: +> 📘 Tip: using the IntelliJ/PyCharm remote debugger in tests +> +> First, add this to your `pants.toml`: +> +> ```toml +> [pytest] +> extra_requirements.add = ["pydevd-pycharm==203.5419.8"] # Or whatever version you choose. +> ``` +> +> Now, use the remote debugger as usual: +> +> 1. Start a Python remote debugging session in PyCharm, say on port 5000. +> 2. Add the following code at the point where you want execution to pause and connect to the debugger: +> +> ```python +> import pydevd_pycharm +> pydevd_pycharm.settrace('localhost', port=5000, stdoutToServer=True, stderrToServer=True) +> ``` +> +> Run your test with `pants test --debug` as usual. ## Timeouts @@ -365,13 +358,13 @@ Pants can cancel tests which take too long. This is useful to prevent tests from To add a timeout, set the `timeout` field to an integer value of seconds, like this: -```python title="BUILD" +```python BUILD python_test(name="tests", source="tests.py", timeout=120) ``` When you set timeout on the `python_tests` target generator, the same timeout will apply to every generated `python_test` target. -```python title="BUILD" +```python BUILD python_tests( name="tests", overrides={ @@ -383,7 +376,7 @@ python_tests( You can also set a default value and a maximum value in `pants.toml`: -```toml title="pants.toml" +```toml pants.toml [test] timeout_default = 60 timeout_maximum = 600 @@ -391,14 +384,13 @@ timeout_maximum = 600 If a target sets its `timeout` higher than `[test].timeout_maximum`, Pants will use the value in `[test].timeout_maximum`. -:::note Tip: temporarily ignoring timeouts -When debugging locally, such as with `pdb`, you might want to temporarily disable timeouts. To do this, set `--no-test-timeouts`: - -```bash -$ pants test project/app_test.py --no-test-timeouts -``` - -::: +> 📘 Tip: temporarily ignoring timeouts +> +> When debugging locally, such as with `pdb`, you might want to temporarily disable timeouts. To do this, set `--no-test-timeouts`: +> +> ```bash +> $ pants test project/app_test.py --no-test-timeouts +> ``` ## Test utilities and resources @@ -406,11 +398,11 @@ $ pants test project/app_test.py --no-test-timeouts Use the target type `python_source` for test utilities, rather than `python_test`. -To reduce boilerplate, you can use either the [`python_sources`](../../../reference/targets/python_sources.mdx) or [`python_test_utils`](../../../reference/targets/python_test_utils.mdx) targets to generate `python_source` targets. These behave the same, except that `python_test_utils` has a different default `sources` to include `conftest.py` and type stubs for tests (like `test_foo.pyi`). Use [`pants tailor ::`](../../getting-started/initial-configuration.mdx#5-generate-build-files) to generate both these targets automatically. +To reduce boilerplate, you can use either the [`python_sources`](doc:reference-python_sources) or [`python_test_utils`](doc:reference-python_test_utils) targets to generate `python_source` targets. These behave the same, except that `python_test_utils` has a different default `sources` to include `conftest.py` and type stubs for tests (like `test_foo.pyi`). Use [`pants tailor ::`](doc:initial-configuration#5-generate-build-files) to generate both these targets automatically. For example: -```python title="helloworld/BUILD" +```python helloworld/BUILD # The default `sources` includes all files other than # `!*_test.py`, `!test_*.py`, and `tests.py`, and `conftest.py`. python_sources(name="lib") @@ -420,7 +412,7 @@ python_sources(name="lib") python_tests(name="tests") ``` -```python title="helloworld/testutils.py" +```python helloworld/testutils.py ... @contextmanager @@ -430,7 +422,7 @@ def setup_tmpdir(files: Mapping[str, str]) -> Iterator[str]: yield rel_tmpdir ``` -```python title="helloworld/app_test.py" +```python helloworld/app_test.py from helloworld.testutils import setup_tmpdir def test_app() -> None: @@ -440,7 +432,7 @@ def test_app() -> None: ### Assets -Refer to [Assets](../../using-pants/assets-and-archives.mdx) for how to include asset files in your tests by adding to the `dependencies` field. +Refer to [Assets](doc:assets) for how to include asset files in your tests by adding to the `dependencies` field. It's often most convenient to use `file` / `files` and `relocated_files` targets in your test code, although you can also use `resource` / `resources` targets. @@ -454,7 +446,7 @@ To depend on a built package, use the `runtime_package_dependencies` field on th For example: -```python title="helloworld/BUILD" +```python helloworld/BUILD # This target teaches Pants about our non-test Python files. python_sources(name="lib") @@ -469,11 +461,11 @@ python_tests( ) ``` -```python title="helloworld/say_hello.py" +```python helloworld/say_hello.py print("Hello, test!") ``` -```python title="helloworld/test_binary.py" +```python helloworld/test_binary.py import subprocess def test_say_hello(): @@ -490,34 +482,34 @@ To report coverage using [`Coverage.py`](https://coverage.readthedocs.io/en/cove Or to permanently use coverage, set in your config file: -```toml title="pants.ci.toml" +```toml pants.ci.toml [test] use_coverage = true ``` -:::caution Failure to parse files? -Coverage defaults to running with Python 3.6+ when generating a report, which means it may fail to parse Python 2 syntax and Python 3.8+ syntax. You can fix this by changing the interpreter constraints for running Coverage: - -```toml -# pants.toml -[coverage-py] -interpreter_constraints = [">=3.8"] -``` - -However, if your repository has some Python 2-only code and some Python 3-only code, you will not be able to choose an interpreter that works with both versions. So, you will need to set up a `.coveragerc` config file and set `ignore_errors = true` under `[report]`, like this: - -``` -# .coveragerc -[report] -ignore_errors = true -``` - -`ignore_errors = true` means that those files will simply be left off of the final coverage report. - -(Pants should autodiscover the config file `.coveragerc`. See [coverage-py](../../../reference/subsystems/coverage-py.mdx#section-config-discovery).) - -There's a proposal for Pants to fix this by generating multiple reports when necessary: [https://github.com/pantsbuild/pants/issues/11137](https://github.com/pantsbuild/pants/issues/11137). We'd appreciate your feedback. -::: +> 🚧 Failure to parse files? +> +> Coverage defaults to running with Python 3.6+ when generating a report, which means it may fail to parse Python 2 syntax and Python 3.8+ syntax. You can fix this by changing the interpreter constraints for running Coverage: +> +> ```toml +> # pants.toml +> [coverage-py] +> interpreter_constraints = [">=3.8"] +> ``` +> +> However, if your repository has some Python 2-only code and some Python 3-only code, you will not be able to choose an interpreter that works with both versions. So, you will need to set up a `.coveragerc` config file and set `ignore_errors = true` under `[report]`, like this: +> +> ``` +> # .coveragerc +> [report] +> ignore_errors = true +> ``` +> +> `ignore_errors = true` means that those files will simply be left off of the final coverage report. +> +> (Pants should autodiscover the config file `.coveragerc`. See [coverage-py](https://www.pantsbuild.org/docs/reference-coverage-py#section-config-discovery).) +> +> There's a proposal for Pants to fix this by generating multiple reports when necessary: . We'd appreciate your feedback. Coverage will report data on any files encountered during the tests. You can filter down the results by using the option `--coverage-py-filter` and passing the name(s) of modules you want coverage data for. Each module name is recursive, meaning submodules will be included. For example: @@ -526,27 +518,27 @@ Coverage will report data on any files encountered during the tests. You can fil ❯ pants test --use-coverage helloworld/util/lang_test.py --coverage-py-filter='["helloworld.util.lang", "helloworld.util.lang_test"]' ``` -:::note Set `global_report` to include un-encountered files -By default, coverage.py will only report on files encountered during the tests' run. This means -that your coverage score may be misleading; even with a score of 100%, you may have files -without any tests. - -Instead, you can set `global_report = true`: - -```toml title="pants.toml" -[coverage-py] -global_report = true -``` - -Coverage.py will report on [all files it considers importable](https://coverage.readthedocs.io/en/6.3.2/source.html), -i.e. files at the root of the tree, or in directories with a `__init__.py` file. It may still omit -files in [implicit namespace packages](https://peps.python.org/pep-0420/) that lack `__init__.py` files. -This is a shortcoming of Coverage.py itself. -::: +> 📘 Set `global_report` to include un-encountered files +> +> By default, coverage.py will only report on files encountered during the tests' run. This means +> that your coverage score may be misleading; even with a score of 100%, you may have files +> without any tests. +> +> Instead, you can set `global_report = true`: +> +> ```toml pants.toml +> [coverage-py] +> global_report = true +> ``` +> +> Coverage.py will report on [all files it considers importable](https://coverage.readthedocs.io/en/6.3.2/source.html), +> i.e. files at the root of the tree, or in directories with a `__init__.py` file. It may still omit +> files in [implicit namespace packages](https://peps.python.org/pep-0420/) that lack `__init__.py` files. +> This is a shortcoming of Coverage.py itself. Pants will default to writing the results to the console, but you can also output in HTML, XML, JSON, or the raw SQLite file: -```toml title="pants.toml" +```toml pants.toml [coverage-py] report = ["raw", "xml", "html", "json", "console"] ``` @@ -557,7 +549,7 @@ You may want to set `[coverage-py].fail_under` to cause Pants to gracefully fail You may use a Coverage config file, e.g. `.coveragerc` or `pyproject.toml`. Pants will autodiscover the config file for you, and you can also set `[coverage-py].config` in your `pants.toml` to point to a non-standard location. You must include `relative_files = true` in the `[run]` section for Pants to work. -```text title=".coveragerc" +```text .coveragerc [run] relative_files = true branch = true @@ -571,7 +563,7 @@ Pytest can generate [JUnit XML result files](https://docs.pytest.org/en/6.2.x/us To save JUnit XML result files, set the option `[test].report`, like this: -```toml title="pants.toml" +```toml pants.toml [test] report = true ``` @@ -582,7 +574,7 @@ This will default to writing test reports to `dist/test/reports`. You may also w You can set `PYTEST_ADDOPTS` environment variable to add your own command line options, like this: -```python title="BUILD" +```python BUILD python_tests( name="tests", ... diff --git a/versioned_docs/version-2.18/docs/markdown/Python/python-integrations.md b/versioned_docs/version-2.18/docs/markdown/Python/python-integrations.md new file mode 100644 index 000000000..4f3db0b6b --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Python/python-integrations.md @@ -0,0 +1,14 @@ +--- +title: "Integrations" +slug: "python-integrations" +excerpt: "Useful integrations for Python." +hidden: false +createdAt: "2021-03-25T20:25:16.905Z" +--- + +- [Protobuf and gRPC](doc:protobuf-python) +- [Thrift](doc:thrift-python) +- [AWS Lambda](doc:awslambda-python) +- [Google Cloud Functions](doc:google-cloud-function-python) +- [PyOxidizer](doc:pyoxidizer) +- [Jupyter](doc:jupyter) diff --git a/versioned_docs/version-2.18/docs/python/integrations/aws-lambda.mdx b/versioned_docs/version-2.18/docs/markdown/Python/python-integrations/awslambda-python.md similarity index 73% rename from versioned_docs/version-2.18/docs/python/integrations/aws-lambda.mdx rename to versioned_docs/version-2.18/docs/markdown/Python/python-integrations/awslambda-python.md index a50e88b6a..0b98fe5a5 100644 --- a/versioned_docs/version-2.18/docs/python/integrations/aws-lambda.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Python/python-integrations/awslambda-python.md @@ -1,23 +1,22 @@ --- - title: AWS Lambda - sidebar_position: 2 ---- - -Create a Lambda with Python code. - +title: "AWS Lambda" +slug: "awslambda-python" +excerpt: "Create a Lambda with Python code." +hidden: false +createdAt: "2020-05-05T16:51:03.851Z" --- Pants can create a Lambda-compatible zip file from your Python code, allowing you to develop your Lambda functions and layers in your repository instead of using the online Cloud9 editor. -:::note FYI: how Pants does this -Under-the-hood, Pants uses the [PEX](https://github.com/pantsbuild/pex) project, to select the appropriate third-party requirements and first-party sources and lay them out in a zip file, in the format recommended by AWS. -::: +> 📘 FYI: how Pants does this +> +> Under-the-hood, Pants uses the [PEX](https://github.com/pantsbuild/pex) project, to select the appropriate third-party requirements and first-party sources and lay them out in a zip file, in the format recommended by AWS. ## Step 1: Activate the Python AWS Lambda backend Add this to your `pants.toml`: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] backend_packages.add = [ "pants.backend.awslambda.python", @@ -31,13 +30,13 @@ This adds the new `python_aws_lambda_function` target, which you can confirm by First, add your lambda function in a Python file like you would [normally do with AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/python-handler.html). Specifically, create a function `def my_handler_name(event, context)` with the name you want. -Then, in your BUILD file, make sure that you have a `python_source` or `python_sources` target with the handler file included in the `sources` field. You can use [`pants tailor ::`](../../getting-started/initial-configuration.mdx#5-generate-build-files) to automate this. +Then, in your BUILD file, make sure that you have a `python_source` or `python_sources` target with the handler file included in the `sources` field. You can use [`pants tailor ::`](doc:initial-configuration#5-generate-build-files) to automate this. -Add a `python_aws_lambda_function` target and define the `runtime` and `handler` fields. The `runtime` should be one of the values from [https://docs.aws.amazon.com/lambda/latest/dg/lambda-python.html](https://docs.aws.amazon.com/lambda/latest/dg/lambda-python.html). The `handler` has the form `handler_file.py:handler_func`, which Pants will convert into a well-formed entry point. Alternatively, you can set `handler` to the format `path.to.module:handler_func`. +Add a `python_aws_lambda_function` target and define the `runtime` and `handler` fields. The `runtime` should be one of the values from . The `handler` has the form `handler_file.py:handler_func`, which Pants will convert into a well-formed entry point. Alternatively, you can set `handler` to the format `path.to.module:handler_func`. For example: -```python title="project/BUILD" +```python project/BUILD # The default `sources` field will include our handler file. python_sources(name="lib") @@ -49,18 +48,18 @@ python_aws_lambda_function( ) ``` -```python title="project/lambda_example.py" +```python project/lambda_example.py def example_handler(event, context): print("Hello AWS!") ``` -Pants will use [dependency inference](../../using-pants/key-concepts/targets-and-build-files.mdx) based on the `handler` field, which you can confirm by running `pants dependencies path/to:lambda`. You can also manually add to the `dependencies` field. +Pants will use [dependency inference](doc:targets) based on the `handler` field, which you can confirm by running `pants dependencies path/to:lambda`. You can also manually add to the `dependencies` field. You can optionally set the `output_path` field to change the generated zip file's path. -:::caution Use `resource` instead of `file` -`file` / `files` targets will not be included in the built AWS Lambda artifacts because filesystem APIs like `open()` would not load them as expected. Instead, use the `resource` and `resources` target. See [Assets and archives](../../using-pants/assets-and-archives.mdx) for further explanation. -::: +> 🚧 Use `resource` instead of `file` +> +> `file` / `files` targets will not be included in the built AWS Lambda artifacts because filesystem APIs like `open()` would not load them as expected. Instead, use the `resource` and `resources` target. See [Assets and archives](doc:assets) for further explanation. ## Step 3: Run `package` @@ -74,11 +73,11 @@ Wrote dist/project/lambda.zip Handler: lambda_function.handler ``` -:::caution Running from macOS and failing to build? -AWS Lambda functions must run on Linux, so Pants tells PEX and Pip to build for Linux when resolving your third party dependencies. This means that you can only use pre-built [wheels](https://packaging.python.org/glossary/#term-wheel) (bdists). If your project requires any source distributions ([sdists](https://packaging.python.org/glossary/#term-source-distribution-or-sdist)) that must be built locally, PEX and pip will fail to run. - -If this happens, you must either change your dependencies to only use dependencies with pre-built [wheels](https://pythonwheels.com) or find a Linux environment to run `pants package`. -::: +> 🚧 Running from macOS and failing to build? +> +> AWS Lambda functions must run on Linux, so Pants tells PEX and Pip to build for Linux when resolving your third party dependencies. This means that you can only use pre-built [wheels](https://packaging.python.org/glossary/#term-wheel) (bdists). If your project requires any source distributions ([sdists](https://packaging.python.org/glossary/#term-source-distribution-or-sdist)) that must be built locally, PEX and pip will fail to run. +> +> If this happens, you must either change your dependencies to only use dependencies with pre-built [wheels](https://pythonwheels.com) or find a Linux environment to run `pants package`. ## Step 4: Upload to AWS @@ -88,11 +87,11 @@ You can specify the AWS lambda handler as `lambda_function.handler`. This is a r ## Docker Integration -To [deploy a Python lambda function with container images](https://docs.aws.amazon.com/lambda/latest/dg/python-image.html), you can use Pants's [Docker](../../docker/docker-overview.mdx) support. +To [deploy a Python lambda function with container images](https://docs.aws.amazon.com/lambda/latest/dg/python-image.html), you can use Pants's [Docker](doc:docker) support. For example: -```dockerfile title="project/Dockerfile" +```dockerfile project/Dockerfile FROM public.ecr.aws/lambda/python:3.8 RUN yum install unzip -y @@ -101,7 +100,7 @@ RUN unzip lambda.zip -d "${LAMBDA_TASK_ROOT}" CMD ["lambda_function.handler"] ``` -```python title="project/BUILD" +```python project/BUILD python_sources() python_aws_lambda_function( @@ -131,7 +130,7 @@ For example, one use of layers is splitting the deployment package for a Lambda This split means making a change to first-party sources only requires rebuilding and re-deploying the function artifact. Since this artifact doesn't need to include all of the third-party requirements, rebuilding is likely to much faster and the resulting package will be smaller. The layer will only need to be rebuilt and redeployed if the third-party dependencies change, like a version upgrade or an additional `import`. -```python title="project/BUILD" +```python project/BUILD python_sources(name="lib") python_aws_lambda_function( @@ -152,14 +151,14 @@ python_aws_lambda_layer( ) ``` -```python title="project/lambda_example.py" +```python project/lambda_example.py from . import library_code def example_handler(event, context): library_code.say_hi() ``` -```python title="project/library_code.py" +```python project/library_code.py # an example dependency import boto3 @@ -176,11 +175,11 @@ Run `pants package project:layer project:function` to produce two zip files: In the rare case where you need access to PEX features, such as dynamic selection of dependencies, a PEX file created by `pex_binary` can be used as a Lambda function package directly. A PEX file is a carefully constructed zip file, and can be understood natively by AWS. Note: using `pex_binary` results in larger packages and slower cold starts and is likely to be less convenient than using `python_aws_lambda_function`. -The handler of a `pex_binary` is not re-exported at the fixed `lambda_function.handler` path, and the Lambda function handler must be configured as the `__pex__` pseudo-package followed by the handler's normal module path (for instance, if the handler is called `func` in `some/module/path.py` within [a source root](../../using-pants/key-concepts/source-roots.mdx), then use `__pex__.some.module.path.func`). The `__pex__` pseudo-package ensures dependencies are initialized before running any of your code. +The handler of a `pex_binary` is not re-exported at the fixed `lambda_function.handler` path, and the Lambda function handler must be configured as the `__pex__` pseudo-package followed by the handler's normal module path (for instance, if the handler is called `func` in `some/module/path.py` within [a source root](doc:source-roots), then use `__pex__.some.module.path.func`). The `__pex__` pseudo-package ensures dependencies are initialized before running any of your code. For example: -```python title="project/BUILD" +```python project/BUILD python_sources() pex_binary( @@ -191,18 +190,18 @@ pex_binary( ) ``` -```python title="project/lambda_example.py" +```python project/lambda_example.py def example_handler(event, context): print("Hello AWS!") ``` -Then, use `pants package project:lambda`, and upload the resulting `project/lambda.pex` to AWS. The handler will need to be configured in AWS as `__pex__.lambda_example.example_handler` (assuming `project` is a [source root](../../using-pants/key-concepts/source-roots.mdx)). +Then, use `pants package project:lambda`, and upload the resulting `project/lambda.pex` to AWS. The handler will need to be configured in AWS as `__pex__.lambda_example.example_handler` (assuming `project` is a [source root](doc:source-roots)). ## Migrating from Pants 2.16 and earlier Pants has implemented a new way to package Lambda functions in 2.17, which is now the default in 2.18, resulting in smaller packages and faster cold starts. This involves some changes: -- In Pants 2.16 and earlier, Pants used the [Lambdex](https://github.com/pantsbuild/lambdex) project. First, Pants would convert your code into a [Pex file](../python-overview/pex-files.mdx) and then use Lambdex to adapt this to be better understood by AWS by adding a shim handler at the path `lambdex_handler.handler`. This shim handler first triggers the Pex initialization to choose and unzip dependencies, during the "INIT" phase. +- In Pants 2.16 and earlier, Pants used the [Lambdex](https://github.com/pantsbuild/lambdex) project. First, Pants would convert your code into a [Pex file](doc:pex-files) and then use Lambdex to adapt this to be better understood by AWS by adding a shim handler at the path `lambdex_handler.handler`. This shim handler first triggers the Pex initialization to choose and unzip dependencies, during the "INIT" phase. - In Pants 2.17, the use of Lambdex was deprecated, in favour of choosing the appropriate dependencies ahead of time, as described above, without needing to do this on each cold start. This results in a zip file laid out in the format recommended by AWS, and includes a re-export of the handler at the path `lambda_function.handler`. - In Pants 2.18, the new behaviour is now the default behaviour. Layers can now be built using Pants, and this addition includes renaming the `python_awslambda` target to `python_aws_lambda_function`. - In Pants 2.19, the old Lambdex behaviour will be entirely removed. diff --git a/versioned_docs/version-2.18/docs/python/integrations/google-cloud-functions.mdx b/versioned_docs/version-2.18/docs/markdown/Python/python-integrations/google-cloud-function-python.md similarity index 63% rename from versioned_docs/version-2.18/docs/python/integrations/google-cloud-functions.mdx rename to versioned_docs/version-2.18/docs/markdown/Python/python-integrations/google-cloud-function-python.md index 17ae4d44a..233a14334 100644 --- a/versioned_docs/version-2.18/docs/python/integrations/google-cloud-functions.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Python/python-integrations/google-cloud-function-python.md @@ -1,23 +1,22 @@ --- - title: Google Cloud Functions - sidebar_position: 3 ---- - -Create a Cloud Function with Python. - +title: "Google Cloud Functions" +slug: "google-cloud-function-python" +excerpt: "Create a Cloud Function with Python." +hidden: false +createdAt: "2021-11-09T20:29:58.330Z" --- Pants can create a Google Cloud Function-compatible zip file from your Python code, allowing you to develop your functions in your repository. -:::note FYI: how Pants does this -Under-the-hood, Pants uses the [PEX](https://github.com/pantsbuild/pex) project, to select the appropriate third-party requirements and first-party sources and lay them out in a zip file, in the format recommended by Google Cloud Functions. -::: +> 📘 FYI: how Pants does this +> +> Under-the-hood, Pants uses the [PEX](https://github.com/pantsbuild/pex) project, to select the appropriate third-party requirements and first-party sources and lay them out in a zip file, in the format recommended by Google Cloud Functions. ## Step 1: Activate the Python Google Cloud Function backend Add this to your `pants.toml`: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] backend_packages.add = [ "pants.backend.google_cloud_function.python", @@ -31,13 +30,13 @@ This adds the new `python_google_cloud_function` target, which you can confirm b First, add your Cloud function in a Python file like you would [normally do with Google Cloud Functions](https://cloud.google.com/functions/docs/first-python), such as creating a function `def my_handler_name(event, context)` for event-based functions. -Then, in your BUILD file, make sure that you have a `python_source` or `python_sources` target with the handler file included in the `sources` field. You can use [`pants tailor ::`](../../getting-started/initial-configuration.mdx#5-generate-build-files) to automate this. +Then, in your BUILD file, make sure that you have a `python_source` or `python_sources` target with the handler file included in the `sources` field. You can use [`pants tailor ::`](doc:initial-configuration#5-generate-build-files) to automate this. -Add a `python_google_cloud_function` target and define the `runtime`, `handler`, and `type` fields. The `type` should be either `"event"` or `"http"`. The `runtime` should be one of the values from [https://cloud.google.com/functions/docs/concepts/python-runtime](https://cloud.google.com/functions/docs/concepts/python-runtime). The `handler` has the form `handler_file.py:handler_func`, which Pants will convert into a well-formed entry point. Alternatively, you can set `handler` to the format `path.to.module:handler_func`. +Add a `python_google_cloud_function` target and define the `runtime`, `handler`, and `type` fields. The `type` should be either `"event"` or `"http"`. The `runtime` should be one of the values from . The `handler` has the form `handler_file.py:handler_func`, which Pants will convert into a well-formed entry point. Alternatively, you can set `handler` to the format `path.to.module:handler_func`. For example: -```python title="project/BUILD" +```python project/BUILD # The default `sources` field will include our handler file. python_sources(name="lib") @@ -50,18 +49,18 @@ python_google_cloud_function( ) ``` -```python title="project/google_cloud_function_example.py" +```python project/google_cloud_function_example.py def example_handler(event, context): print("Hello Google Cloud Function!") ``` -Pants will use [dependency inference](../../using-pants/key-concepts/targets-and-build-files.mdx) based on the `handler` field, which you can confirm by running `pants dependencies path/to:cloud_function`. You can also manually add to the `dependencies` field. +Pants will use [dependency inference](doc:targets) based on the `handler` field, which you can confirm by running `pants dependencies path/to:cloud_function`. You can also manually add to the `dependencies` field. You can optionally set the `output_path` field to change the generated zip file's path. -:::caution Use `resource` instead of `file` -`file` / `files` targets will not be included in the built Cloud Function because filesystem APIs like `open()` would not load them as expected. Instead, use the `resource` / `resources` target. See [Assets and archives](../../using-pants/assets-and-archives.mdx) for further explanation. -::: +> 🚧 Use `resource` instead of `file` +> +> `file` / `files` targets will not be included in the built Cloud Function because filesystem APIs like `open()` would not load them as expected. Instead, use the `resource` / `resources` target. See [Assets and archives](doc:assets) for further explanation. ## Step 3: Run `package` @@ -75,11 +74,11 @@ Wrote dist/project/cloud_function.zip Handler: handler ``` -:::caution Running from macOS and failing to build? -Cloud Functions must run on Linux, so Pants tells PEX and Pip to build for Linux when resolving your third party dependencies. This means that you can only use pre-built [wheels](https://packaging.python.org/glossary/#term-wheel) (bdists). If your project requires any source distributions ([sdists](https://packaging.python.org/glossary/#term-source-distribution-or-sdist)) that must be built locally, PEX and pip will fail to run. - -If this happens, you must either change your dependencies to only use dependencies with pre-built [wheels](https://pythonwheels.com) or find a Linux environment to run `pants package`. -::: +> 🚧 Running from macOS and failing to build? +> +> Cloud Functions must run on Linux, so Pants tells PEX and Pip to build for Linux when resolving your third party dependencies. This means that you can only use pre-built [wheels](https://packaging.python.org/glossary/#term-wheel) (bdists). If your project requires any source distributions ([sdists](https://packaging.python.org/glossary/#term-source-distribution-or-sdist)) that must be built locally, PEX and pip will fail to run. +> +> If this happens, you must either change your dependencies to only use dependencies with pre-built [wheels](https://pythonwheels.com) or find a Linux environment to run `pants package`. ## Step 4: Upload to Google Cloud @@ -91,11 +90,11 @@ You must specify the handler as `handler`. This is a re-export of the function r In the rare case where you need access to PEX features, such as dynamic selection of dependencies, a PEX file created by `pex_binary` can be used as a Google Cloud Function package directly. A PEX file is a carefully constructed zip file, and can be understood natively by Google Cloud Functions. Note: using `pex_binary` results in larger packages and slower cold starts and is likely to be less convenient than using `python_google_cloud_function`. -The handler of a `pex_binary` is not re-exported at the fixed `main.handler` path, and the Google Cloud Function handler must be configured as the `__pex__` pseudo-package followed by the handler's normal module path (for instance, if the handler is in `some/module/path.py` within [a source root](../../using-pants/key-concepts/source-roots.mdx), then use `__pex__.some.module.path`). This may require being configured via [`GOOGLE_FUNCTION_SOURCE`](https://cloud.google.com/docs/buildpacks/service-specific-configs#google_function_source). The `__pex__` pseudo-package ensures dependencies are initialized before running any of your code. +The handler of a `pex_binary` is not re-exported at the fixed `main.handler` path, and the Google Cloud Function handler must be configured as the `__pex__` pseudo-package followed by the handler's normal module path (for instance, if the handler is in `some/module/path.py` within [a source root](doc:source-roots), then use `__pex__.some.module.path`). This may require being configured via [`GOOGLE_FUNCTION_SOURCE`](https://cloud.google.com/docs/buildpacks/service-specific-configs#google_function_source). The `__pex__` pseudo-package ensures dependencies are initialized before running any of your code. For example: -```python title="project/BUILD" +```python project/BUILD python_sources() pex_binary( @@ -106,18 +105,18 @@ pex_binary( ) ``` -```python title="project/gcf_example.py" +```python project/gcf_example.py def example_handler(event, context): print("Hello GCF!") ``` -Then, use `pants package project:gcf`, and upload the resulting `project/gcf.pex` to Google Cloud Functions. You will need to specify the handler as `example_handler` and set `GOOGLE_FUNCTION_SOURCE=__pex__.gcf_example` (assuming `project` is a [source root](../../using-pants/key-concepts/source-roots.mdx)). +Then, use `pants package project:gcf`, and upload the resulting `project/gcf.pex` to Google Cloud Functions. You will need to specify the handler as `example_handler` and set `GOOGLE_FUNCTION_SOURCE=__pex__.gcf_example` (assuming `project` is a [source root](doc:source-roots)). ## Migrating from Pants 2.16 and earlier Pants has implemented a new way to package Google Cloud Functions in 2.17, which is now the default in 2.18, resulting in smaller packages and faster cold starts. This involves some changes: -- In Pants 2.16 and earlier, Pants used the [Lambdex](https://github.com/pantsbuild/lambdex) project. First, Pants would convert your code into a [Pex file](../python-overview/pex-files.mdx) and then use Lambdex to adapt this to be better understood by GCF by adding a shim handler. This shim handler first triggers the Pex initialization to choose and unzip dependencies, during initialization. +- In Pants 2.16 and earlier, Pants used the [Lambdex](https://github.com/pantsbuild/lambdex) project. First, Pants would convert your code into a [Pex file](doc:pex-files) and then use Lambdex to adapt this to be better understood by GCF by adding a shim handler. This shim handler first triggers the Pex initialization to choose and unzip dependencies, during initialization. - In Pants 2.17, the use of Lambdex was deprecated, in favour of choosing the appropriate dependencies ahead of time, as described above, without needing to do this on each cold start. This results in a zip file laid out in the format recommended by GCF, and includes a re-export of the handler. - In Pants 2.18, the new behaviour is now the default behaviour. - In Pants 2.19, the old Lambdex behaviour will be entirely removed. diff --git a/versioned_docs/version-2.18/docs/python/integrations/jupyter.mdx b/versioned_docs/version-2.18/docs/markdown/Python/python-integrations/jupyter.md similarity index 85% rename from versioned_docs/version-2.18/docs/python/integrations/jupyter.mdx rename to versioned_docs/version-2.18/docs/markdown/Python/python-integrations/jupyter.md index ea173686a..6e70dec77 100644 --- a/versioned_docs/version-2.18/docs/python/integrations/jupyter.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Python/python-integrations/jupyter.md @@ -1,10 +1,9 @@ --- - title: Jupyter - sidebar_position: 5 ---- - -A Jupyter plugin to load Pants targets into Jupyter Notebooks. - +title: "Jupyter" +slug: "jupyter" +excerpt: "A Jupyter plugin to load Pants targets into Jupyter Notebooks." +hidden: false +createdAt: "2021-03-25T20:26:11.111Z" --- The [pants-jupyter-plugin](https://github.com/pantsbuild/pants-jupyter-plugin/) project provides a Jupyter plugin that can be used to load Pants targets directly into a notebook. diff --git a/versioned_docs/version-2.18/docs/python/integrations/protobuf-and-grpc.mdx b/versioned_docs/version-2.18/docs/markdown/Python/python-integrations/protobuf-python.md similarity index 50% rename from versioned_docs/version-2.18/docs/python/integrations/protobuf-and-grpc.mdx rename to versioned_docs/version-2.18/docs/markdown/Python/python-integrations/protobuf-python.md index 3b3209f89..717522239 100644 --- a/versioned_docs/version-2.18/docs/python/integrations/protobuf-and-grpc.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Python/python-integrations/protobuf-python.md @@ -1,29 +1,28 @@ --- - title: Protobuf and gRPC - sidebar_position: 0 ---- - -How to generate Python from Protocol Buffers. - +title: "Protobuf and gRPC" +slug: "protobuf-python" +excerpt: "How to generate Python from Protocol Buffers." +hidden: false +createdAt: "2020-05-05T16:51:05.928Z" --- When your Python code imports Protobuf generated files, Pants will detect the imports and run the Protoc compiler to generate those files. -:::note Example repository -See [the codegen example repository](https://github.com/pantsbuild/example-codegen) for an example of using Protobuf to generate Python. -::: +> 📘 Example repository +> +> See [the codegen example repository](https://github.com/pantsbuild/example-codegen) for an example of using Protobuf to generate Python. -:::tip Benefit of Pants: generated files are always up-to-date -With Pants, there's no need to manually regenerate your code or check it into version control. Pants will ensure you are always using up-to-date files in your builds. - -Thanks to fine-grained caching, Pants will regenerate the minimum amount of code required when you do make changes. -::: +> 👍 Benefit of Pants: generated files are always up-to-date +> +> With Pants, there's no need to manually regenerate your code or check it into version control. Pants will ensure you are always using up-to-date files in your builds. +> +> Thanks to fine-grained caching, Pants will regenerate the minimum amount of code required when you do make changes. ## Step 1: Activate the Protobuf Python backend Add this to your `pants.toml`: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] backend_packages.add = [ "pants.backend.codegen.protobuf.python", @@ -31,11 +30,11 @@ backend_packages.add = [ ] ``` -This adds the new [`protobuf_source`](../../../reference/targets/protobuf_source.mdx) target, which you can confirm by running `pants help protobuf_source`. +This adds the new [`protobuf_source`](doc:reference-protobuf_source) target, which you can confirm by running `pants help protobuf_source`. -To reduce boilerplate, you can also use the [`protobuf_sources`](../../../reference/targets/protobuf_sources.mdx) target, which generates one `protobuf_source` target per file in the `sources` field. +To reduce boilerplate, you can also use the [`protobuf_sources`](doc:reference-protobuf_sources) target, which generates one `protobuf_source` target per file in the `sources` field. -```python title="BUILD" +```python BUILD protobuf_sources(name="protos", sources=["user.proto", "admin.proto"]) # Spiritually equivalent to: @@ -46,26 +45,26 @@ protobuf_source(name="admin", source="admin.proto") protobuf_sources(name="protos") ``` -:::note Enable the MyPy Protobuf plugin -The [MyPy Protobuf plugin](https://github.com/dropbox/mypy-protobuf) generates [`.pyi` type stubs](https://mypy.readthedocs.io/en/stable/stubs.html). If you use MyPy through Pants's [check goal](../goals/check.mdx), this will ensure MyPy understands your generated code. - -To activate, set `mypy_plugin = true` in the `[python-protobuf]` scope: - -```toml -[python-protobuf] -mypy_plugin = true -``` - -MyPy will use the generated `.pyi` type stub file, rather than looking at the `.py` implementation file. -::: +> 📘 Enable the MyPy Protobuf plugin +> +> The [MyPy Protobuf plugin](https://github.com/dropbox/mypy-protobuf) generates [`.pyi` type stubs](https://mypy.readthedocs.io/en/stable/stubs.html). If you use MyPy through Pants's [check goal](doc:python-check-goal), this will ensure MyPy understands your generated code. +> +> To activate, set `mypy_plugin = true` in the `[python-protobuf]` scope: +> +> ```toml +> [python-protobuf] +> mypy_plugin = true +> ``` +> +> MyPy will use the generated `.pyi` type stub file, rather than looking at the `.py` implementation file. ## Step 2: Set up the `protobuf` and `grpcio` runtime libraries Generated Python files require the [`protobuf` dependency](https://pypi.org/project/protobuf/) for their imports to work properly. If you're using gRPC, you also need the [`grpcio` dependency](https://pypi.org/project/grpcio/). -Add `protobuf`—and `grpcio`, if relevant— to your project, e.g. your `requirements.txt` (see [Third-party dependencies](../python-overview/third-party-dependencies.mdx)). +Add `protobuf`—and `grpcio`, if relevant— to your project, e.g. your `requirements.txt` (see [Third-party dependencies](doc:python-third-party-dependencies)). -```text title="requirements.txt" +```text requirements.txt grpcio==1.32.0 protobuf>=3.12.1 ``` @@ -74,7 +73,7 @@ Pants will then automatically add these dependencies to your `protobuf_source` t ## Step 3: Generate `protobuf_sources` target -Run [`pants tailor ::`](../../getting-started/initial-configuration.mdx#5-generate-build-files) for Pants to create a `protobuf_sources` target wherever you have `.proto` files: +Run [`pants tailor ::`](doc:initial-configuration#5-generate-build-files) for Pants to create a `protobuf_sources` target wherever you have `.proto` files: ``` $ pants tailor :: @@ -82,11 +81,11 @@ Created src/protos/BUILD: - Add protobuf_sources target protos ``` -Pants will use [dependency inference](../../using-pants/key-concepts/targets-and-build-files.mdx) for any `import` statements in your `.proto` files, which you can confirm by running `pants dependencies path/to/file.proto`. You should also see the `python_requirement` target for the `protobuf` library from the previous step. +Pants will use [dependency inference](doc:targets) for any `import` statements in your `.proto` files, which you can confirm by running `pants dependencies path/to/file.proto`. You should also see the `python_requirement` target for the `protobuf` library from the previous step. If you want gRPC code generated for all files in the folder, set `grpc=True`. -```python title="src/proto/example/BUILD" +```python src/proto/example/BUILD protobuf_sources( name="protos", grpc=True, @@ -95,7 +94,7 @@ protobuf_sources( If you only want gRPC generated for some files in the folder, you can use the `overrides` field: -```python title="src/proto/example/BUILD" +```python src/proto/example/BUILD protobuf_sources( name="protos", overrides={ @@ -110,7 +109,7 @@ protobuf_sources( Now, you can import the generated Python module in your Python code. For example, to import `project/example/f.proto`, add `import project.example.f_pb2` to your code. -If you have [source roots](../../using-pants/key-concepts/source-roots.mdx) other than the repository root, remove the source root from the import. For example, `src/protos/example/f.proto` gets stripped to `import example.f_pb2`. See the below section on source roots for more info. +If you have [source roots](doc:source-roots) other than the repository root, remove the source root from the import. For example, `src/protos/example/f.proto` gets stripped to `import example.f_pb2`. See the below section on source roots for more info. Pants's dependency inference will detect Python imports of Protobuf modules, which you can confirm by running `pants dependencies path/to/file.py`. @@ -121,27 +120,27 @@ from project.example.f_pb2 import HelloReply from project.example.f_pb2_grcp import GreeterServicer ``` -:::note Run `pants export-codegen ::` to inspect the files -`pants export-codegen ::` will run all relevant code generators and write the files to `dist/codegen` using the same paths used normally by Pants. - -You do not need to run this goal for codegen to work when using Pants; `export-codegen` is only for external consumption outside of Pants. -::: +> 📘 Run `pants export-codegen ::` to inspect the files +> +> `pants export-codegen ::` will run all relevant code generators and write the files to `dist/codegen` using the same paths used normally by Pants. +> +> You do not need to run this goal for codegen to work when using Pants; `export-codegen` is only for external consumption outside of Pants. -:::caution You likely need to add empty `__init__.py` files -By default, Pants will generate the Python files in the same directory as the `.proto` file. To get Python imports working properly, you will likely need to add an empty `__init__.py` in the same location, and possibly in ancestor directories. - -See the below section "Protobuf and source roots" for how to generate into a different directory. If you use this option, you will still likely need an empty `__init__.py` file in the destination directory. -::: +> 🚧 You likely need to add empty `__init__.py` files +> +> By default, Pants will generate the Python files in the same directory as the `.proto` file. To get Python imports working properly, you will likely need to add an empty `__init__.py` in the same location, and possibly in ancestor directories. +> +> See the below section "Protobuf and source roots" for how to generate into a different directory. If you use this option, you will still likely need an empty `__init__.py` file in the destination directory. ## Protobuf and source roots -By default, generated code goes into the same [source root](../../using-pants/key-concepts/source-roots.mdx) as the `.proto` file from which it was generated. For example, a file `src/proto/example/f.proto` will generate `src/proto/example/f_pb2.py`. +By default, generated code goes into the same [source root](doc:source-roots) as the `.proto` file from which it was generated. For example, a file `src/proto/example/f.proto` will generate `src/proto/example/f_pb2.py`. However, this may not always be what you want. In particular, you may not want to have to add `__init__py` files under `src/proto` just so you can import Python code generated to that source root. You can configure a different source root for generated code by setting the `python_source_root` field: -```python title="src/proto/example/BUILD" +```python src/proto/example/BUILD protobuf_sources( name="protos", python_source_root='src/python' @@ -150,26 +149,26 @@ protobuf_sources( Now `src/proto/example/f.proto` will generate `src/python/example/f_pb2.py`, i.e., the generated files will share a source root with your other Python code. -:::note Set the `.proto` file's `package` relative to the source root -Remember that the `package` directive in your `.proto` file should be relative to the source root. - -For example, if you have a file at `src/proto/example/subdir/f.proto`, you'd set its `package` to `example.subdir`; and in your Python code, `from example.subdir import f_pb2`. -::: +> 📘 Set the `.proto` file's `package` relative to the source root +> +> Remember that the `package` directive in your `.proto` file should be relative to the source root. +> +> For example, if you have a file at `src/proto/example/subdir/f.proto`, you'd set its `package` to `example.subdir`; and in your Python code, `from example.subdir import f_pb2`. ## Multiple resolves -If you're using [multiple resolves](../python-overview/third-party-dependencies.mdx) (i.e. multiple lockfiles), then you may need to set the `python_resolve` field. `protobuf_source` targets only work with a single resolve, meaning, for example, that a `python_source` target that uses the resolve 'a' can only depend on Protobuf targets that also uses this same resolve. +If you're using [multiple resolves](doc:python-third-party-dependencies) (i.e. multiple lockfiles), then you may need to set the `python_resolve` field. `protobuf_source` targets only work with a single resolve, meaning, for example, that a `python_source` target that uses the resolve 'a' can only depend on Protobuf targets that also uses this same resolve. By default, `protobuf_source` / `protobuf_sources` targets use the resolve set by the option `[python].default_resolve`. To use a different resolve, set the field `python_resolve: str` to one of the values from the option `[python].resolves`. You must also make sure that any resolves that use codegen include `python_requirement` targets for the `protobuf` and `grpcio` runtime libraries from Step 2. Pants will eagerly validate this for you. If the same Protobuf files should work with multiple resolves, you can use the -[`parametrize`](../../using-pants/key-concepts/targets-and-build-files.mdx#parametrizing-targets) mechanism. +[`parametrize`](doc:targets#parametrizing-targets) mechanism. For example: -```python title="BUILD" +```python BUILD python_requirement( name="protobuf", # Here, we use the same version of Protobuf in both resolves. You could instead create @@ -190,7 +189,7 @@ Pants integrates with the [`Buf`](https://buf.build/blog/introducing-buf-format) To activate, add this to `pants.toml`: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] backend_packages = [ "pants.backend.codegen.protobuf.lint.buf", diff --git a/versioned_docs/version-2.18/docs/python/integrations/pyoxidizer.mdx b/versioned_docs/version-2.18/docs/markdown/Python/python-integrations/pyoxidizer.md similarity index 69% rename from versioned_docs/version-2.18/docs/python/integrations/pyoxidizer.mdx rename to versioned_docs/version-2.18/docs/markdown/Python/python-integrations/pyoxidizer.md index 1b33e48cd..1f445a33a 100644 --- a/versioned_docs/version-2.18/docs/python/integrations/pyoxidizer.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Python/python-integrations/pyoxidizer.md @@ -1,13 +1,12 @@ --- - title: PyOxidizer - sidebar_position: 4 +title: "PyOxidizer" +slug: "pyoxidizer" +excerpt: "Creating Python binaries through PyOxidizer." +hidden: false +createdAt: "2022-02-04T18:41:48.950Z" --- -Creating Python binaries through PyOxidizer. - ---- - -PyOxidizer allows you to distribute your code as a single binary file, similar to [Pex files](../python-overview/pex-files.mdx). Unlike Pex, these binaries include a Python interpreter, often greatly simplifying distribution. +PyOxidizer allows you to distribute your code as a single binary file, similar to [Pex files](doc:pex-files). Unlike Pex, these binaries include a Python interpreter, often greatly simplifying distribution. See our blog post on [Packaging Python with the Pants PyOxidizer Plugin](https://blog.pantsbuild.org/packaging-python-with-the-pyoxidizer-pants-plugin/) for more discussion of the benefits of PyOxidizer. @@ -15,7 +14,7 @@ See our blog post on [Packaging Python with the Pants PyOxidizer Plugin](https:/ Add this to your `pants.toml`: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] backend_packages.add = [ "pants.backend.experimental.python.packaging.pyoxidizer", @@ -25,19 +24,19 @@ backend_packages.add = [ This adds the new `pyoxidizer_binary` target, which you can confirm by running `pants help pyoxidizer_binary`. -:::caution This backend is experimental -We are still discovering the best ways to provide PyOxidizer support, such as how to make our [default template more useful](https://github.com/pantsbuild/pants/pull/14183/files#r788253973). This backend does not follow the normal [deprecation policy](../../releases/deprecation-policy.mdx), although we will do our best to minimize breaking changes. - -We would [love your feedback](/community/getting-help) on this backend! -::: +> 🚧 This backend is experimental +> +> We are still discovering the best ways to provide PyOxidizer support, such as how to make our [default template more useful](https://github.com/pantsbuild/pants/pull/14183/files#r788253973). This backend does not follow the normal [deprecation policy](doc:deprecation-policy), although we will do our best to minimize breaking changes. +> +> We would [love your feedback](doc:getting-help) on this backend! ## Step 2: Define a `python_distribution` target The `pyoxidizer_binary` target works by pointing to a `python_distribution` target with the code you want included. Pants then passes the distribution to PyOxidizer to install it as a binary. -So, to get started, create a `python_distribution` target per [Building distributions](../python-overview/building-distributions.mdx). +So, to get started, create a `python_distribution` target per [Building distributions](doc:python-distributions). -```python title="project/BUILD" +```python project/BUILD python_sources(name="lib") python_distribution( @@ -51,9 +50,9 @@ The `python_distribution` must produce at least one wheel (`.whl`) file. If you ## Step 3: Define a `pyoxidizer_binary` target -Now, create a `pyoxidizer_binary` target and set the `dependencies` field to the [address](../../using-pants/key-concepts/targets-and-build-files.mdx) of the `python_distribution` you created previously. +Now, create a `pyoxidizer_binary` target and set the `dependencies` field to the [address](doc:targets) of the `python_distribution` you created previously. -```python title="project/BUILD" +```python project/BUILD pyoxidizer_binary( name="bin", dependencies=[":dist"], @@ -110,38 +109,38 @@ For example: Hello, world! ``` -By default, with the `package` goal, Pants will write the package using this scheme: `dist/{path.to.tgt_dir}/{tgt_name}/{platform}/{debug,release}/install/{tgt_name}`. You can change the first part of this path by setting the `output_path` field, although you risk name collisions with other `pyoxidizer_binary` targets in your project. See [pyoxidizer_binary](../../../reference/targets/pyoxidizer_binary.mdx) for more info. +By default, with the `package` goal, Pants will write the package using this scheme: `dist/{path.to.tgt_dir}/{tgt_name}/{platform}/{debug,release}/install/{tgt_name}`. You can change the first part of this path by setting the `output_path` field, although you risk name collisions with other `pyoxidizer_binary` targets in your project. See [pyoxidizer_binary](doc:reference-pyoxidizer_binary) for more info. -:::caution `debug` vs `release` builds -By default, PyOxidizer will build with Rust's "debug" mode, which results in much faster compile times but means that your binary will be slower to run. Instead, you can instruct PyOxidizer to build in [release mode](https://nnethercote.github.io/perf-book/build-configuration.html#release-builds) by adding this to `pants.toml`: - -```toml -[pyoxidizer] -args = ["--release"] -``` - -Or by using the command line flag `pants --pyoxidizer-args='--release' package path/to:tgt`. -::: +> 🚧 `debug` vs `release` builds +> +> By default, PyOxidizer will build with Rust's "debug" mode, which results in much faster compile times but means that your binary will be slower to run. Instead, you can instruct PyOxidizer to build in [release mode](https://nnethercote.github.io/perf-book/build-configuration.html#release-builds) by adding this to `pants.toml`: +> +> ```toml +> [pyoxidizer] +> args = ["--release"] +> ``` +> +> Or by using the command line flag `pants --pyoxidizer-args='--release' package path/to:tgt`. ## Advanced use cases -:::tip Missing functionality? Let us know! -We would like to keep improving Pants's PyOxidizer support. We encourage you to let us know what features are missing through [Slack or GitHub](/community/getting-help)! -::: - -:::caution `[python-repos]` not yet supported for custom indexes -Currently, PyOxidizer can only resolve dependencies from PyPI and your first-party code. If you need support for custom indexes, please let us know by commenting on [https://github.com/pantsbuild/pants/issues/14619](https://github.com/pantsbuild/pants/issues/14619). +> 👍 Missing functionality? Let us know! +> +> We would like to keep improving Pants's PyOxidizer support. We encourage you to let us know what features are missing through [Slack or GitHub](doc:getting-help)! -(We'd be happy to help mentor someone through this change, although please still comment either way!) -::: +> 🚧 `[python-repos]` not yet supported for custom indexes +> +> Currently, PyOxidizer can only resolve dependencies from PyPI and your first-party code. If you need support for custom indexes, please let us know by commenting on . +> +> (We'd be happy to help mentor someone through this change, although please still comment either way!) ### `python_distribution`s that implicitly depend on each other -As explained at [Building distributions](../python-overview/building-distributions.mdx#mapping-source-files-to-distributions), Pants automatically detects when one `python_distribution` depends on another, and it will add that dependency to the `install_requires` for the distribution. +As explained at [Building distributions](doc:python-distributions#mapping-source-files-to-distributions), Pants automatically detects when one `python_distribution` depends on another, and it will add that dependency to the `install_requires` for the distribution. When this happens, PyOxidizer would naively try installing that first-party dependency from PyPI, which will likely fail. Instead, include all relevant `python_distribution` targets in the `dependencies` field of the `pyoxidizer_binary` target. -```python title="project/BUILD" +```python project/BUILD python_sources(name="lib") python_distribution( @@ -162,17 +161,17 @@ pyoxidizer_binary( ) ``` -```python title="project/main.py" +```python project/main.py from hellotest.utils.greeter import GREET print(GREET) ``` -```python title="project/utils/greeter.py" +```python project/utils/greeter.py GREET = 'Hello world!' ``` -```python title="project/utils/BUILD" +```python project/utils/BUILD python_sources(name="lib") python_distribution( diff --git a/versioned_docs/version-2.18/docs/markdown/Python/python-integrations/thrift-python.md b/versioned_docs/version-2.18/docs/markdown/Python/python-integrations/thrift-python.md new file mode 100644 index 000000000..cd99b0ce4 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Python/python-integrations/thrift-python.md @@ -0,0 +1,161 @@ +--- +title: "Thrift" +slug: "thrift-python" +excerpt: "How to generate Python from Thrift." +hidden: false +createdAt: "2022-02-04T18:42:02.513Z" +--- + +When your Python code imports Thrift generated files, Pants will detect the imports and run the Apache Thrift compiler to generate those files. + +> 📘 Example repository +> +> See [the codegen example repository](https://github.com/pantsbuild/example-codegen) for an example of using Thrift to generate Python. + +> 👍 Benefit of Pants: generated files are always up-to-date +> +> With Pants, there's no need to manually regenerate your code or check it into version control. Pants will ensure you are always using up-to-date files in your builds. +> +> Thanks to fine-grained caching, Pants will regenerate the minimum amount of code required when you do make changes. + +## Step 1: Activate the Thrift Python backend + +Add this to your `pants.toml`: + +```toml pants.toml +[GLOBAL] +backend_packages.add = [ + "pants.backend.codegen.thrift.apache.python", + "pants.backend.python", +] +``` + +You will also need to make sure that `thrift` is discoverable on your PATH, as Pants does not [install Thrift](https://thrift.apache.org/docs/install/) for you. Alternatively, you can tell Pants where to discover Thrift: + +```toml pants.toml +[apache-thrift] +# Defaults to the special string "", which expands to your $PATH. +thrift_search_paths = ["/usr/bin"] +``` + +This backend adds the new [`thrift_source`](doc:reference-thrift_source) target, which you can confirm by running `pants help thrift_source`. + +To reduce boilerplate, you can also use the [`thrift_sources`](doc:reference-thrift_sources) target, which generates one `thrift_source` target per file in the `sources` field. + +```python BUILD +thrift_sources(name="thrift", sources=["user.thrift", "admin.thrift"]) + +# Spiritually equivalent to: +thrift_source(name="user", source="user.thrift") +thrift_source(name="admin", source="admin.thrift") + +# Thanks to the default `sources` value of '*.thrift', spiritually equivalent to: +thrift_sources(name="thrift") +``` + +## Step 2: Set up the `thrift` runtime library + +Generated Python files require the [`thrift` dependency](https://pypi.org/project/thrift/) for their imports to work properly. + +Add `thrift` to your project, e.g. your `requirements.txt` (see [Third-party dependencies](doc:python-third-party-dependencies)). + +```text requirements.txt +thrift==0.15.0 +``` + +Pants will then automatically add these dependencies to your `thrift_sources` targets created in the next step. + +## Step 3: Generate `thrift_sources` target + +Run [`pants tailor ::`](doc:initial-configuration#5-generate-build-files) for Pants to create a `thrift_sources` target wherever you have `.thrift` files: + +``` +$ pants tailor :: +Created src/thrift/BUILD: + - Add thrift_sources target thrift +``` + +Pants will use [dependency inference](doc:targets) for any `import` statements in your `.thrift` files, which you can confirm by running `pants dependencies path/to/file.thrift`. You should also see the `python_requirement` target for the `thrift` library from the previous step. + +## Step 4: Confirm Python imports are working + +Now, you can import the generated Python modules in your Python code. + +For each Thrift file, the compiler will generate at least three files `__init__.py`, `ttypes.py`, and `constants.py`. The location of those files—and corresponding imports—depends on whether you set `namespace py` in your `.thrift` file: + +[block:parameters] +{ +"data": { +"h-0": "`namespace py`", +"h-1": "Behavior", +"h-2": "Example", +"0-0": "unset", +"0-1": "Files generated as top-level modules, without any prefix directories.", +"0-2": "`models/user.thrift` \n \nGenerated: \n \n- `__init__.py`\n- `user/__init__.py`\n- `user/constants.py`\n- `user/ttypes.py`Python import: \n`import user.ttypes`", +"1-0": "set", +"1-1": "Files generated into the namespace.", +"1-2": "`models/user.thrift`, with `namespace py custom_namespace.user` \n \nGenerated: \n \n- `__init__.py`\n- `custom_namespace/__init__.py`\n- `custom_namespace/user/__init__.py`\n- `custom_namespace/user/constants.py`\n- `custom_namespace/user/ttypes.py`Python import: \n`import custom_namespace.user.ttypes`" +}, +"cols": 3, +"rows": 2, +"align": [ +"left", +"left", +"left" +] +} +[/block] + +As shown in the table, your Python imports depend on whether the Thrift file uses `namespace py`. + +Imports behave the same regardless of whether you have [source roots](doc:source-roots), such as `src/thrift`. The import will still either be the top-level file like `user.ttypes` or the custom namespace. + +Pants's dependency inference will detect Python imports of Thrift modules, which you can confirm by running `pants dependencies path/to/file.py`. + +You can also [manually add](doc:targets) the dependency: + +```python src/py/BUILD +python_sources(dependencies=["models:models"]) +``` + +> 📘 TIp: set `namespace py` +> +> Pants can handle Thrift regardless of whether you set `namespace py`. +> +> However, it's often a good idea to set the namespace because it can make your imports more predictable and declarative. It also reduces the risk of your Thrift file names conflicting with other Python modules used, such as those from third-party requirements. +> +> For example, compare `import user.ttypes` to `import codegen.models.user.ttypes`. + +> 📘 Run `pants export-codegen ::` to inspect the files +> +> `pants export-codegen ::` will run all relevant code generators and write the files to `dist/codegen` using the same paths used normally by Pants. +> +> You do not need to run this goal for codegen to work when using Pants; `export-codegen` is only for external consumption outside of Pants. + +## Multiple resolves + +If you're using [multiple resolves](doc:python-third-party-dependencies) (i.e. multiple lockfiles), then you may need to set the `python_resolve` field. `thrift_source` targets only work with a single resolve, meaning, for example, that a `python_source` target that uses the resolve 'a' can only depend on Thrift targets that also uses this same resolve. + +By default, `thrift_source` / `thrift_sources` targets use the resolve set by the option `[python].default_resolve`. To use a different resolve, set the field `python_resolve: str` to one of the values from the option `[python].resolves`. + +You must also make sure that any resolves that use codegen include the `python_requirement` target for the `thrift` runtime library from Step 2. Pants will eagerly validate this for you. + +If the same Thrift files should work with multiple resolves, you can use the +[`parametrize`](doc:targets#parametrizing-targets) mechanism. + +For example: + +```python BUILD +python_requirement( + name="thrift-requirement", + # Here, we use the same version of Thrift in both resolves. You could instead create + # a distinct target per resolve so that they have different versions. + requirements=["thrift==0.15.0""], + resolve=parametrize("resolve-a", "resolve-b"), +) + +thrift_sources( + name="thrift", + python_resolve=parametrize("resolve-a", "resolve-b") +) +``` diff --git a/versioned_docs/version-2.18/docs/markdown/Python/python.md b/versioned_docs/version-2.18/docs/markdown/Python/python.md new file mode 100644 index 000000000..e7bfbda47 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Python/python.md @@ -0,0 +1,29 @@ +--- +title: "Python overview" +slug: "python" +hidden: false +createdAt: "2020-07-29T01:27:07.529Z" +--- + +The Python ecosystem has a great many tools for various features. Pants installs, configures, and invokes those tools for you, while taking care of orchestrating the workflow, caching results, and running concurrently. + +Pants currently supports the following goals and features for Python: + +| goal | underlying tools | +| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| dependency resolution | [`pip`](doc:python-third-party-dependencies) | +| test running | [`pytest`](doc:python-test-goal) | +| linting/formatting | [`black`](doc:reference-black), [`yapf`](doc:reference-yapf), [`flake8`](doc:reference-flake8), [`docformatter`](doc:reference-docformatter), [`pydocstyle`](doc:reference-pydocstyle) [`isort`](doc:reference-isort), [`pylint`](doc:reference-pylint), [`bandit`](doc:reference-bandit), [`autoflake`](doc:reference-autoflake), [`pyupgrade`](doc:reference-pyupgrade) | +| typechecking | [MyPy](doc:python-check-goal) | +| code generation | [Protobuf](doc:protobuf-python) (including the `gRPC` and `MyPy` plugins), [Thrift](doc:thrift-python) | +| packaging | [`setuptools`](doc:python-distributions), [`pex`](doc:python-package-goal), [PyOxidizer](doc:pyoxidizer), [AWS lambda](doc:awslambda-python), [Google Cloud Function](doc:google-cloud-function-python) | +| running a REPL | `python`, [`iPython`](doc:python-repl-goal) | + +There are also [goals](doc:project-introspection) for querying and understanding your dependency graph, and a robust [help system](doc:command-line-help). We're adding support for additional tools and features all the time, and it's straightforward to [implement your own](doc:plugins-overview). + +- [Enabling Python support](doc:python-backend) +- [Third-party dependencies](doc:python-third-party-dependencies) +- [Interpreter compatibility](doc:python-interpreter-compatibility) +- [Linters and formatters](doc:python-linters-and-formatters) +- [Pex files](doc:pex-files) +- [Building distributions](doc:python-distributions) diff --git a/versioned_docs/version-2.18/docs/python/python-overview/pex-files.mdx b/versioned_docs/version-2.18/docs/markdown/Python/python/pex-files.md similarity index 92% rename from versioned_docs/version-2.18/docs/python/python-overview/pex-files.mdx rename to versioned_docs/version-2.18/docs/markdown/Python/python/pex-files.md index a0740a5da..6ae8cb8d0 100644 --- a/versioned_docs/version-2.18/docs/python/python-overview/pex-files.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Python/python/pex-files.md @@ -1,8 +1,8 @@ --- - title: Pex files - sidebar_position: 5 ---- - +title: "Pex files" +slug: "pex-files" +hidden: false +createdAt: "2020-03-21T20:47:00.042Z" --- When working with Python code, Pants makes frequent use of the [Pex](https://github.com/pantsbuild/pex) (Python EXecutable) format. So, you'll see Pex referenced frequently in this documentation. diff --git a/versioned_docs/version-2.18/docs/markdown/Python/python/python-backend.md b/versioned_docs/version-2.18/docs/markdown/Python/python/python-backend.md new file mode 100644 index 000000000..95a8f1368 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Python/python/python-backend.md @@ -0,0 +1,70 @@ +--- +title: "Enabling Python support" +slug: "python-backend" +excerpt: "How to enable Pants's bundled Python backend package." +hidden: false +createdAt: "2020-03-02T22:39:55.355Z" +--- + +> 📘 Example Python repository +> +> See [here](https://github.com/pantsbuild/example-python) for examples of Pants's Python functionality. +> +> See [here](https://github.com/pantsbuild/example-django) for Django-specific examples. + +Enable the Python [backend](doc:enabling-backends) like this: + +```toml pants.toml +[GLOBAL] +... +backend_packages = [ + "pants.backend.python" +] +``` + +Pants use [`python_source`](doc:reference-python_source) and [`python_test`](doc:reference-python_test) targets to know which Python files to run on and to set any metadata. + +To reduce boilerplate, the [`python_sources`](doc:reference-python_sources) target generates a `python_source` target for each file in its `sources` field, and [`python_tests`](doc:reference-python_tests) generates a `python_test` target for each file in its `sources` field. + +```python BUILD +python_sources(name="lib", sources=["dirutil.py", "strutil.py"]) +python_tests(name="tests", sources=["strutil_test.py"]) + +# Spiritually equivalent to: +python_source(name="dirutil", source="dirutil.py") +python_source(name="strutil", source="strutil.py") +python_test(name="strutil_test.py", source="strutil_test.py") + +# Thanks to the default `sources` values, spiritually equivalent to: +python_sources(name="lib") +python_tests(name="tests") +``` + +You can generate these targets by running [`pants tailor ::`](doc:initial-configuration#5-generate-build-files). + +``` +❯ pants tailor :: +Created project/BUILD: + - Add python_sources target project + - Add python_tests target tests +``` + +> 🚧 macOS users: you may need to change interpreter search paths +> +> By default, Pants will look at both your `$PATH` and—if you use Pyenv—your `$(pyenv root)/versions` folder when discovering Python interpreters. Your `$PATH` likely includes the system Pythons at `/usr/bin/python` and `/usr/bin/python3`, which are known to have many issues like failing to install some dependencies. +> +> Pants will prefer new Python versions, like 3.6.10 over 3.6.3. Because macOS system Pythons are usually very old, they will usually be ignored. +> +> However, if you run into issues, you can set the `search_paths` option in the `[python-bootstrap]` scope: +> +> ```toml +> [python-bootstrap] +> search_path = [ +> # This will use all interpreters in `$(pyenv root)/versions`. +> "", +> # Brew usually installs Python here. +> "/usr/local/bin", +> ] +> ``` +> +> See [here](doc:python-interpreter-compatibility#changing-the-interpreter-search-path) for more information. diff --git a/versioned_docs/version-2.18/docs/python/python-overview/building-distributions.mdx b/versioned_docs/version-2.18/docs/markdown/Python/python/python-distributions.md similarity index 68% rename from versioned_docs/version-2.18/docs/python/python-overview/building-distributions.mdx rename to versioned_docs/version-2.18/docs/markdown/Python/python/python-distributions.md index f1571a78a..d378f36c2 100644 --- a/versioned_docs/version-2.18/docs/python/python-overview/building-distributions.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Python/python/python-distributions.md @@ -1,19 +1,18 @@ --- - title: Building distributions - sidebar_position: 6 ---- - -Packaging your code into an sdist or a wheel. - +title: "Building distributions" +slug: "python-distributions" +excerpt: "Packaging your code into an sdist or a wheel." +hidden: false +createdAt: "2020-03-16T16:19:55.626Z" --- A standard packaging format for Python code is the _distribution_: an archive that is published to a package index such as [PyPI](https://pypi.org/), and can be installed by [pip](https://packaging.python.org/key_projects/#pip). The two standard distribution archive types are [sdists](https://packaging.python.org/overview/#python-source-distributions) and [wheels](https://packaging.python.org/overview/#python-binary-distributions). This page explains how to use Pants to build distributions from your code. -:::tip Benefit of Pants: multiple distributions from a single repository -Typically, repositories without sophisticated tooling end up building a single distribution which includes the entire repo. But Pants makes it easy to create multiple distributions from the same repository. -::: +> 👍 Benefit of Pants: multiple distributions from a single repository +> +> Typically, repositories without sophisticated tooling end up building a single distribution which includes the entire repo. But Pants makes it easy to create multiple distributions from the same repository. ## Background: setuptools and PEP 517 @@ -29,13 +28,13 @@ If there is no `pyproject.toml` with a `[build-system]` table available, Pants f ## The `python_distribution` target -You configure a distribution using a [`python_distribution`](../../../reference/targets/python_distribution.mdx) target. This target provides Pants with the information needed to build the distribution. +You configure a distribution using a [`python_distribution`](doc:reference-python_distribution) target. This target provides Pants with the information needed to build the distribution. ### PEP 517 If using a PEP 517 `pyproject.toml` file, you might have a target layout similar to this: -```python title="example/dists/BUILD" +```python example/dists/BUILD resource(name="pyproject", source="pyproject.toml") python_distribution( @@ -67,7 +66,7 @@ If you want to build just a wheel or just an sdist, you can set `sdist=False` or If relying on legacy Setuptools behavior, you don't have a `pyproject.toml` resource, so your target is simply: -```python title="example/dists/BUILD" +```python example/dists/BUILD python_distribution( name="mydist", dependencies=[ @@ -83,9 +82,9 @@ python_distribution( Running `pants package example/dists:mydist` will cause Pants to run Setuptools, which will in turn run the `setup.py` script in the `python_distribution` target's directory. If no such script exists, Pants can generate one for you (see below). -:::note See `package` for other package formats -This page focuses on building sdists and wheels with the `pants package` goal. See [package](../goals/package.mdx) for information on other formats that can be built with `pants package`, such as PEX binaries and zip/tar archives. -::: +> 📘 See `package` for other package formats +> +> This page focuses on building sdists and wheels with the `pants package` goal. See [package](doc:python-package-goal) for information on other formats that can be built with `pants package`, such as PEX binaries and zip/tar archives. ## setup.py @@ -97,13 +96,13 @@ By default, Pants will generate a `setup.py` for every `python_distribution` tar So if you expect to use handwritten `setup.py` scripts for most distributions in your repo, you probably want to set `generate-setup-default = false` and override it as needed. If you expect to mostly use generated `setup.py` scripts, you can set `generate-setup-default = true` (or just not set it, since that is the default). -:::note 3rdparty requirements in `setup.py` -If you use a handwritten `setup.py`, the generated distribution will have requirements on the packages you list in the `install_requires` key, as expected. But Pants will not automatically use those as dependencies of the underlying sources, e.g., when running tests. They are strictly used when generating a distribution. - -Instead, the "universe" of possible requirements of your source files must be specified as described [here](./third-party-dependencies.mdx), and Pants will use dependency inference to select an appropriate subset as needed. - -If Pants generates a `setup.py` for you then the `install_requires` value will be generated from the actual requirements of your source files. -::: +> 📘 3rdparty requirements in `setup.py` +> +> If you use a handwritten `setup.py`, the generated distribution will have requirements on the packages you list in the `install_requires` key, as expected. But Pants will not automatically use those as dependencies of the underlying sources, e.g., when running tests. They are strictly used when generating a distribution. +> +> Instead, the "universe" of possible requirements of your source files must be specified as described [here](doc:python-third-party-dependencies), and Pants will use dependency inference to select an appropriate subset as needed. +> +> If Pants generates a `setup.py` for you then the `install_requires` value will be generated from the actual requirements of your source files. ## Using a generated `setup.py` @@ -111,7 +110,7 @@ Much of the data you would normally put in a `setup.py` file is already known to In this case, you may want to add some information to the `provides= ` field in the `python_distribution` target, for Pants to place in the generated `setup.py`: -```python title="example/dists/BUILD" +```python example/dists/BUILD python_distribution( name="mydist", dependencies=[ @@ -136,36 +135,36 @@ You can use almost any [keyword argument](https://packaging.python.org/guides/di However, you cannot use `data_files`, `install_requires`, `namespace_packages`, `package_dir`, `package_data`, or `packages` because Pants will generate these for you, based on the data derived from your code and dependencies. -:::note Use the `entry_points` field to register entry points like `console_scripts` -The [`entry_points` field](../../../reference/targets/python_distribution.mdx#codeentry_pointscode) allows you to configure [setuptools-style entry points](https://packaging.python.org/specifications/entry-points/#entry-points-specification): - -```python -python_distribution( -name="my-dist", -entry_points={ -"console_scripts": {"some-command": "project.app:main"}, -"flake8_entry_point": { -"PB1": "my_flake8_plugin:Plugin", -"PB2": "my_flake8_plugin:AnotherPlugin", -}, -provides=python_artifact(...), -) -``` - -Pants will infer dependencies on each entry point, which you can confirm by running `pants dependencies path/to:python_dist`. - -In addition to using the format `path.to.module:func`, you can use an [address](../../using-pants/key-concepts/targets-and-build-files.mdx) to a `pex_binary` target, like `src/py/project:pex_binary` or `:sibling_pex_binary`. Pants will use the `entry_point` already specified by the `pex_binary`, and it will infer a dependency on the `pex_binary` target. This allows you to better DRY your project's entry points. -::: - -:::note Consider writing a plugin to dynamically generate the `setup()` keyword arguments -You may want to write a plugin to do any of these things: - -- Reduce boilerplate by hardcoding common arguments and commands. -- Read from the file system to dynamically determine kwargs, such as the `long_description` or `version`. -- Run processes like Git to dynamically determine the `version` kwarg. - -Start by reading about the [Plugin API](../../writing-plugins/plugins-overview.mdx), then refer to the [Custom `python_artifact()` kwargs](../../writing-plugins/common-plugin-tasks/custom-python-artifact-kwargs.mdx) instructions. -::: +> 📘 Use the `entry_points` field to register entry points like `console_scripts` +> +> The [`entry_points` field](doc:reference-python_distribution#codeentry_pointscode) allows you to configure [setuptools-style entry points](https://packaging.python.org/specifications/entry-points/#entry-points-specification): +> +> ```python +> python_distribution( +> name="my-dist", +> entry_points={ +> "console_scripts": {"some-command": "project.app:main"}, +> "flake8_entry_point": { +> "PB1": "my_flake8_plugin:Plugin", +> "PB2": "my_flake8_plugin:AnotherPlugin", +> }, +> provides=python_artifact(...), +> ) +> ``` +> +> Pants will infer dependencies on each entry point, which you can confirm by running `pants dependencies path/to:python_dist`. +> +> In addition to using the format `path.to.module:func`, you can use an [address](doc:targets) to a `pex_binary` target, like `src/py/project:pex_binary` or `:sibling_pex_binary`. Pants will use the `entry_point` already specified by the `pex_binary`, and it will infer a dependency on the `pex_binary` target. This allows you to better DRY your project's entry points. + +> 📘 Consider writing a plugin to dynamically generate the `setup()` keyword arguments +> +> You may want to write a plugin to do any of these things: +> +> - Reduce boilerplate by hardcoding common arguments and commands. +> - Read from the file system to dynamically determine kwargs, such as the `long_description` or `version`. +> - Run processes like Git to dynamically determine the `version` kwarg. +> +> Start by reading about the [Plugin API](doc:plugins-overview), then refer to the [Custom `python_artifact()` kwargs](doc:plugins-setup-py) instructions. ## Mapping source files to distributions @@ -192,21 +191,21 @@ This algorithm implies that all source files published by a distribution must be The generated `setup.py` will have its `install_requires` set to include the 3rdparty dependencies of the code bundled in the distribution, plus any other distributions from your own repo. For example, if distribution D1 contains code that has a dependency on some source file S, and that source file is published in distribution D2, then D1's requirements will include a dependency on D2. In other words, Pants does the right thing. -:::note Changing the versioning scheme for first-party dependencies -When a `python_distribution` depends on another `python_distribution`, Pants will add it to the `install_requires` value in the generated `setup.py`. - -By default, Pants will use exact requirements for first-party dependencies, like `other_dist==1.0.1`. You can set `first_party_dependency_version_scheme` in the `[setup-py-generation]` scope to `'compatible'` to use `~=` instead of `==`, and `any` to leave off the version. - -For example: - -```toml -[setup-py-generation] -first_party_dependency_version_scheme = "compatible" -``` - -See [https://www.python.org/dev/peps/pep-0440/#version-specifiers](https://www.python.org/dev/peps/pep-0440/#version-specifiers) for more information on the `~=` specifier. -::: - -:::note How to publish your distributions to a package index -See [publish](../goals/publish.mdx) for how to use Pants to publish distributions using Twine. -::: +> 📘 Changing the versioning scheme for first-party dependencies +> +> When a `python_distribution` depends on another `python_distribution`, Pants will add it to the `install_requires` value in the generated `setup.py`. +> +> By default, Pants will use exact requirements for first-party dependencies, like `other_dist==1.0.1`. You can set `first_party_dependency_version_scheme` in the `[setup-py-generation]` scope to `'compatible'` to use `~=` instead of `==`, and `any` to leave off the version. +> +> For example: +> +> ```toml +> [setup-py-generation] +> first_party_dependency_version_scheme = "compatible" +> ``` +> +> See for more information on the `~=` specifier. + +> 📘 How to publish your distributions to a package index +> +> See [publish](doc:python-publish-goal) for how to use Pants to publish distributions using Twine. diff --git a/versioned_docs/version-2.18/docs/python/python-overview/interpreter-compatibility.mdx b/versioned_docs/version-2.18/docs/markdown/Python/python/python-interpreter-compatibility.md similarity index 59% rename from versioned_docs/version-2.18/docs/python/python-overview/interpreter-compatibility.mdx rename to versioned_docs/version-2.18/docs/markdown/Python/python/python-interpreter-compatibility.md index da3a85454..b56125868 100644 --- a/versioned_docs/version-2.18/docs/python/python-overview/interpreter-compatibility.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Python/python/python-interpreter-compatibility.md @@ -1,17 +1,16 @@ --- - title: Interpreter compatibility - sidebar_position: 3 ---- - -How to configure which Python version(s) your project should use. - +title: "Interpreter compatibility" +slug: "python-interpreter-compatibility" +excerpt: "How to configure which Python version(s) your project should use." +hidden: false +createdAt: "2020-04-30T20:06:44.249Z" --- ## Setting the default Python version Configure your default Python interpreter compatibility constraints in `pants.toml` like this: -```toml title="pants.toml" +```toml pants.toml [python] interpreter_constraints = ["CPython==3.11.*"] ``` @@ -27,9 +26,9 @@ The value can be any valid Requirement-style strings. You can use multiple strin As a shortcut, you can leave off `CPython` and just put the version specifier. For example, `==3.8` will be expanded automatically to `CPython==3.8`. -:::note Using Apple Silicon (M1/M2)? -If you use Python code on Apple's M1/M2 hardware you may need to set your interpreter constraints to Python 3.9+, as many tools, such as Black, will not install correctly on earlier Python versions on this platform. -::: +> 📘 Using Apple Silicon (M1/M2)? +> +> If you use Python code on Apple's M1/M2 hardware you may need to set your interpreter constraints to Python 3.9+, as many tools, such as Black, will not install correctly on earlier Python versions on this platform. ## Using multiple Python versions in the same project @@ -37,7 +36,7 @@ Pants also allows you to specify the interpreter compatibility for particular ta Use the `interpreter_constraints` field on a Python target, like this: -```python title="BUILD" +```python BUILD python_sources( name="python2_target", interpreter_constraints=["==2.7.*"], @@ -48,7 +47,7 @@ If `interpreter_constraints` is left off, the target will default to the value f To only change the interpreter constraints for a few files, you can use the `overrides` field: -```python title="BUILD" +```python BUILD python_sources( name="lib", overrides={ @@ -70,27 +69,26 @@ precise constraints like `['==3.7.*']`. It is often useful for helper code to wo Python versions, while specific "root" targets (tests, apps, and binaries) have more specific constraints. -:::caution Pants cannot validate that your interpreter constraints are accurate -Pants accepts your interpreter constraints at face value. If you use a constraint like `'>=3.6'`, Pants will trust you that your code indeed works with any interpreter >= 3.6, as Pants has no way to audit if your code is actually compatible. - -Instead, consider running your unit tests with every Python version you claim to support to ensure that your code really is compatible: - -```python -python_test( -source="util_test.py", -interpreter_constraints=parametrize(py2=["==2.7.*"], py3=["==3.6.*"]), -) -``` - -::: - -When you `parametrize` constraints, Pants will generate multiple targets, one for each constraint, allowing you to test multiple python versions with a single command. This is somewhat similar to "matrix testing". See [Target Generation](../../using-pants/key-concepts/targets-and-build-files.mdx#parametrizing-targets) for more details. +> 🚧 Pants cannot validate that your interpreter constraints are accurate +> +> Pants accepts your interpreter constraints at face value. If you use a constraint like `'>=3.6'`, Pants will trust you that your code indeed works with any interpreter >= 3.6, as Pants has no way to audit if your code is actually compatible. +> +> Instead, consider running your unit tests with every Python version you claim to support to ensure that your code really is compatible: +> +> ```python +> python_test( +> source="util_test.py", +> interpreter_constraints=parametrize(py2=["==2.7.*"], py3=["==3.6.*"]), +> ) +> ``` + +When you `parametrize` constraints, Pants will generate multiple targets, one for each constraint, allowing you to test multiple python versions with a single command. This is somewhat similar to "matrix testing". See [Target Generation](doc:targets#parametrizing-targets) for more details. ### Tip: activate `pants.backend.python.mixed_interpreter_constraints` We recommend adding `pants.backend.python.mixed_interpreter_constraints` to `backend_packages` in the `[GLOBAL]` scope, which will add the new goal `py-constraints`. -```toml title="pants.toml" +```toml pants.toml [GLOBAL] backend_packages = [ "pants.backend.python", @@ -119,25 +117,34 @@ CPython==2.7.* OR CPython>=3.5 You can run `pants py-constraints --summary` for Pants to generate a CSV giving an overview of your project's interpreter constraints: - - Result of `pants py-constraints --summary`, then importing the CSV into Google - Sheets. - +[block:image] +{ +"images": [ +{ +"image": [ +"https://files.readme.io/8ebc968-Screen_Shot_2020-11-12_at_9.19.56_AM.png", +"Screen Shot 2020-11-12 at 9.19.56 AM.png" +], +"caption": "Result of `pants py-constraints --summary`, then importing the CSV into Google Sheets." +} +] +} +[/block] We recommend then importing this CSV into a tool like Pandas or Excel to filter/sort the data. The `# Dependents` column is useful to see how impactful it is to port a file, and the `# Dependencies` can be useful to see how easy it would be to port. -:::note Tips for Python 2 -> Python 3 migrations -While every project will have different needs and scope, there are a few best practices with Pants that will allow for a more successful migration. - -- Start by setting the `interpreter_constraints` option in `[python]` to describe the status of the majority of your targets. If most are only compatible with Python 2, set it to `['==2.7.*']`. If most are compatible with Python 2 _and_ Python 3, set to `['==2.7', '>=3.5']`. If most are only compatible with Python 3, set to `[>=3.5]`. For any targets that don't match these global constraints, override with the `interpreter_constraints` field. -- Run `pants py-constraints --summary` and sort by `# Dependents` from Z to A to find your most-used files. Focus on getting these targets to be compatible with Python 2 and 3. You may want to also sub-sort the CSV by `# Dependencies` to find what is easiest to port. -- Once >40% of your targets work with both Python 2 and Python 3, change the `interpreter_constraints` option in `[python]` to specify compatibility with both Python 2.7 and Python 3 so that all new code uses this by default. -- For files with no or few dependencies, change them to Python 3-only when possible so that you can start using all the neat new Python 3 features like f-strings! Use the CSV from `pants py-constraints --summary` to find these. You can also do this if every dependent target works exclusively with Python 3, which you can find by the `Transitive Constraints` column and by running `pants py-constraints path/to/file.py`. - -Check out [this blog post](https://enterprise.foursquare.com/intersections/article/how-our-intern-led-pants-migration-to-python-3/) on Pants' own migration to Python 3 in 2019 for more general tips on Python 3 migrations. -::: +> 📘 Tips for Python 2 -> Python 3 migrations +> +> While every project will have different needs and scope, there are a few best practices with Pants that will allow for a more successful migration. +> +> - Start by setting the `interpreter_constraints` option in `[python]` to describe the status of the majority of your targets. If most are only compatible with Python 2, set it to `['==2.7.*']`. If most are compatible with Python 2 _and_ Python 3, set to `['==2.7', '>=3.5']`. If most are only compatible with Python 3, set to `[>=3.5]`. For any targets that don't match these global constraints, override with the `interpreter_constraints` field. +> - Run `pants py-constraints --summary` and sort by `# Dependents` from Z to A to find your most-used files. Focus on getting these targets to be compatible with Python 2 and 3. You may want to also sub-sort the CSV by `# Dependencies` to find what is easiest to port. +> - Once >40% of your targets work with both Python 2 and Python 3, change the `interpreter_constraints` option in `[python]` to specify compatibility with both Python 2.7 and Python 3 so that all new code uses this by default. +> - For files with no or few dependencies, change them to Python 3-only when possible so that you can start using all the neat new Python 3 features like f-strings! Use the CSV from `pants py-constraints --summary` to find these. You can also do this if every dependent target works exclusively with Python 3, which you can find by the `Transitive Constraints` column and by running `pants py-constraints path/to/file.py`. +> +> Check out [this blog post](https://enterprise.foursquare.com/intersections/article/how-our-intern-led-pants-migration-to-python-3/) on Pants' own migration to Python 3 in 2019 for more general tips on Python 3 migrations. ## Changing the interpreter search path @@ -153,7 +160,7 @@ You can specify absolute paths to interpreter binaries and/or to directories con For example: -```toml title="pants.toml" +```toml pants.toml [python-bootstrap] search_path = ["", "/opt/python3"] ``` diff --git a/versioned_docs/version-2.18/docs/python/python-overview/linters-and-formatters.mdx b/versioned_docs/version-2.18/docs/markdown/Python/python/python-linters-and-formatters.md similarity index 76% rename from versioned_docs/version-2.18/docs/python/python-overview/linters-and-formatters.mdx rename to versioned_docs/version-2.18/docs/markdown/Python/python/python-linters-and-formatters.md index f272eaee7..b3041c43b 100644 --- a/versioned_docs/version-2.18/docs/python/python-overview/linters-and-formatters.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Python/python/python-linters-and-formatters.md @@ -1,30 +1,28 @@ --- - title: Linters and formatters - sidebar_position: 4 +title: "Linters and formatters" +slug: "python-linters-and-formatters" +excerpt: "How to activate and use the Python linters and formatters bundled with Pants." +hidden: false +createdAt: "2020-03-03T00:57:15.994Z" --- -How to activate and use the Python linters and formatters bundled with Pants. +> 👍 Benefit of Pants: consistent interface +> +> `pants lint` and `pants fmt` will consistently and correctly run all your linters and formatters. No need to remember how to invoke each tool, and no need to write custom scripts. +> +> This consistent interface even works with multiple languages, like running Python linters at the same time as Go, Shell, Java, and Scala. ---- - -:::tip Benefit of Pants: consistent interface -`pants lint` and `pants fmt` will consistently and correctly run all your linters and formatters. No need to remember how to invoke each tool, and no need to write custom scripts. - -This consistent interface even works with multiple languages, like running Python linters at the same time as Go, Shell, Java, and Scala. -::: - -:::tip Benefit of Pants: concurrency -Pants does several things to speed up running formatters and linters: - -- Automatically configures tools that support concurrency (e.g. a `--jobs` option) based on your number of cores and what else is already running. -- Runs everything in parallel with the `lint` goal (although not the `fmt` goal, which pipes the results of one formatter to the next for correctness). -- Runs in batches of 256 files by default, which gives parallelism even for tools that don't have a `--jobs` option. This also increases cache reuse. - -::: +> 👍 Benefit of Pants: concurrency +> +> Pants does several things to speed up running formatters and linters: +> +> - Automatically configures tools that support concurrency (e.g. a `--jobs` option) based on your number of cores and what else is already running. +> - Runs everything in parallel with the `lint` goal (although not the `fmt` goal, which pipes the results of one formatter to the next for correctness). +> - Runs in batches of 256 files by default, which gives parallelism even for tools that don't have a `--jobs` option. This also increases cache reuse. ## Activating linters and formatters -Linter/formatter support is implemented in separate [backends](../../using-pants/key-concepts/backends.mdx) so that they are easy to opt in to individually: +Linter/formatter support is implemented in separate [backends](doc:enabling-backends) so that they are easy to opt in to individually: | Backend | Tool | | :-------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | @@ -42,7 +40,7 @@ Linter/formatter support is implemented in separate [backends](../../using-pants To enable, add the appropriate backends in `pants.toml`: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] ... backend_packages = [ @@ -68,25 +66,25 @@ All done! ✨ 🍰 ✨ ✓ isort succeeded. ``` -:::note How to activate MyPy -MyPy is run with the [check goal](../goals/check.mdx), rather than `lint`. -::: +> 📘 How to activate MyPy +> +> MyPy is run with the [check goal](doc:python-check-goal), rather than `lint`. ## Configuring the tools, for example, adding plugins You can configure each formatter and linter using these options: -| Option | What it does | -| :------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `interpreter_constraints` | What interpreter to run the tool with. (`bandit`, `flake8`, and `pylint` determine this based on your [code's interpreter constraints](./interpreter-compatibility.mdx).) | -| `args` | Any command-line arguments you want to pass to the tool. | -| `config` | Path to a config file. Useful if the file is in a non-standard location such that it cannot be auto-discovered. | -| `install_from_resolve` | Name of a custom resolve to use for tool versions and plugins. See [Lockfiles for tools](./lockfiles.mdx#lockfiles-for-tools). | -| `requirements` | Optional subset of requirements to install from the custom resolve for this formatter or linter. See [Lockfiles for tools](./lockfiles.mdx#lockfiles-for-tools). | +| Option | What it does | +| :------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `interpreter_constraints` | What interpreter to run the tool with. (`bandit`, `flake8`, and `pylint` determine this based on your [code's interpreter constraints](doc:python-interpreter-compatibility).) | +| `args` | Any command-line arguments you want to pass to the tool. | +| `config` | Path to a config file. Useful if the file is in a non-standard location such that it cannot be auto-discovered. | +| `install_from_resolve` | Name of a custom resolve to use for tool versions and plugins. See [Lockfiles for tools](doc:python-lockfiles#lockfiles-for-tools). | +| `requirements` | Optional subset of requirements to install from the custom resolve for this formatter or linter. See [Lockfiles for tools](doc:python-lockfiles#lockfiles-for-tools). | For example: -```toml title="pants.toml" +```toml pants.toml [docformatter] args = ["--wrap-summaries=100", "--wrap-descriptions=100"] @@ -102,21 +100,21 @@ install_from_resolve = "flake8" Then set up the resolve's inputs: -```python title="3rdparty/python/BUILD" +```python 3rdparty/python/BUILD python_requirements( source="flake8-requirements.txt", resolve="flake8", ) ``` -```Text title="3rdparty/python/flake8-requirements.txt" +```Text 3rdparty/python/flake8-requirements.txt flake8==6.0.0 flake8-bugbear>=23.3.23 ``` And generate its custom lockfile: -```shell title="Bash" +```shell Bash $ pants generate-lockfiles --resolve=flake8 16:00:39.26 [INFO] Completed: Generate lockfile for flake8 16:00:39.29 [INFO] Wrote lockfile for the resolve `flake8` to 3rdparty/python/flake8.lock @@ -124,11 +122,11 @@ $ pants generate-lockfiles --resolve=flake8 Run `pants help-advanced black`, `pants help-advanced flake8`, and so on for more information. -:::note Config files are normally auto-discovered -For tools that autodiscover config files—such as Black, isort, Flake8, and Pylint—Pants will include any relevant config files in the process's sandbox when running the tool. - -If your config file is in a non-standard location, you must instead set the `--config` option, e.g. `[isort].config`. This will ensure that the config file is included in the process's sandbox and Pants will instruct the tool to load the config. -::: +> 📘 Config files are normally auto-discovered +> +> For tools that autodiscover config files—such as Black, isort, Flake8, and Pylint—Pants will include any relevant config files in the process's sandbox when running the tool. +> +> If your config file is in a non-standard location, you must instead set the `--config` option, e.g. `[isort].config`. This will ensure that the config file is included in the process's sandbox and Pants will instruct the tool to load the config. ## Running only certain formatters or linters @@ -150,7 +148,7 @@ You can also use the `--lint-only` and `--fmt-only` options with the names of th You can also skip for certain targets with the `skip_` fields, which can be useful for [incrementally adopting new tools](https://www.youtube.com/watch?v=BOhcdRsmv0s). For example: -```python title="project/BUILD" +```python project/BUILD python_sources( name="lib", # Skip Black for all non-test files in this folder. @@ -186,7 +184,7 @@ or ❯ pants --changed-since=main lint ``` -Pants will find which files have changed and only run over those files. See [Advanced target selection](../../using-pants/advanced-target-selection.mdx) for more information. +Pants will find which files have changed and only run over those files. See [Advanced target selection](doc:advanced-target-selection) for more information. ## Tips for specific tools @@ -196,7 +194,7 @@ Pants will run formatters in the order in which they appear in the `backend_pack For example, you likely want to put Autoflake (which removes unused imports) before Black and Isort, which will format your import statements. -```toml title="pants.toml" +```toml pants.toml [GLOBAL] backend_packages = [ # Note that we want Autoflake to run before Black and isort, @@ -230,7 +228,7 @@ Pants will copy all reports into the folder `dist/lint/`. ### Pylint and Flake8: how to add first-party plugins -See [`[pylint].source_plugins`](../../../reference/subsystems/pylint.mdx#section-source-plugins) and [`[flake8].source_plugins`](../../../reference/subsystems/flake8.mdx#section-source-plugins) for instructions to add plugins written by you. +See [`[pylint].source_plugins`](https://www.pantsbuild.org/docs/reference-pylint#section-source-plugins) and [`[flake8].source_plugins`](https://www.pantsbuild.org/docs/reference-flake8#section-source-plugins) for instructions to add plugins written by you. ### Bandit: less verbose logging diff --git a/versioned_docs/version-2.18/docs/python/python-overview/lockfiles.mdx b/versioned_docs/version-2.18/docs/markdown/Python/python/python-lockfiles.md similarity index 73% rename from versioned_docs/version-2.18/docs/python/python-overview/lockfiles.mdx rename to versioned_docs/version-2.18/docs/markdown/Python/python/python-lockfiles.md index 641c7ca2e..69ade4d74 100644 --- a/versioned_docs/version-2.18/docs/python/python-overview/lockfiles.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Python/python/python-lockfiles.md @@ -1,10 +1,9 @@ --- - title: Lockfiles - sidebar_position: 2 ---- - -Securely locking down your third-party dependencies. - +title: "Lockfiles" +slug: "python-lockfiles" +excerpt: "Securely locking down your third-party dependencies." +hidden: false +createdAt: "2023-03-11T01:50:46.369Z" --- Third-party dependencies are typically specified via ranges of allowed versions, known as "requirements", one for each dependency, in a file such as requirements.txt or pyproject.toml. Examples of requirement strings include `mypy>1.0.0`, `Django>=3.1.0,<4`, `pytest==7.1.1`. @@ -27,22 +26,22 @@ If you use lockfiles, and we highly recommend that you do, then Pants will use t Pants supports multiple lockfiles for different parts of your repo, via the mechanism of "resolves" - logical names given to lockfiles so that they are easy to reference. -:::note Lockfiles are generated by Pex -Pants delegates lockfile creation and consumption to the [Pex](https://github.com/pantsbuild/pex) tool. So you may see standard lockfiles referred to as "Pex-style" lockfiles. -::: +> 📘 Lockfiles are generated by Pex +> +> Pants delegates lockfile creation and consumption to the [Pex](https://github.com/pantsbuild/pex) tool. So you may see standard lockfiles referred to as "Pex-style" lockfiles. ### Getting started with resolves First, you'll need to turn on the resolves functionality for the repo: -```toml title="pants.toml" +```toml pants.toml [python] enable_resolves = true ``` -Initially, Pants will assume a single resolve named `python-default` which uses the repo's [default interpreter constraints](../../../reference/subsystems/python.mdx#interpreter_constraints) and references a lockfile at `3rdparty/python/default.lock`. You can change the name of the default resolve, and/or the location of its lockfile, via: +Initially, Pants will assume a single resolve named `python-default` which uses the repo's [default interpreter constraints](doc:reference-python#interpreter_constraints) and references a lockfile at `3rdparty/python/default.lock`. You can change the name of the default resolve, and/or the location of its lockfile, via: -```toml title="pants.toml" +```toml pants.toml [python] enable_resolves = true default_resolve = "myresolve" @@ -53,13 +52,13 @@ myresolve = "path/to/mylockfile" You generate the lockfile as follows: -```shell title="Bash" +```shell Bash $ pants generate-lockfiles 19:00:39.26 [INFO] Completed: Generate lockfile for python-default 19:00:39.29 [INFO] Wrote lockfile for the resolve `python-default` to 3rdparty/python/default.lock ``` -The inputs used to generate a lockfile are third-party dependencies in your repo, expressed via [`python_requirement` targets](./third-party-dependencies.mdx) , or the `python_requirements` / `poetry_requirements` generator targets. In this case, since you haven't yet explicitly mapped your requirement targets to a resolve, they will all map to `python-default`, and so all serve as inputs to the default lockfile. +The inputs used to generate a lockfile are third-party dependencies in your repo, expressed via [`python_requirement` targets](doc:python-third-party-dependencies) , or the `python_requirements` / `poetry_requirements` generator targets. In this case, since you haven't yet explicitly mapped your requirement targets to a resolve, they will all map to `python-default`, and so all serve as inputs to the default lockfile. ### Multiple lockfiles @@ -67,7 +66,7 @@ It's generally simpler to have a single resolve for the whole repository, if you If you need multiple resolves, you declare them in your config file: -```toml title="pants.toml" +```toml pants.toml [python] enable_resolves = true default_resolve = "data_science" @@ -78,9 +77,9 @@ webapps_django3 = "3rdparty/python/webapps_django3.lock" webapps_django4 = "3rdparty/python/webapps_django4.lock" ``` -Then, you partition your requirements targets across these resolves using the `resolve` field, and possibly the [parametrize](../../using-pants/key-concepts/targets-and-build-files.mdx#parametrizing-targets) mechanism: +Then, you partition your requirements targets across these resolves using the `resolve` field, and possibly the [parametrize](doc:targets#parametrizing-targets) mechanism: -```python title="3rdparty/python/BUILD" +```python 3rdparty/python/BUILD python_requirement( name="django3", requirements=["django>=3.1.0,<4"], @@ -108,7 +107,7 @@ Any requirements targets that don't specify an explicit `resolve=` will be assoc As before, you run `pants generate-lockfiles` to generate the lockfiles. You can use the `--resolve` flag to generate just a subset of lockfiles. E.g., -```shell title="Bash" +```shell Bash $ pants generate-lockfiles --resolve=webapps_django3 --resolve=webapps_django4 19:00:39.26 [INFO] Completed: Generate lockfile for webapps_django3 19:00:39.29 [INFO] Completed: Generate lockfile for webapps_django4 @@ -118,7 +117,7 @@ $ pants generate-lockfiles --resolve=webapps_django3 --resolve=webapps_django4 Finally, you update your first-party code targets, such as `python_sources`, `python_tests`, and `pex_binary` to set their `resolve=` field (which, as before, defaults to the default resolve). -```python title="my/project/BUILD" +```python my/project/BUILD python_sources( resolve="django_webapp3", ) @@ -131,27 +130,27 @@ python_tests( ) ``` -If a first-party target is compatible with multiple resolves, e.g., shared utility code, you can use the [parametrize](../../using-pants/key-concepts/targets-and-build-files.mdx#parametrizing-targets) mechanism with the `resolve=` field. +If a first-party target is compatible with multiple resolves, e.g., shared utility code, you can use the [parametrize](doc:targets#parametrizing-targets) mechanism with the `resolve=` field. -:::note Transitive dependencies must use the same resolve -All transitive dependencies of a source target must use the same resolve. Pants's dependency inference already handles this for you by only inferring dependencies between targets that share the same resolve. - -If you manually add a dependency across different resolves, Pants will error with a helpful message when you try to use that dependency. -::: +> 📘 Transitive dependencies must use the same resolve +> +> All transitive dependencies of a source target must use the same resolve. Pants's dependency inference already handles this for you by only inferring dependencies between targets that share the same resolve. +> +> If you manually add a dependency across different resolves, Pants will error with a helpful message when you try to use that dependency. To reiterate an important distinction: The `resolve=` field on a third-party requirements target specifies that these requirements are _inputs_ to the lockfile generator for that resolve. The `resolve=` field on a first-party source target specifies that this target will _consume_ the generated lockfile for that resolve. ### Interpreter constraints -A lockfile will contain dependencies for all requested Python versions. By default, these are the global constraints specified by the [\[python\].interpreter_constraints](../../../reference/subsystems/python.mdx#interpreter_constraints) option. You can override this per-lockfile using the [\[python\].resolves_to_interpreter_constraints](../../../reference/subsystems/python.mdx#resolves_to_interpreter_constraints) option. +A lockfile will contain dependencies for all requested Python versions. By default, these are the global constraints specified by the [\[python\].interpreter_constraints](doc:reference-python#interpreter_constraints) option. You can override this per-lockfile using the [\[python\].resolves_to_interpreter_constraints](doc:reference-python#resolves_to_interpreter_constraints) option. ### Modifying lockfile generation behavior You can use the following options to affect how the lockfile generator resolves dependencies for each resolve: -- [\[python\].resolves_to_constraints_file](../../../reference/subsystems/python.mdx#resolves_to_constraints_file): For each resolve, a path to a [Pip constraints file](https://pip.pypa.io/en/stable/user_guide/#constraints-files) to use when resolving that lockfile. -- [\[python\].resolve_to_no_binary](../../../reference/subsystems/python.mdx#resolve_to_no_binary): For each resolve, a list of projects that must only resolve to sdists and not wheels. Use the value `[":all:"]` to disable wheels for all packages. -- [\[python\].resolve_to_only_binary](../../../reference/subsystems/python.mdx#resolve_to_only_binary): For each resolve, a list of projects that must only resolve to wheels and not sdists. Use the value `[":all:"]` to disable sdists for all packages. +- [\[python\].resolves_to_constraints_file](doc:reference-python#resolves_to_constraints_file): For each resolve, a path to a [Pip constraints file](https://pip.pypa.io/en/stable/user_guide/#constraints-files) to use when resolving that lockfile. +- [\[python\].resolve_to_no_binary](doc:reference-python#resolve_to_no_binary): For each resolve, a list of projects that must only resolve to sdists and not wheels. Use the value `[":all:"]` to disable wheels for all packages. +- [\[python\].resolve_to_only_binary](doc:reference-python#resolve_to_only_binary): For each resolve, a list of projects that must only resolve to wheels and not sdists. Use the value `[":all:"]` to disable sdists for all packages. You can use the key `__default__` to set the value for all resolves at once. @@ -161,12 +160,12 @@ If you modify the third-party requirements of a resolve then you must regenerate You can have Pants display a useful summary of what changed between the old and new versions of the generated lockfile, by setting: -```toml title="pants.toml" +```toml pants.toml [generate-lockfiles] diff = true ``` -In theory, when you generate a lockfile, you should want to audit it for bugs, compliance and security concerns. In practice this is intractable to do manually. We would like to integrate with automated auditing tools and services in the future, so watch this space for updates, or feel free to [reach out on Slack](/community/members) if this is important to you and you'd like to work on it. +In theory, when you generate a lockfile, you should want to audit it for bugs, compliance and security concerns. In practice this is intractable to do manually. We would like to integrate with automated auditing tools and services in the future, so watch this space for updates, or feel free to [reach out on Slack](doc:the-pants-community) if this is important to you and you'd like to work on it. ### Lockfile subsetting @@ -174,7 +173,7 @@ When consuming a lockfile, Pants uses only the necessary subset of its transitiv For example, when running a test, only the requirements actually used (transitively) by that test will be present on the `sys.path`. This means that a test run won't be invalidated if unrelated requirements have changed, which improves cache hit rates. The same holds true when running and packaging code. -You can override this subsetting behavior by setting the [\[python\].run_against_entire_lockfile](../../../reference/subsystems/python.mdx#run_against_entire_lockfile) option. +You can override this subsetting behavior by setting the [\[python\].run_against_entire_lockfile](doc:reference-python#run_against_entire_lockfile) option. ### Lockfiles for tools @@ -186,7 +185,7 @@ The only time you need to think about this is if you want to customize the tool If you want a tool to be installed from some resolve, instead of from the built-in lockfile, you set `install_from_resolve` and `requirements` on the tool's config section: -```toml title="pants.toml" +```toml pants.toml [python.resolves] pytest = "3rdparty/python/pytest.lock" @@ -197,7 +196,7 @@ requirements =["//3rdparty/python:pytest"] # Use these requirements from the lo Then set up the resolve's inputs: -```python title="3rdparty/python/BUILD" +```python 3rdparty/python/BUILD python_requirements( name="pytest", source="pytest-requirements.txt", @@ -205,7 +204,7 @@ python_requirements( ) ``` -```Text title="3rdparty/python/pytest-requirements.txt" +```Text 3rdparty/python/pytest-requirements.txt # The default requirements (possibly with custom versions). pytest==7.1.1 pytest-cov>=2.12,!=2.12.1,<3.1 @@ -217,7 +216,7 @@ pytest-myplugin>=1.2.0,<2 And generate its custom lockfile: -```shell title="Bash" +```shell Bash $ pants generate-lockfiles --resolve=pytest 19:00:39.26 [INFO] Completed: Generate lockfile for pytest 19:00:39.29 [INFO] Wrote lockfile for the resolve `pytest` to 3rdparty/python/pytest.lock @@ -237,7 +236,7 @@ In some cases a tool also provides a runtime library. For example, `pytest` is r Rather than repeat the same requirement in two different resolves, you can point the tool at an existing resolve that you also use for your code: -```toml title="pants.toml" +```toml pants.toml [pytest] install_from_resolve = python-default ``` @@ -246,7 +245,7 @@ Of course, you have to ensure that this resolve does in fact provide appropriate As above, you will want to point `requirements` to the subset of targets representing the tool's requirements, so that Pants can verify that the resolve provides them, and can use just the needed subset without unnecessary invalidation: -```toml title="pants.toml" +```toml pants.toml [pytest] install_from_resolve = python-default @@ -259,15 +258,15 @@ requirements = [ ] ``` -You can have a single resolve for all your tools, or even a single resolve for all your tools and code! This may be useful if you want to [export](../../../reference/goals/export.mdx) a virtualenv that includes all your dependencies and all the tools you use. +You can have a single resolve for all your tools, or even a single resolve for all your tools and code! This may be useful if you want to [export](doc:reference-export) a virtualenv that includes all your dependencies and all the tools you use. But note that the more frequently you update a lockfile the more likely it is that unrelated updates will come along for the ride, since Pants does not yet support an "only-if-needed" upgrade strategy. -:::caution The previous way of generating tool lockfiles is deprecated! -There is an older way of generating tool lockfiles, by setting the `version` and `extra_requirements` fields on a tool's config. This method is deprecated in favor of the standard one described above. - -If you're using this deprecated tool lockfile generation mechanism, please switch to using the one described here as soon as possible! -::: +> 🚧 The previous way of generating tool lockfiles is deprecated! +> +> There is an older way of generating tool lockfiles, by setting the `version` and `extra_requirements` fields on a tool's config. This method is deprecated in favor of the standard one described above. +> +> If you're using this deprecated tool lockfile generation mechanism, please switch to using the one described here as soon as possible! ### Manually generating lockfiles @@ -276,10 +275,10 @@ Rather than using `generate-lockfiles` to generate Pex-style lockfiles, you can Manually generated lockfiles must either use Pex's JSON format or use pip's `requirements.txt`-style format (ideally with `--hash` entries for better supply chain security). For example: -```text title="3rdparty/user_lock.txt" +```text 3rdparty/user_lock.txt freezegun==1.2.0 \ --hash=sha256:93e90676da3... \ --hash=sha256:e19563d0b05... ``` -To use a manually generated lockfile for a resolve, point the resolve to that lockfile's path in [`[python].resolves`](../../../reference/subsystems/python.mdx#resolves). Then set [`[python].resolves_generate_lockfiles`](../../../reference/subsystems/python.mdx#resolves_generate_lockfiles) to `False`. Warning: it will likely be slower to install manually-generated user lockfiles than Pex ones, because Pants cannot as efficiently extract the subset of requirements used for a particular task; see the option [`[python].run_against_entire_lockfile`](../../../reference/subsystems/python.mdx#run_against_entire_lockfile). +To use a manually generated lockfile for a resolve, point the resolve to that lockfile's path in [`[python].resolves`](doc:reference-python#resolves). Then set [`[python].resolves_generate_lockfiles`](doc:reference-python#resolves_generate_lockfiles) to `False`. Warning: it will likely be slower to install manually-generated user lockfiles than Pex ones, because Pants cannot as efficiently extract the subset of requirements used for a particular task; see the option [`[python].run_against_entire_lockfile`](doc:reference-python#run_against_entire_lockfile). diff --git a/versioned_docs/version-2.18/docs/python/python-overview/third-party-dependencies.mdx b/versioned_docs/version-2.18/docs/markdown/Python/python/python-third-party-dependencies.md similarity index 79% rename from versioned_docs/version-2.18/docs/python/python-overview/third-party-dependencies.mdx rename to versioned_docs/version-2.18/docs/markdown/Python/python/python-third-party-dependencies.md index 006b28e62..e4895d452 100644 --- a/versioned_docs/version-2.18/docs/python/python-overview/third-party-dependencies.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Python/python/python-third-party-dependencies.md @@ -1,10 +1,9 @@ --- - title: Third-party dependencies - sidebar_position: 1 ---- - -How to use third-party Python libraries in your project. - +title: "Third-party dependencies" +slug: "python-third-party-dependencies" +excerpt: "How to use third-party Python libraries in your project." +hidden: false +createdAt: "2020-04-30T20:06:43.633Z" --- Pants handles dependencies with more precision than traditional Python workflows. Traditionally, you have a single heavyweight [virtual environment](https://docs.python.org/3/tutorial/venv.html) that includes a large set of dependencies, whether or not you actually need them for your current task. @@ -30,7 +29,7 @@ By default, Pants uses a single universe for your whole project, but it's possib Each third-party dependency you directly use is modeled by a `python_requirement` target: -```python title="BUILD" +```python BUILD python_requirement( name="django", requirements=["Django==3.2.1"], @@ -50,13 +49,13 @@ The `python_requirements()` target generator parses a [`requirements.txt`-style For example: -```text title="requirements.txt" +```text requirements.txt flask>=1.1.2,<1.3 requests[security]==2.23.0 dataclasses ; python_version<'3.7' ``` -```python title="BUILD" +```python BUILD # This will generate three targets: # # - //:reqs#flask @@ -85,13 +84,13 @@ If the file uses a different name than `requirements.txt`, set `source` like thi python_requirements(source="reqs.txt") ``` -:::note Where should I put the `requirements.txt`? -You can name the file whatever you want, and put it wherever makes the most sense for your project. - -In smaller repositories that only use Python, it's often convenient to put the file at the "build root" (top-level), as used on this page. - -For larger repositories or multilingual repositories, it's often useful to have a `3rdparty` or `3rdparty/python` directory. Rather than the target's address being `//:reqs#my_requirement`, its address would be `3rdparty/python:reqs#my_requirement`, for example; or `3rdparty/python#my_requirement` if you leave off the `name` field for `python_requirements`. See [Target Generation](../../using-pants/key-concepts/targets-and-build-files.mdx#target-generation). -::: +> 📘 Where should I put the `requirements.txt`? +> +> You can name the file whatever you want, and put it wherever makes the most sense for your project. +> +> In smaller repositories that only use Python, it's often convenient to put the file at the "build root" (top-level), as used on this page. +> +> For larger repositories or multilingual repositories, it's often useful to have a `3rdparty` or `3rdparty/python` directory. Rather than the target's address being `//:reqs#my_requirement`, its address would be `3rdparty/python:reqs#my_requirement`, for example; or `3rdparty/python#my_requirement` if you leave off the `name` field for `python_requirements`. See [Target Generation](doc:targets#target-generation). ### PEP 621-compliant `pyproject.toml` @@ -103,7 +102,7 @@ python_requirements(source="pyproject.toml") Further information about PEP 621 fields can be found in the PEP documentation. Pants will read dependencies from the `project.dependencies` list, as well as the `project.optional-dependencies` mappings. Pants makes no distinction between `dependencies` and `optional-dependencies`, all dependencies are treated in the same manner as though they were listed in the `dependencies` list. For example: -```toml title="pyproject.toml" +```toml pyproject.toml [project] dependencies = [ "flask>=1.1.2,<1.3", @@ -114,7 +113,7 @@ dependencies = [ dataclass = ["dataclasses ; python_version<'3.7'"] ``` -```python title="BUILD" +```python BUILD # This will generate three targets: # # - //:reqs#flask @@ -141,7 +140,7 @@ python_requirement( The `poetry_requirements()` target generator parses the [Poetry](https://python-poetry.org/docs/) section in `pyproject.toml` to produce a `python_requirement` target for each entry. -```toml title="pyproject.toml" +```toml pyproject.toml [tool.poetry.dependencies] python = "^3.8" requests = {extras = ["security"], version = "~1"} @@ -151,7 +150,7 @@ flask = "~1.12" isort = "~5.5" ``` -```python title="BUILD" +```python BUILD # This will generate three targets: # # - //:poetry#flask @@ -174,15 +173,15 @@ python_requirement( ) ``` -Note that Pants does not consume your `poetry.lock` file. Instead, see the [page on lockfiles](./lockfiles.mdx). +Note that Pants does not consume your `poetry.lock` file. Instead, see the [page on lockfiles](doc:python-lockfiles). ## How dependencies are chosen -Once Pants knows about your "universe"(s) of dependencies, it determines which subset should be used through [dependency inference](https://blog.pantsbuild.org/dependency-inference/). Pants will read your import statements, like `import django`, and map it back to the relevant `python_requirement` target. Run [`pants dependencies path/to/file.py`](../../using-pants/project-introspection.mdx) or `pants dependencies path/to:target` to confirm this works. +Once Pants knows about your "universe"(s) of dependencies, it determines which subset should be used through [dependency inference](https://blog.pantsbuild.org/dependency-inference/). Pants will read your import statements, like `import django`, and map it back to the relevant `python_requirement` target. Run [`pants dependencies path/to/file.py`](doc:project-introspection) or `pants dependencies path/to:target` to confirm this works. If dependency inference does not work—such as because it's a runtime dependency you do not import—you can explicitly add the `python_requirement` target to the `dependencies` field, like this: -```python title="project/BUILD" +```python project/BUILD python_sources( name="lib", dependencies=[ @@ -199,7 +198,7 @@ Some dependencies expose a module different than their project name, such as `be Pants already defines a [default module mapping](https://github.com/pantsbuild/pants/blob/main/src/python/pants/backend/python/dependency_inference/default_module_mapping.py) for some common Python requirements, but you may need to augment this by teaching Pants additional mappings: -```python title="3rdparty/python/BUILD" +```python 3rdparty/python/BUILD # `modules` and `module_mapping` is only needed for requirements where # the defaults do not work. @@ -226,13 +225,13 @@ If the dependency is a type stub, and the default does not work, set `type_stub_ It's invalid in Python to have conflicting versions of the same requirement, e.g. `Django==2` and `Django==3`. Instead, Pants supports "multiple resolves" (i.e. multiple lockfiles), as explained in the below section on lockfiles. -When you have multiple targets for the same dependency and they belong to the same [resolve](./lockfiles.mdx), dependency inference will not work due to ambiguity. If you're using lockfiles—which we strongly recommend—the solution is to set the `resolve` field for problematic `python_requirement` targets so that each resolve has only one requirement and there is no ambiguity. +When you have multiple targets for the same dependency and they belong to the same [resolve](doc:python-lockfiles), dependency inference will not work due to ambiguity. If you're using lockfiles—which we strongly recommend—the solution is to set the `resolve` field for problematic `python_requirement` targets so that each resolve has only one requirement and there is no ambiguity. This ambiguity is often a problem when you have 2+ `requirements.txt` or `pyproject.toml` files in your project, such as `project1/requirements.txt` and `project2/requirements.txt` both specifying `django`. You may want to set up each `poetry_requirements`/`python_requirements` target generator to use a distinct resolve so that there is no overlap. Alternatively, if the versions are the same, you may want to consolidate the requirements into a common file. ## Lockfiles -We strongly recommend using [lockfiles](./lockfiles.mdx) to ensure secure, repeatable dependency resolution. See [here](./lockfiles.mdx) for details on how to do so. +We strongly recommend using [lockfiles](doc:python-lockfiles) to ensure secure, repeatable dependency resolution. See [here](doc:python-lockfiles) for details on how to do so. ## Advanced usage @@ -247,7 +246,7 @@ ModuleNotFoundError: No module named 'pkg_resources' To work around this, you can use the `dependencies` field of `python_requirement`, so that anytime you depend on your requirement, you also bring in the undeclared dependency. -```python title="BUILD" +```python BUILD # First, make sure you have a `python_requirement` target for # the undeclared dependency. python_requirement( @@ -264,7 +263,7 @@ python_requirement( If you are using the `python_requirements` and `poetry_requirements` target generators, you can use the `overrides` field to do the same thing: -```python title="BUILD" +```python BUILD python_requirements( name="reqs", overrides={ @@ -273,7 +272,7 @@ python_requirements( ) ``` -```text title="requirements.txt" +```text requirements.txt setuptools mongomock ``` @@ -291,34 +290,33 @@ You can install requirements from version control using two styles: - `Django@ git+https://github.com/django/django.git@stable/2.1.x` - `Django@ git+https://github.com/django/django.git@fd209f62f1d83233cc634443cfac5ee4328d98b8` -:::note Version control via SSH -When using version controlled direct references hosted on private repositories with SSH access: - -``` -target@ git+ssh://git@github.com:/myorg/myrepo.git@myhash -``` - -...you may see errors like: - -``` -Complete output (5 lines): -git@github.com: Permission denied (publickey). -fatal: Could not read from remote repository. -Please make sure you have the correct access rights -and the repository exists. ----------------------------------------- -``` - -To fix this, Pants needs to be configured to pass relevant SSH specific environment variables to processes by adding the following to `pants.toml`: - -``` -[subprocess-environment] -env_vars.add = [ -"SSH_AUTH_SOCK", -] -``` - -::: +> 📘 Version control via SSH +> +> When using version controlled direct references hosted on private repositories with SSH access: +> +> ``` +> target@ git+ssh://git@github.com:/myorg/myrepo.git@myhash +> ``` +> +> ...you may see errors like: +> +> ``` +> Complete output (5 lines): +> git@github.com: Permission denied (publickey). +> fatal: Could not read from remote repository. +> Please make sure you have the correct access rights +> and the repository exists. +> ---------------------------------------- +> ``` +> +> To fix this, Pants needs to be configured to pass relevant SSH specific environment variables to processes by adding the following to `pants.toml`: +> +> ``` +> [subprocess-environment] +> env_vars.add = [ +> "SSH_AUTH_SOCK", +> ] +> ``` ### Custom repositories @@ -328,7 +326,7 @@ There are two mechanisms for setting up custom Python distribution repositories: Use `[python-repos].indexes` to add [PEP 503-compatible](https://peps.python.org/pep-0503/) indexes, like PyPI. -```toml title="pants.toml" +```toml pants.toml [python-repos] indexes.add = ["https://custom-cheeseshop.net/simple"] ``` @@ -355,16 +353,16 @@ find_links = [ To authenticate to custom repos, you may need to provide credentials (such as a username and password) in the URL. -You can use [config file `%(env.ENV_VAR)s` interpolation](../../using-pants/key-concepts/options.mdx#config-file-interpolation) to load the values via environment variables. This avoids checking in sensitive information to version control. +You can use [config file `%(env.ENV_VAR)s` interpolation](doc:options#config-file-interpolation) to load the values via environment variables. This avoids checking in sensitive information to version control. -```toml title="pants.toml" +```toml pants.toml [python-repos] indexes.add = ["http://%(env.INDEX_USERNAME)s:%(INDEX_PASSWORD)s@my.custom.repo/index"] ``` -Alternatively, you can hardcode the value in a private (not checked-in) [.pants.rc file](../../using-pants/key-concepts/options.mdx#pantsrc-file) in each user's Pants repo, that sets this config for the user: +Alternatively, you can hardcode the value in a private (not checked-in) [.pants.rc file](doc:options#pantsrc-file) in each user's Pants repo, that sets this config for the user: -```toml title=".pants.rc" +```toml .pants.rc [python-repos] indexes.add = ["http://$USERNAME:$PASSWORD@my.custom.repo/index"] ``` @@ -375,7 +373,7 @@ There are two ways to specify local requirements from the filesystem: - [PEP 440 direct references](https://www.python.org/dev/peps/pep-0440/#direct-references) -```python title="3rdparty/python" +```python 3rdparty/python python_requirement( name="django", # Use an absolute path to a .whl or sdist file. @@ -388,7 +386,7 @@ python_requirement( - The option `[python-repos].find_links` -```toml title="pants.toml" +```toml pants.toml [python-repos] # Use an absolute path to a directory containing `.whl` and/or sdist files. find_links = ["file:///Users/pantsbuild/prebuilt_wheels"] @@ -400,7 +398,7 @@ ansicolors-1.1.8-py2.py3-none-any.whl django-3.1.1-py3-none-any.whl ``` -```python title="3rdparty/BUILD" +```python 3rdparty/BUILD # Use normal requirement strings, i.e. without file paths. python_requirement(name="ansicolors", requirements=["ansicolors==1.1.8"]) python_requirement(name="django", requirements=["django>=3.1,<3.2"]) @@ -424,18 +422,18 @@ This feature only works when using Pex lockfiles via `[python].resolves`. `[python-repos].path_mappings` expects values in the form `NAME|PATH`, e.g. `WHEELS_DIR|/Users/pantsbuild/prebuilt_wheels`. Also, still use an absolute path for `[python-repos].find_links`. -If possible, we recommend using a common file location for your whole team, and leveraging [Pants's interpolation](../../using-pants/key-concepts/options.mdx#config-file-interpolation), so that you avoid each user needing to manually configure `[python-repos].path_mappings` and `[python-repos].find_links`. For example, in `pants.toml`, you could set `[python-repos].path_mappings` to `WHEELS_DIR|%(buildroot)s/python_wheels` and `[python-repos].find_links` to `%(buildroot)s/python_wheels`. Then, as long as every user has the folder `python_wheels` in the root of the repository, things will work without additional configuration. Or, you could use a value like `%(env.HOME)s/pants_wheels` for the path `~/pants_wheels`. +If possible, we recommend using a common file location for your whole team, and leveraging [Pants's interpolation](doc:options#config-file-interpolation), so that you avoid each user needing to manually configure `[python-repos].path_mappings` and `[python-repos].find_links`. For example, in `pants.toml`, you could set `[python-repos].path_mappings` to `WHEELS_DIR|%(buildroot)s/python_wheels` and `[python-repos].find_links` to `%(buildroot)s/python_wheels`. Then, as long as every user has the folder `python_wheels` in the root of the repository, things will work without additional configuration. Or, you could use a value like `%(env.HOME)s/pants_wheels` for the path `~/pants_wheels`. -```toml title="pants.toml" +```toml pants.toml [python-repos] # No one needs to change these values, as long as they can use the same shared location. find_links = ["file://%(buildroot)s/prebuilt_wheels"] path_mappings = ["WHEELS_DIR|%(buildroot)s/prebuilt_wheels"] ``` -If you cannot use a common file location via interpolation, then we recommend setting these options in a [`.pants.rc` file](../../using-pants/key-concepts/options.mdx#pantsrc-file). Every teammate will need to set this up for their machine. +If you cannot use a common file location via interpolation, then we recommend setting these options in a [`.pants.rc` file](doc:options#pantsrc-file). Every teammate will need to set this up for their machine. -```toml title=".pants.rc" +```toml .pants.rc [python-repos] # Each user must set both of these to the absolute paths on their machines. find_links = ["file:///Users/pantsbuild/prebuilt_wheels"] @@ -451,13 +449,13 @@ Sometimes, transitive dependencies of one of your third-party requirements can c Constraints files are configured per-resolve, meaning that the resolves for your user code from `[python].resolves` and each Python tool, such as Black and Pytest, can have different configuration. Use the option `[python].resolves_to_constraints_file` to map resolve names to paths to pip-compatible constraints files. For example: -```toml title="pants.toml" +```toml pants.toml [python.resolves_to_constraints_file] data-science = "3rdparty/python/data_science_constraints.txt" pytest = "3rdparty/python/pytest_constraints.txt" ``` -```text title="3rdparty/python/data_science_constraints.txt" +```text 3rdparty/python/data_science_constraints.txt requests==22.1.0 urrllib3==4.2 ``` @@ -472,7 +470,7 @@ You can use `[python].resolves_to_only_binary` to avoid using sdists (source dis For example: -```toml title="pants.toml" +```toml pants.toml [python.resolves_to_only_binary] data-science = ["numpy"] @@ -485,4 +483,4 @@ You can also set the key `__default__` to apply the same value to every resolve ## Tip: use `pants export` to create a virtual environment for IDEs -See [Setting up an IDE](../../using-pants/setting-up-an-ide.mdx) for more information on `pants export`. This will create a virtual environment for your user code for compatibility with the rest of the Python ecosystem, e.g. IDEs like Pycharm. +See [Setting up an IDE](doc:setting-up-an-ide) for more information on `pants export`. This will create a virtual environment for your user code for compatibility with the rest of the Python ecosystem, e.g. IDEs like Pycharm. diff --git a/versioned_docs/version-2.18/docs/markdown/Releases/changelog.md b/versioned_docs/version-2.18/docs/markdown/Releases/changelog.md new file mode 100644 index 000000000..91c813fe0 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Releases/changelog.md @@ -0,0 +1,29 @@ +--- +title: "Changelog" +slug: "changelog" +excerpt: "Links to each release's changelog and highlights." +hidden: false +createdAt: "2021-05-19T23:43:21.613Z" +--- + +| Pants version | Changelog | Highlights | +| :------------ | :------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 2.17 | [2.17.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.17.x.md) | - [Blog: Pants 2.17.0 is released!](https://blog.pantsbuild.org/pants-2-17-0-is-released/) | +| 2.16 | [2.16.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.16.x.md) | - [Blog: Pants 2.16.0 is here!](https://blog.pantsbuild.org/pants-2-16-0/) | +| 2.15 | [2.15.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.15.x.md) | - [Blog: Pants 2.15: Easier multi-platform workflows, Docker build support, automatic code cleanup, and more!](https://blog.pantsbuild.org/pants-2-15/) | +| 2.14 | [2.14.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.14.x.md) | - [Blog: Pants 2.14: Less boilerplate, more Rust, better support for Go monorepos, interactive debugging support, and more!](https://blog.pantsbuild.org/pants-2-14/) | +| 2.13 | [2.13.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.13.x.md) | - [Blog: Pants 2.13: Easier at the command line, easier parallel execution in CI, Kotlin support, and better Python and JVM support!](https://blog.pantsbuild.org/introducing-pants-2-13/) | +| 2.12 | [2.12.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.12.x.md) | - [Blog: Pants 2.12: Improved performance for common cases, IDE support for Java and Scala](https://blog.pantsbuild.org/pants-2-12/) | +| 2.11 | [2.11.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.11.x.md) | - [Blog: Introducing 2.11](https://blog.pantsbuild.org/introducing-pants-2-11/) | +| 2.10 | [2.10.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.10.x.md) | - [Blog: Introducing 2.10](https://blog.pantsbuild.org/pants-2-10/) - [Blog: Multiple lockfiles in Python repos](https://blog.pantsbuild.org/multiple-lockfiles-python/) | +| 2.9 | [2.9.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.9.x.md) | - [Blog: Introducing 2.9](https://blog.pantsbuild.org/pants-2-9/) - [Blog: JVM dependency inference](https://blog.pantsbuild.org/automatically-unlocking-concurrent-builds-and-fine-grained-caching-on-the-jvm-with-dependency-inference/) | +| 2.8 | [2.8.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.8.x.md) | - [Blog: Introducing 2.8](https://blog.pantsbuild.org/introducing-pants-2-8/) - [Blog: Golang support](https://blog.pantsbuild.org/golang-support-pants-28/) - [Blog: PEP 517 support](https://blog.pantsbuild.org/pants-supports-pep-517/) | +| 2.7 | [2.7.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.7.x.md) | - [Blog: introducing 2.7](https://blog.pantsbuild.org/introducing-pants-2-7/) - [Blog: experience contributing Yapf](https://blog.pantsbuild.org/contributing-yapf-support/) - [Blog: Docker support](https://blog.pantsbuild.org/docker-support/) - [Blog: Streamlining packaging with Docker](https://blog.pantsbuild.org/pants-pex-and-docker/) | +| 2.6 | [2.6.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.6.x.md) | - [Blog: introducing 2.6](https://blog.pantsbuild.org/introducing-pants-2-6/) - [Blog: Poetry support](https://blog.pantsbuild.org/poetry-support-for-pants-2-6/) | +| 2.5 | [2.5.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.5.x.md) | - [Blog: introducing 2.5](https://blog.pantsbuild.org/introducing-pants-2-5/) - [Blog: Apple Silicon](https://blog.pantsbuild.org/how-we-added-apple-silicon-support-to-pants/) | +| 2.4 | [2.4.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.4.x.md) | - [Blog: introducing 2.4](https://blog.pantsbuild.org/introducing-pants-build-2-4-0/) | +| 2.3 | [2.3.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.3.x.md) | - [Blog: introducing 2.3](https://blog.pantsbuild.org/introducing-pants-2-3-0/) - [Blog: Tailoring Pants to your codebase](https://blog.pantsbuild.org/tailoring-pants-to-your-codebase/) | +| 2.2 | [2.2.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.2.x.md) | - [Blog: Pants 2.2 adds dependency inference for Protobuf](https://blog.pantsbuild.org/pants-2-2-adds-dependency-inference-for-protobuf/) | +| 2.1 | [2.1.x.rst](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.1.x.rst) | - [Blog: Unlocking incremental Python 3 migrations with Pants](https://blog.pantsbuild.org/python-3-migrations/) | +| 2.0 | [2.0.x.rst](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.0.x.rst) | - [How to upgrade from Pants 1 to Pants 2](https://www.pantsbuild.org/v1.30/docs/how-to-upgrade-to-the-v2-engine) - [Blog: Introducing Pants v2](https://blog.pantsbuild.org/introducing-pants-v2/) | +| 1.30 | | | diff --git a/versioned_docs/version-2.18/docs/releases/deprecation-policy.mdx b/versioned_docs/version-2.18/docs/markdown/Releases/deprecation-policy.md similarity index 81% rename from versioned_docs/version-2.18/docs/releases/deprecation-policy.mdx rename to versioned_docs/version-2.18/docs/markdown/Releases/deprecation-policy.md index 14684c1eb..0eca4ca79 100644 --- a/versioned_docs/version-2.18/docs/releases/deprecation-policy.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Releases/deprecation-policy.md @@ -1,10 +1,9 @@ --- - title: Deprecation policy - sidebar_position: 1 ---- - -How we try to provide you a stable experience. - +title: "Deprecation policy" +slug: "deprecation-policy" +excerpt: "How we try to provide you a stable experience." +hidden: false +createdAt: "2020-05-16T22:36:48.260Z" --- Deprecations must live at least one minor release, meaning that if something is deprecated in 2.1.x, for example, it cannot be removed until 2.2.x. @@ -29,7 +28,7 @@ Every deprecation message will include a description of how to respond to the ch ## Plugin API deprecation policy -When [writing plugins](../writing-plugins/plugins-overview.mdx), Pants is used as a _library_, rather than a _binary_. That is, you import Pants code to write plugins. We try to make this API stable for your plugins. +When [writing plugins](doc:plugins-overview), Pants is used as a _library_, rather than a _binary_. That is, you import Pants code to write plugins. We try to make this API stable for your plugins. ### What is public? @@ -43,7 +42,7 @@ All other code defaults to being a private API and does not need to follow this Examples: -```python title="deprecation_example.py" +```python deprecation_example.py """An example public module. This means that everything in this module is public, except for @@ -101,8 +100,8 @@ These changes all require a deprecation. - Upgrading Pants to use new versions of third-party libraries. - Changes that are required by law. -:::caution The Rules and Target APIs are still experimental -These two APIs do not yet follow this deprecation policy because we are actively shaping the API. - -We do try, however, to limit changes and may choose to respect the deprecation policy on a case-by-case basis. -::: +> 🚧 The Rules and Target APIs are still experimental +> +> These two APIs do not yet follow this deprecation policy because we are actively shaping the API. +> +> We do try, however, to limit changes and may choose to respect the deprecation policy on a case-by-case basis. diff --git a/versioned_docs/version-2.18/docs/releases/upgrade-tips.mdx b/versioned_docs/version-2.18/docs/markdown/Releases/upgrade-tips.md similarity index 52% rename from versioned_docs/version-2.18/docs/releases/upgrade-tips.mdx rename to versioned_docs/version-2.18/docs/markdown/Releases/upgrade-tips.md index 44ade285a..ef465bcc9 100644 --- a/versioned_docs/version-2.18/docs/releases/upgrade-tips.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Releases/upgrade-tips.md @@ -1,21 +1,20 @@ --- - title: Upgrade tips - sidebar_position: 2 +title: "Upgrade tips" +slug: "upgrade-tips" +excerpt: "How we recommend staying up-to-date with Pants." +hidden: false +createdAt: "2020-05-16T22:53:24.499Z" --- -How we recommend staying up-to-date with Pants. - ---- - -:::note Reminder: change the `pants_version` to upgrade -Change the `pants_version` option in the `[GLOBAL]` scope in your pants.toml to upgrade. - -You can see all releases at [https://github.com/pantsbuild/pants/releases](https://github.com/pantsbuild/pants/releases). -::: +> 📘 Reminder: change the `pants_version` to upgrade +> +> Change the `pants_version` option in the `[GLOBAL]` scope in your pants.toml to upgrade. +> +> You can see all releases at . ## Upgrade one minor release at a time -Per our [Deprecation policy](./deprecation-policy.mdx), deprecations must last a minimum of one minor release. For example, something may be deprecated in 2.1.0 and then removed in 2.2.0. +Per our [Deprecation policy](doc:deprecation-policy), deprecations must last a minimum of one minor release. For example, something may be deprecated in 2.1.0 and then removed in 2.2.0. This means that it is helpful to upgrade one minor release at a time so that you can see all deprecation warnings. @@ -28,7 +27,7 @@ First, see if Pants can automatically fix any safe deprecations for you: ❯ pants update-build-files --no-fmt :: ``` -You can add `update-build-files` to your [continuous integration](../using-pants/using-pants-in-ci.mdx) so that developers don't accidentally use removed features: +You can add `update-build-files` to your [continuous integration](doc:using-pants-in-ci) so that developers don't accidentally use removed features: ```bash ❯ pants update-build-files --check :: @@ -44,11 +43,11 @@ Then, see if there are any remaining deprecation warnings: It is also helpful to spot-check that your main commands like `lint`, `package`, and `test` still work by running on a single target. -:::note Use dev releases for the newest -As described in our [Release strategy](../contributions/releases/release-strategy.mdx), we make weekly dev releases with all the latest features and bug fixes we've been working on. While dev releases are less stable, they mean you get access to improvements sooner. - -If you encounter any blocking issues, you can easily roll back to a prior version by changing the `pants_version` option. (Please let us know the issue by opening a [GitHub issue](https://github.com/pantsbuild/pants/issues) or messaging us on [Slack](/community/members)). -::: +> 📘 Use dev releases for the newest +> +> As described in our [Release strategy](doc:release-strategy), we make weekly dev releases with all the latest features and bug fixes we've been working on. While dev releases are less stable, they mean you get access to improvements sooner. +> +> If you encounter any blocking issues, you can easily roll back to a prior version by changing the `pants_version` option. (Please let us know the issue by opening a [GitHub issue](https://github.com/pantsbuild/pants/issues) or messaging us on [Slack](doc:the-pants-community)). ## Ignore deprecation messages with `ignore_warnings` @@ -56,7 +55,7 @@ Sometimes when upgrading, you will not have time to fully fix the deprecation. T The `ignore_warnings` option expects a string with the start of the deprecation warning. You can also prefix the string with `$regex$` to use a regex pattern instead of literal string matching. -```toml title="pants.toml" +```toml pants.toml [GLOBAL] ignore_warnings = [ "DEPRECATED: option 'config' in scope 'flake8' will be removed", @@ -68,10 +67,10 @@ ignore_warnings = [ Run `curl -L -o pants https://pantsbuild.github.io/setup/pants` to check if there have been any changes, e.g. adding support for running Pants with new Python interpreters. -:::caution Consider migrating to the new `pants` binary -The `pants` script is deprecated. The new `pants` binary has many improvements over the script, including an embedded Python runtime. The [installation page](../getting-started/installing-pants.mdx) has more details on how to migrate. -::: +> 🚧 Consider migrating to the new `pants` binary +> +> The `pants` script is deprecated. The new `pants` binary has many improvements over the script, including an embedded Python runtime. The [installation page](doc:installation) has more details on how to migrate. ## Find any bugs or issues? -Please either open a [GitHub issue](https://github.com/pantsbuild/pants/issues) or head over to [Slack](/community/members). We'd be happy to help and would appreciate knowing about the issue! +Please either open a [GitHub issue](https://github.com/pantsbuild/pants/issues) or head over to [Slack](doc:the-pants-community). We'd be happy to help and would appreciate knowing about the issue! diff --git a/versioned_docs/version-2.18/docs/markdown/Releases/versions.md b/versioned_docs/version-2.18/docs/markdown/Releases/versions.md new file mode 100644 index 000000000..a5aed9acb --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Releases/versions.md @@ -0,0 +1,20 @@ +--- +title: "Versions" +slug: "versions" +excerpt: "Summaries of each release, including links to their changelogs." +hidden: true +createdAt: "2020-07-23T21:01:05.036Z" +--- + +- [2.5.x](doc:release-notes-2-5) +- [2.4.x](doc:release-notes-2-4) +- [2.3.x](doc:release-notes-2-3) +- [2.2.x](doc:release-notes-2-2) +- [2.1.x](doc:release-notes-2-1) +- [2.0.x](doc:release-notes-2-0) +- [1.30.x](doc:release-notes-1-30) +- [1.29.x](doc:release-notes-1-29) +- [1.28.x](doc:release-notes-1-28) +- [1.27.x](doc:release-notes-1-27) +- [1.26.x](doc:release-notes-1-26) +- [1.25.x](doc:release-notes-1-25) diff --git a/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-1-25.md b/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-1-25.md new file mode 100644 index 000000000..4f8b38969 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-1-25.md @@ -0,0 +1,16 @@ +--- +title: "1.25.x" +slug: "release-notes-1-25" +hidden: true +createdAt: "2020-05-02T16:56:06.248Z" +--- + +Some highlights: + +- Replaces the `globs()` syntax in the `sources` field in BUILD files with a simpler list of file names and globs. See https://groups.google.com/forum/#!topic/pants-devel/3nmdSeyvwU0. +- Adds support for using file arguments. +- Adds Bandit security linter for Python. +- Configures Python 3.6+ as the default Python version. +- Adds `./pants test --debug` to run tests interactively. + +See [here](https://github.com/pantsbuild/pants/blob/master/src/python/pants/notes/1.25.x.rst) for a detailed change log. diff --git a/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-1-26.md b/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-1-26.md new file mode 100644 index 000000000..21b4fc836 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-1-26.md @@ -0,0 +1,19 @@ +--- +title: "1.26.x" +slug: "release-notes-1-26" +hidden: true +createdAt: "2020-05-02T04:58:34.851Z" +--- + +Some highlights: + +- Pants now uses Pex 2.1, which uses Pip instead of its own custom resolver. See https://github.com/pantsbuild/pex/pull/788 for details. +- Adds support for `pants.toml` as an improvement on the now legacy `pants.ini` format. See https://groups.google.com/forum/#!topic/pants-devel/N1H03oJONco for details. +- Adds support for Python lockfiles. +- Adds the Pylint linter. +- Adds IPython support to `./pants repl`. +- Adds support for getting coverage data with `./pants test`. +- When using file arguments with `./.pants test`, `fmt`, or `lint`, Pants now runs over only the files specified, rather than all files belonging to the owning target. +- Changes `./pants fmt` and `./pants lint` to batch targets together for better performance, at the cost of less fine-grained caching. This can be disabled with `--fmt-per-target-caching` and `--lint-per-target-caching`. + +See [here](https://github.com/pantsbuild/pants/blob/master/src/python/pants/notes/1.26.x.rst) for a detailed change log. diff --git a/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-1-27.md b/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-1-27.md new file mode 100644 index 000000000..791ae105f --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-1-27.md @@ -0,0 +1,22 @@ +--- +title: "1.27.x" +slug: "release-notes-1-27" +hidden: true +createdAt: "2020-05-02T04:58:34.103Z" +--- + +Some highlights: + +- Improved formatting of `./pants help` and `./pants goals`. +- `.gitignore` will auto-populate the global option `--pants-ignore`, by default, through the new global option `--pants-use-gitignore`. +- The `dependencies` goal has a new `--type=3rdparty` option to list the requirement strings of your third-party dependencies. +- The `filedeps` goal has a new `--transitive` flag to include all used files from dependencies, instead of only files used the target itself. +- `./pants binary` will now use all fields defined on a `python_binary` target, like `zip_safe` and `platforms`. +- When resolving third-party Python dependencies, you can now use the `repos` option in `[python-setup]` to use custom repositories other than PyPI. +- `./pants binary` and `./pants run` better support globs of targets; they will filter out all irrelevant targets for you. +- `./pants -ldebug` and `-ltrace` will enable logging in PEX for better troubleshooting. +- Pytest coverage reports can be written to the console through `--pytest-coverage-report=console`. +- Pytest coverage reports can be automatically opened through `./pants test --open-coverage`. +- Fixed how interpreter constraints are applied from dependencies. + +See [here](https://github.com/pantsbuild/pants/blob/master/src/python/pants/notes/1.27.x.rst) for a detailed change log. diff --git a/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-1-28.md b/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-1-28.md new file mode 100644 index 000000000..2bafc07d3 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-1-28.md @@ -0,0 +1,20 @@ +--- +title: "1.28.x" +slug: "release-notes-1-28" +hidden: true +createdAt: "2020-05-05T16:51:04.132Z" +--- + +Some highlights: + +- Added support for generating Python from Protocol Buffers (Protobuf). See [Protobuf](doc:protobuf). +- Added the `junit_xml_dir` option to the `[pytest]` scope to allow saving JUnit XML test results. See [test](doc:python-test-goal). +- Allow defining macros though a new "preludes" mechanism. See [Macros](doc:macros). +- Simplified how source roots are declared. See [Source roots](doc:source-roots). +- Added the `dependees` goal. See [Project introspection](doc:project-introspection). +- UI enhancements, including: + - Improved the interactive UI to not take over the screen and to work when piping to other programs. + - Improved output for `fmt` and `lint` to explain which tools ran. + - Improved output for `test` to be less chatty. + +See [here](https://github.com/pantsbuild/pants/blob/master/src/python/pants/notes/1.28.x.rst) for a detailed change log. diff --git a/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-1-29.md b/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-1-29.md new file mode 100644 index 000000000..501f97a07 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-1-29.md @@ -0,0 +1,20 @@ +--- +title: "1.29.x" +slug: "release-notes-1-29" +hidden: true +createdAt: "2020-05-20T00:54:47.325Z" +--- + +Some highlights: + +- The `run`, `test`, and `setup-py` goals support passing arguments via `--`, e.g. `./pants test test_app.py -- -vv -k test_demo`. +- Python linters can now run on both Python 2 and Python 3 targets in the same run. See [lint](doc:python-lint-goal). +- Added support for Pylint source plugins. See [Linters and formatters](doc:python-linters-and-formatters). +- Added the `filter` goal. See [Project introspection](doc:project-introspection). +- Code generators will now automatically add the generator's runtime dependencies. See [Protobuf](doc:protobuf). +- Resolving requirements should be a bit faster thanks to better caching. +- Improved the Pants daemon (pantsd). It should now be safe to turn on with the option `enable_pantsd = true` in the `[GLOBAL]` scope. Pantsd substantially improves Pants performance and caching. +- Removed deprecated `source` field in BUILD files in favor of `sources`. +- Removed several deprecated V1 backends and plugins. + +See [here](https://github.com/pantsbuild/pants/blob/master/src/python/pants/notes/1.29.x.rst) for a detailed change log. diff --git a/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-1-30.md b/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-1-30.md new file mode 100644 index 000000000..1281a1b71 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-1-30.md @@ -0,0 +1,87 @@ +--- +title: "1.30.x" +slug: "release-notes-1-30" +hidden: true +createdAt: "2020-06-09T00:14:07.234Z" +--- + +Some highlights: + +- The Pants daemon (pantsd) is now enabled by default for improved performance. +- Added experimental support for Python dependency inference. See below. +- Pants now logs when certain steps of your build are done. This improves, in particular, the experience when you have `--no-dynamic-ui` enabled, such as in CI. + +See [here](https://github.com/pantsbuild/pants/blob/master/src/python/pants/notes/1.30.x.rst) for a detailed change log. +[block:api-header] +{ +"title": "Experimental dependency inference feature" +} +[/block] +Pants can now read your Python source files to infer the `dependencies` field for your Python targets, meaning that you can now leave off the `dependencies` field for most of your BUILD files. + +### How to activate + +Add `dependency_inference = true` to your `pants.toml`, like this: +[block:code] +{ +"codes": [ +{ +"code": "[GLOBAL]\ndependency_inference = true", +"language": "toml", +"name": "pants.toml" +} +] +} +[/block] +To test that it is working, find a sample target, then delete the `dependencies` field from its BUILD file and run `./pants dependencies path/to:target`. + +### Teach Pants about your third party dependencies (recommended) + +Pants will assume that each of your dependencies exposes a module with the same name; for example, the requirement `Django>=2.0` would expose the module `"django"`. However, sometimes the module is different, like `setuptools` exposing `pkg_resources`. + +If you are using a `requirements.txt` and `python_requirements()` target, teach Pants about any unusual modules like this: +[block:code] +{ +"codes": [ +{ +"code": "python_library(\n module_mapping={\n \"ansicolors\": [\"colors\"],\n \"beautifulsoup4\": [\"bs4\"],\n \"setuptools\": [\"pkg_resources\"],\n },\n)", +"language": "python", +"name": "3rdparty/BUILD" +} +] +} +[/block] +For inline `python_requirement_library` targets, configure like this: +[block:code] +{ +"codes": [ +{ +"code": "python_requirement_library(\n name='setuptools',\n requirements=[\n python_requirement('setuptools', modules=['pkg_resources']),\n ],\n)\n", +"language": "python", +"name": "3rdparty/BUILD" +} +] +} +[/block] + +### Known limitations + +#### Does not work with the v1 engine + +You must be solely using the v2 engine for dependency inference to work. Otherwise, when you run v1 tasks, Pants will not know what your dependencies are. + +#### Performance tuning + +We have not yet closely tuned the performance. The performance should be acceptable—and the results will be cached through the Pants daemon (pantsd)—but dependency inference will result in a slowdown compared to explicit targets. + +#### May find cycles in your code + +Dependency inference sometimes reveals cycles between your targets that you did not know about. Run `./pants dependencies --transitive ::` to see if you have any. + +If you have cycles, you will need to manually fix these cycles by either creating new targets or moving around code + +#### No way to exclude inferred dependencies + +Sometimes, dependency inference may infer something that you do not like. Currently, there is not a way to ignore the inference. + +We are working on a feature to ignore a dependency by prefixing the value with `!`, like `!helloworld/project:util`. diff --git a/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-2-0.md b/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-2-0.md new file mode 100644 index 000000000..a049e37fc --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-2-0.md @@ -0,0 +1,21 @@ +--- +title: "2.0.x" +slug: "release-notes-2-0" +hidden: true +createdAt: "2020-06-26T03:30:39.353Z" +--- + +Some highlights: + +- The v1 engine is being removed in order to focus on providing excellent support for v2 language backends: for now, this means Python. +- Dependencies can now be automatically inferred (with manual corrections where necessary), avoiding significant BUILD file boilerplate. +- Pants is now more file-centric and less target-centric. Targets exist to apply metadata to files, but the unit of operation in most cases is a file. In particular, dependency inference happens at the file level. +- The dynamic UI now outputs results for `test`, `lint`, and `fmt` as soon as it has them, rather than waiting for everything to finish. +- Added MyPy support. See [typecheck](doc:python-typecheck-goal). +- Added Python Coverage support. See [test](doc:python-test-goal). +- `help` now outputs the current value and the derivation of that value. This replaces the `options` goal. +- Added gRPC and MyPy Protobuf support. See [Protobuf](doc:protobuf). + +See [here](https://github.com/pantsbuild/pants/blob/master/src/python/pants/notes/2.0.x.rst) for a detailed change log. + +See [How to upgrade](doc:how-to-upgrade-pants-2-0) for a guide on upgrading from Pants 1.x to 2.0. diff --git a/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-2-1.md b/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-2-1.md new file mode 100644 index 000000000..f6e05da9d --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-2-1.md @@ -0,0 +1,17 @@ +--- +title: "2.1.x" +slug: "release-notes-2-1" +hidden: true +createdAt: "2020-10-30T23:13:20.237Z" +--- + +Some highlights: + +- Speedup of dependency inference, around ~30% faster when used in the Pants codebase. +- New `export-codegen` goal. +- New `pants.backend.python.mixed_interpreter_constraints` backend with a `py-constraints` goal to debug what interpreter constraints are used by code, and `py-constraints --summary` to get an overview of your repo's interpreter constraints. See [Interpreter compatibility](doc:python-interpreter-compatibility) and our [blog post](https://blog.pantsbuild.org/python-3-migrations/) about this. +- New shorthand for the `entry_point` field. If you specify the `sources` field, you can set `entry_point=":my_func"`, and Pants will add the source's module name as the prefix. See [package](doc:python-package-goal). +- New `./pants help subsystems` command to list all configurable option scopes. +- Support for remote caching without remote execution. See [Remote Execution](doc:remote-execution). + +See [here](https://github.com/pantsbuild/pants/blob/master/src/python/pants/notes/2.1.x.rst) for a detailed change log. diff --git a/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-2-2.md b/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-2-2.md new file mode 100644 index 000000000..1d4cfa161 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-2-2.md @@ -0,0 +1,17 @@ +--- +title: "2.2.x" +slug: "release-notes-2-2" +hidden: true +createdAt: "2020-11-25T23:17:27.178Z" +--- + +This release requires 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. + +Some highlights: + +- Added dependency inference for Python imports of Protobuf, along with Protobuf imports of Protobuf. See [Protobuf and gRPC](doc:protobuf). +- Pantsd will no longer restart when a run of Pants is killed (such as with `Ctrl+C`): instead, the serverside work will be canceled. This improves performance by keeping your builds warm for longer periods. +- Pants uses PEX `2.1.24`, which enables using [the new PIP resolver](https://pyfound.blogspot.com/2020/11/pip-20-3-new-resolver.html) by setting `[python-setup] resolver_version: pip-2020-resolver`. This is expected to be the only stable release of Pants that supports _both_ resolvers without a deprecation, so give it a whirl soon! +- The `sources` field is deprecated for `pex_binary` and `python_awslambda` targets to ease dependency inference, and improve consistency. See [the change](https://github.com/pantsbuild/pants/pull/11332) for more info! + +See [here](https://github.com/pantsbuild/pants/blob/master/src/python/pants/notes/2.2.x.md) for a detailed change log. diff --git a/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-2-3.md b/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-2-3.md new file mode 100644 index 000000000..fb2affcb6 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-2-3.md @@ -0,0 +1,15 @@ +--- +title: "2.3.x" +slug: "release-notes-2-3" +hidden: true +createdAt: "2021-01-11T01:11:31.324Z" +--- + +Some highlights: + +- Improved performance when running Python subprocesses like Pytest, Flake8, and MyPy, thanks to Pex's new `venv` mode. This shaved off around 1 second for test runs in benchmarks! +- `./pants tailor` goal, which will auto-generate BUILD files for you. See [Adopting Pants in existing repositories](doc:existing-repositories). +- Support for specifying `file://` URLs [for downloaded tools](https://github.com/pantsbuild/pants/pull/11499) like Pex and Protoc. +- More robust remote caching support. The client should be more stable and should avoid performance slowdowns thanks to some new optimizations. See [Remote Execution](doc:remote-execution). + +See [here](https://github.com/pantsbuild/pants/blob/master/src/python/pants/notes/2.3.x.md) for a detailed change log. diff --git a/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-2-4.md b/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-2-4.md new file mode 100644 index 000000000..979f4c21a --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-2-4.md @@ -0,0 +1,18 @@ +--- +title: "2.4.x" +slug: "release-notes-2-4" +hidden: true +createdAt: "2021-02-28T01:52:21.946Z" +--- + +Some highlights: + +- Added opt-in [anonymous telemetry](https://www.pantsbuild.org/v2.4/docs/anonymous-telemetry), to provide the Pants maintainers with data to help drive development decisions. +- Added a warning when an inferred dependency is [skipped due to ambiguity](https://github.com/pantsbuild/pants/pull/11792), and allowed ambiguity to be resolved by explicitly including or excluding (with `!`) dependency choices. +- Enabled use of [pytest-html](https://pypi.org/project/pytest-html/), and other Pytest plugins that write output to files. +- Added support for Pytest config files (e.g. `pytest.ini`). See [test](doc:python-test-goal). +- Added a `--stats-log` option for insights on cache behavior at the end of the run, such as the # of cache hits. +- Added a [default `module_mapping`](https://github.com/pantsbuild/pants/issues/11634) for Python 3rdparty dependency inference. +- Fixed an issue that would prevent code-generated sources from having valid source roots. + +See [here](https://github.com/pantsbuild/pants/blob/master/src/python/pants/notes/2.4.x.md) for a detailed change log. diff --git a/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-2-5.md b/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-2-5.md new file mode 100644 index 000000000..00d119996 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Releases/versions/release-notes-2-5.md @@ -0,0 +1,18 @@ +--- +title: "2.5.x" +slug: "release-notes-2-5" +hidden: true +createdAt: "2021-04-02T19:04:13.658Z" +--- + +Some highlights: + +- Adds Shell support, specifically for Shellcheck, shfmt, and shUnit2. See [Shell overview](doc:shell). +- Allow skipping linters/formatters/typecheckers on a per-target basis, e.g. with `skip_black=True`. See [Linters and formatters](doc:python-linters-and-formatters). +- Pants will now autodiscover config files for tools. See [Linters and formatters](doc:python-linters-and-formatters). +- When you use a constraints file, Pants now knows how to resolve your dependencies only once, and then extract the subset of your dependencies from that single resolve. + - This change means that you will not need to resolve dependencies as many times when running `./pants package`. + - Cache keys are also smaller for goals like `./pants test` and `./pants lint`, which means changing your constraints.txt is less likely to invalidate your whole cache. +- Support for running Pants using Python 3.9. + +See [here](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.5.x.md) for a detailed change log. diff --git a/versioned_docs/version-2.18/docs/shell/run-shell-commands.mdx b/versioned_docs/version-2.18/docs/markdown/Shell/run-shell-commands.md similarity index 59% rename from versioned_docs/version-2.18/docs/shell/run-shell-commands.mdx rename to versioned_docs/version-2.18/docs/markdown/Shell/run-shell-commands.md index b13e32e68..dcdab9be2 100644 --- a/versioned_docs/version-2.18/docs/shell/run-shell-commands.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Shell/run-shell-commands.md @@ -1,15 +1,14 @@ --- - title: Run shell commands - sidebar_position: 1 +title: "Run shell commands" +slug: "run-shell-commands" +excerpt: "How to execute arbitrary scripts and programs" +hidden: false +createdAt: "2021-10-04T12:37:58.934Z" --- -How to execute arbitrary scripts and programs +The [`shell_command`](doc:reference-shell_command) target allows you to run any command during a Pants execution, for the purpose of modifying or creating files to be used by other targets, or its (idempotent: see below) side-effects when accessing services over the network. ---- - -The [`shell_command`](../../reference/targets/shell_command.mdx) target allows you to run any command during a Pants execution, for the purpose of modifying or creating files to be used by other targets, or its (idempotent: see below) side-effects when accessing services over the network. - -```python title="BUILD" +```python BUILD shell_command( command="./my-script.sh download some-archive.tar.gz", tools=["curl", "env", "bash", "mkdir", "tar"], @@ -21,7 +20,7 @@ shell_sources(name="shell-scripts") files(name="images", sources=["*.png"]) ``` -```shell title="my-script.sh" +```shell my-script.sh #!/usr/bin/env bash case "$1" in download) @@ -41,16 +40,16 @@ The command is limited to operating on the specific set of input files provided In case there are resulting files that should be captured and passed to any consuming targets, list them in the `outputs` field. To capture directories, simply add the path to the directory, with a trailing slash (as in the example `”files/”`, above). -:::note Idempotency requirement -The shell command may be cancelled or retried any number of times, so it is important that any side effects are idempotent. That is, it should not matter if it is run several times, or only partially. -::: +> 📘 Idempotency requirement +> +> The shell command may be cancelled or retried any number of times, so it is important that any side effects are idempotent. That is, it should not matter if it is run several times, or only partially. -:::note Running other Pants targets as commands -See the [`adhoc_tool`](../ad-hoc-tools/integrating-new-tools-without-plugins.mdx) documentation for discussion of how to run source files, third-party tools, and version-matched system binaries from within the Pants sandbox. -::: +> 📘 Running other Pants targets as commands +> +> See the [`adhoc_tool`](doc:adhoc-tool) documentation for discussion of how to run source files, third-party tools, and version-matched system binaries from within the Pants sandbox. ## The `run_shell_command` target -Unlike `shell_command`, the [`run_shell_command` target](../../reference/targets/run_shell_command.mdx) runs directly in your workspace, without sandboxing. +Unlike `shell_command`, the [`run_shell_command` target](doc:reference-run_shell_command) runs directly in your workspace, without sandboxing. This target type allows you to formalize the Pants dependencies of shell scripts, and track when their impact on your workspace might have changed. But since its outputs cannot be captured, it must be a root target in your build graph (i.e.: it may not be consumed by other targets). diff --git a/versioned_docs/version-2.18/docs/shell/shell-overview.mdx b/versioned_docs/version-2.18/docs/markdown/Shell/shell.md similarity index 66% rename from versioned_docs/version-2.18/docs/shell/shell-overview.mdx rename to versioned_docs/version-2.18/docs/markdown/Shell/shell.md index 58ff8de5b..8e2385ad2 100644 --- a/versioned_docs/version-2.18/docs/shell/shell-overview.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Shell/shell.md @@ -1,10 +1,9 @@ --- - title: Shell overview - sidebar_position: 0 ---- - -Pants's support for Shellcheck, shfmt, and shUnit2. - +title: "Shell overview" +slug: "shell" +excerpt: "Pants's support for Shellcheck, shfmt, and shUnit2." +hidden: false +createdAt: "2021-04-14T04:21:15.028Z" --- Pants integrates with these tools to empower you to follow best practices with your Shell scripts: @@ -17,11 +16,11 @@ Pants installs these tools deterministically and integrates them into the workfl ## Initial setup: add `shell_sources` targets -Pants uses [`shell_source`](../../reference/targets/shell_source.mdx) and [`shunit2_test`](../../reference/targets/shunit2_test.mdx) [targets](../using-pants/key-concepts/targets-and-build-files.mdx) to know which Shell files you want to operate on and to set any metadata. +Pants uses [`shell_source`](doc:reference-shell_source) and [`shunit2_test`](doc:reference-shunit2_test) [targets](doc:targets) to know which Shell files you want to operate on and to set any metadata. -To reduce boilerplate, the [`shell_sources`](../../reference/targets/shell_sources.mdx) target generates a `shell_source` target for each file in its `sources` field, and [`shunit2_tests`](../../reference/targets/shunit2_tests.mdx) generates a `shunit2_test` target for each file in its `sources` field. +To reduce boilerplate, the [`shell_sources`](doc:reference-shell_sources) target generates a `shell_source` target for each file in its `sources` field, and [`shunit2_tests`](doc:reference-shunit2_tests) generates a `shunit2_test` target for each file in its `sources` field. -```python title="BUILD" +```python BUILD shell_sources(name="lib", sources=["deploy.sh", "changelog.sh"]) shell_tests(name="tests", sources=["changelog_test.sh"]) @@ -37,14 +36,14 @@ shell_tests(name="tests") First, activate the Shell backend in your `pants.toml`: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] backend_packages = [ "pants.backend.shell", ] ``` -Then, run [`pants tailor ::`](../getting-started/initial-configuration.mdx#5-generate-build-files) to generate BUILD files: +Then, run [`pants tailor ::`](doc:initial-configuration#5-generate-build-files) to generate BUILD files: ``` $ pants tailor :: @@ -60,32 +59,31 @@ You can also manually add targets, which is necessary if you have any scripts th shell_source(name="script_without_a_extension", source="script_without_an_extension") ``` -:::note Shell dependency inference -Pants will infer dependencies by looking for imports like `source script.sh` and `. script.sh`. You can check that the correct dependencies are inferred by running `pants dependencies path/to/script.sh` and `pants dependencies --transitive path/to/script.sh`. - -Normally, Pants will not understand dynamic sources, e.g. using variable expansion. However, Pants uses Shellcheck for parsing, so you can use Shellcheck's syntax to give a hint to Pants: - -```shell -another_script="dir/some_script.sh" - -# Normally Pants couldn't infer this, but we can give a hint like this: -# shellcheck source=dir/some_script.sh -source "${another_script}" -``` - -Alternatively, you can explicitly add `dependencies` in the relevant BUILD file. - -```python -shell_sources(dependencies=["path/to:shell_source_tgt"]) -``` - -::: +> 📘 Shell dependency inference +> +> Pants will infer dependencies by looking for imports like `source script.sh` and `. script.sh`. You can check that the correct dependencies are inferred by running `pants dependencies path/to/script.sh` and `pants dependencies --transitive path/to/script.sh`. +> +> Normally, Pants will not understand dynamic sources, e.g. using variable expansion. However, Pants uses Shellcheck for parsing, so you can use Shellcheck's syntax to give a hint to Pants: +> +> ```shell +> another_script="dir/some_script.sh" +> +> # Normally Pants couldn't infer this, but we can give a hint like this: +> # shellcheck source=dir/some_script.sh +> source "${another_script}" +> ``` +> +> Alternatively, you can explicitly add `dependencies` in the relevant BUILD file. +> +> ```python +> shell_sources(dependencies=["path/to:shell_source_tgt"]) +> ``` ## shfmt autoformatter To activate, add this to your `pants.toml`: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] backend_packages = [ "pants.backend.shell", @@ -134,17 +132,17 @@ Only run shfmt with `--lint-only` and `--fmt-only`: pants fmt --only=shfmt :: ``` -:::tip Benefit of Pants: shfmt runs in parallel with Python, Java, Scala, and Go formatters -Normally, Pants runs formatters sequentially so that it can pipe the results of one formatter into the next. However, Pants will run shfmt in parallel to formatters for other languages, [like Python](../python/python-overview/linters-and-formatters.mdx), because shfmt does not operate on those languages. - -You can see this concurrency through Pants's dynamic UI. -::: +> 👍 Benefit of Pants: shfmt runs in parallel with Python, Java, Scala, and Go formatters +> +> Normally, Pants runs formatters sequentially so that it can pipe the results of one formatter into the next. However, Pants will run shfmt in parallel to formatters for other languages, [like Python](doc:python-linters-and-formatters), because shfmt does not operate on those languages. +> +> You can see this concurrency through Pants's dynamic UI. ## Shellcheck linter To activate, add this to your `pants.toml`: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] backend_packages = [ "pants.backend.shell", @@ -192,9 +190,9 @@ Only run Shellcheck with `--lint-only`: pants lint --only=shellcheck :: ``` -:::tip Benefit of Pants: Shellcheck runs in parallel with other linters -Pants will attempt to run all activated linters and formatters at the same time for improved performance, including [Python](../python/python-overview/linters-and-formatters.mdx), Go, Java, and Scala linters. You can see this through Pants's dynamic UI. -::: +> 👍 Benefit of Pants: Shellcheck runs in parallel with other linters +> +> Pants will attempt to run all activated linters and formatters at the same time for improved performance, including [Python](doc:python-linters-and-formatters), Go, Java, and Scala linters. You can see this through Pants's dynamic UI. ## shUnit2 test runner @@ -203,13 +201,13 @@ Pants will attempt to run all activated linters and formatters at the same time To use shunit2 with Pants: 1. Create a test file like `tests.sh`, `test_foo.sh`, or `foo_test.sh`. - - Refer to [https://github.com/kward/shunit2/](https://github.com/kward/shunit2/) for how to write shUnit2 tests. + - Refer to for how to write shUnit2 tests. 2. Create a `shunit2_test` or `shunit2_tests` target in the directory's BUILD file. - - You can run [`pants tailor`](../getting-started/initial-configuration.mdx#5-generate-build-files) to automate this step. + - You can run [`pants tailor`](doc:initial-configuration#5-generate-build-files) to automate this step. 3. Specify which shell to run your tests with, either by setting a shebang directly in the test file or by setting the field `shell` on the `shunit2_test` / `shunit2_tests` target. - - See [here](../../reference/targets/shunit2_tests.mdx#codeshellcode) for all supported shells. + - See [here](doc:reference-shunit2_tests#codeshellcode) for all supported shells. -```shell title="scripts/tests.sh" +```shell scripts/tests.sh #!/usr/bin/env bash testEquality() { @@ -217,7 +215,7 @@ testEquality() { } ``` -```python title="scripts/BUILD" +```python scripts/BUILD shunit2_tests(name="tests") ``` @@ -236,9 +234,9 @@ pants test scripts/tests.sh Pants will download the `./shunit2` script and will add `source ./shunit2` with the correct relpath for you. -You can import your production code by using `source`. Make sure the code belongs to a `shell_source` or `shell_sources` target. Pants's [dependency inference](../using-pants/key-concepts/targets-and-build-files.mdx) will add the relevant dependencies, which you can confirm by running `pants dependencies scripts/tests.sh`. You can also manually add to the `dependencies` field of your `shunit2_tests` target. +You can import your production code by using `source`. Make sure the code belongs to a `shell_source` or `shell_sources` target. Pants's [dependency inference](doc:targets) will add the relevant dependencies, which you can confirm by running `pants dependencies scripts/tests.sh`. You can also manually add to the `dependencies` field of your `shunit2_tests` target. -```shell title="scripts/tests.sh" +```shell scripts/tests.sh #!/usr/bin/bash source scripts/lib.sh @@ -248,40 +246,39 @@ testAdd() { } ``` -```shell title="scripts/lib.sh" +```shell scripts/lib.sh add_one() { echo $(($1 + 1)) } ``` -```shell title="scripts/BUILD" +```shell scripts/BUILD shell_sources(name="lib") shell_tests(name="tests") ``` -:::tip Running your tests with multiple shells -Pants allows you to run the same tests against multiple shells, e.g. Bash and Zsh, to ensure your code works with each shell. - -To test multiple shells, use the `parametrize` mechanism, like this: - -```python -shunit2_tests( -name="tests", -shell=parametrize("bash", "zsh"), -) -``` - -Then, use `pants test`: - -```bash -# Run tests with both shells. -pants test scripts/tests.sh - -# Run tests with only Zsh. -pants test scripts/tests.sh:tests@shell=zsh -``` - -::: +> 👍 Running your tests with multiple shells +> +> Pants allows you to run the same tests against multiple shells, e.g. Bash and Zsh, to ensure your code works with each shell. +> +> To test multiple shells, use the `parametrize` mechanism, like this: +> +> ```python +> shunit2_tests( +> name="tests", +> shell=parametrize("bash", "zsh"), +> ) +> ``` +> +> Then, use `pants test`: +> +> ```bash +> # Run tests with both shells. +> pants test scripts/tests.sh +> +> # Run tests with only Zsh. +> pants test scripts/tests.sh:tests@shell=zsh +> ``` ### Controlling output @@ -289,7 +286,7 @@ By default, Pants only shows output for failed tests. You can change this by set You can permanently set the output format in your `pants.toml` like this: -```toml title="pants.toml" +```toml pants.toml [test] output = "all" ``` @@ -304,14 +301,14 @@ Test runs are _hermetic_, meaning that they are stripped of the parent `pants` p To add any arbitrary environment variable back to the process, use the option `extra_env_vars` in the `[test]` options scope. You can hardcode a value for the option, or leave off a value to "allowlist" it and read from the parent `pants` process's environment. -```toml title="pants.toml" +```toml pants.toml [test] extra_env_vars = ["VAR1", "VAR2=hardcoded_value"] ``` Use `[bash-setup].executable_search_paths` to change the `$PATH` env var used during test runs. You can use the special string `""` to read the value from the parent `pants` process's environment. -```toml title="pants.toml" +```toml pants.toml [bash-setup] executable_search_paths = ["/usr/bin", ""] ``` @@ -322,13 +319,13 @@ Pants can cancel tests that take too long, which is useful to prevent tests from To add a timeout, set the `timeout` field to an integer value of seconds, like this: -```python title="BUILD" +```python BUILD shunit2_test(name="tests", source="tests.sh", timeout=120) ``` When you set `timeout` on the `shunit2_tests` target generator, the same timeout will apply to every generated `shunit2_test` target. Instead, you can use the `overrides` field: -```python title="BUILD" +```python BUILD shunit2_tests( name="tests", overrides={ @@ -340,7 +337,7 @@ shunit2_tests( You can also set a default value and a maximum value in `pants.toml`: -```toml title="pants.toml" +```toml pants.toml [test] timeout_default = 60 timeout_maximum = 600 @@ -356,11 +353,11 @@ You can include the result of `pants package` in your test through the `runtime_ This allows you to test your packaging pipeline by simply running `pants test ::`, without needing custom integration test scripts. -To depend on a built package, use the `runtime_package_dependencies` field on the `shunit2_test` / `shunit2_tests` targets, which is a list of addresses to targets that can be built with `pants package`, such as [`pex_binary`](../python/goals/package.mdx), [`python_aws_lambda_function`](../python/integrations/aws-lambda.mdx), and [`archive`](../using-pants/assets-and-archives.mdx) targets. Pants will build the package before running your test, and insert the file into the test's chroot. It will use the same name it would normally use with `pants package`, except without the `dist/` prefix. +To depend on a built package, use the `runtime_package_dependencies` field on the `shunit2_test` / `shunit2_tests` targets, which is a list of addresses to targets that can be built with `pants package`, such as [`pex_binary`](doc:python-package-goal), [`python_aws_lambda_function`](doc:awslambda-python), and [`archive`](doc:assets) targets. Pants will build the package before running your test, and insert the file into the test's chroot. It will use the same name it would normally use with `pants package`, except without the `dist/` prefix. For example: -```python title="helloworld/BUILD" +```python helloworld/BUILD python_source(name="py_src", source="say_hello.py") pex_binary(name="pex", entry_point="say_hello.py") @@ -371,11 +368,11 @@ shunit2_test( ) ``` -```python title="helloworld/say_hello.py" +```python helloworld/say_hello.py print("Hello, test!") ``` -```shell title="helloworld/tests.sh" +```shell helloworld/tests.sh #!/usr/bin/bash testArchiveCreated() { diff --git a/versioned_docs/version-2.18/docs/tutorials-coming-soon/advanced-plugin-concepts.mdx b/versioned_docs/version-2.18/docs/markdown/Tutorials/advanced-plugin-concepts.md similarity index 84% rename from versioned_docs/version-2.18/docs/tutorials-coming-soon/advanced-plugin-concepts.mdx rename to versioned_docs/version-2.18/docs/markdown/Tutorials/advanced-plugin-concepts.md index 3b9bdff2f..ad7d69ec1 100644 --- a/versioned_docs/version-2.18/docs/tutorials-coming-soon/advanced-plugin-concepts.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Tutorials/advanced-plugin-concepts.md @@ -1,19 +1,18 @@ --- - title: Advanced plugin concepts - sidebar_position: 2 +title: "Advanced plugin concepts" +slug: "advanced-plugin-concepts" +excerpt: "Learning advanced concepts for writing plugins." +hidden: false +createdAt: "2022-02-07T05:44:28.620Z" --- -Learning advanced concepts for writing plugins. +# Introduction ---- - -## Introduction - -In this tutorial, we continue from where we've left in the [previous tutorial](./create-a-new-goal.mdx). Having now a complete goal with a custom target, we are ready to make certain improvements and learn more advanced concepts that you would likely find useful when working on your own plugins. +In this tutorial, we continue from where we've left in the [previous tutorial](doc:create-a-new-goal). Having now a complete goal with a custom target, we are ready to make certain improvements and learn more advanced concepts that you would likely find useful when working on your own plugins. -### Adding a custom `source` field +## Adding a custom `source` field -In the first tutorial, to keep things simple, we used the default `SingleSourceField` class for our `source` field where we provided the path to the `VERSION` file. We could have added [a custom field](../writing-plugins/the-target-api/creating-new-fields.mdx) to provide a file path, however, when using the `source` field, you get a few features for free such as setting the `default` value and `expected_file_extensions`. Furthermore, with the `source` field, thanks to the [`unmatched_build_file_globs`](../../reference/global-options.mdx#unmatched_build_file_globs) option, you won't need to provide custom logic to handle errors when path globs do not expand to any files in your repository. +In the first tutorial, to keep things simple, we used the default `SingleSourceField` class for our `source` field where we provided the path to the `VERSION` file. We could have added [a custom field](https://www.pantsbuild.org/docs/target-api-new-fields) to provide a file path, however, when using the `source` field, you get a few features for free such as setting the `default` value and `expected_file_extensions`. Furthermore, with the `source` field, thanks to the [`unmatched_build_file_globs`](https://www.pantsbuild.org/docs/reference-global#unmatched_build_file_globs) option, you won't need to provide custom logic to handle errors when path globs do not expand to any files in your repository. Let's modify our `myapp/BUILD` file: @@ -44,9 +43,9 @@ $ PANTS_UNMATCHED_BUILD_FILE_GLOBS=error pants project-version myapp: Exception: Unmatched glob from myapp:main-project-version's `source` field: "myapp/non-existing-file" ``` -We would likely want to use the same name for the version file (`VERSION`) throughout the repo for consistency, so we should probably set a default value for the target to reduce the amount of boilerplate in the `BUILD` files. To change a default value, we have to subclass the original field. Visit [customizing fields through subclassing](../writing-plugins/the-target-api/concepts.mdx#customizing-fields-through-subclassing) to learn more. +We would likely want to use the same name for the version file (`VERSION`) throughout the repo for consistency, so we should probably set a default value for the target to reduce the amount of boilerplate in the `BUILD` files. To change a default value, we have to subclass the original field. Visit [customizing fields through subclassing](https://www.pantsbuild.org/docs/target-api-concepts#customizing-fields-through-subclassing) to learn more. -```python title="pants-plugins/project_version/target_types.py" +```python pants-plugins/project_version/target_types.py from pants.engine.target import COMMON_TARGET_FIELDS, SingleSourceField, Target class ProjectVersionSourceField(SingleSourceField): @@ -95,9 +94,9 @@ targets = [tgt for tgt in targets if tgt.has_field(ProjectVersionSourceField)] Using own classes via subclassing will also help with refactoring if you decide to deprecate the target alias in order to rename it. In a more advanced scenario, other plugins may import the `ProjectVersionSourceField` field and use it in their own custom targets, so that `project-version` specific behavior would still apply to those targets as well. -### Ensuring a version follows a semver convention +## Ensuring a version follows a semver convention -With the current implementation, we have simply returned the contents of the file as is. We may want to add some validation, for instance, to check that a version string follows a semver convention. Let's learn how to [bring a 3rd party Python package](../writing-plugins/plugins-overview.mdx#thirdparty-dependencies), namely, [packaging](https://pypi.org/project/packaging/), into our plugin to do that! +With the current implementation, we have simply returned the contents of the file as is. We may want to add some validation, for instance, to check that a version string follows a semver convention. Let's learn how to [bring a 3rd party Python package](https://www.pantsbuild.org/docs/plugins-overview#thirdparty-dependencies), namely, [packaging](https://pypi.org/project/packaging/), into our plugin to do that! To start depending on the `packaging` package in our in-repo plugin, we must extend the `pants.toml` file: @@ -141,15 +140,15 @@ $ pants project-version myapp: InvalidProjectVersionString: Invalid version string 'x.y.z' from 'myapp/VERSION' ``` -### Exploring caching +## Exploring caching -When you have run the goal a few times, you may have noticed that sometimes the command takes a few seconds to complete, and sometimes it completes immediately. If that's the case, then you have just seen [Pants caching](../writing-plugins/the-rules-api/tips-and-debugging.mdx#fyi-caching-semantics) working! Because we use Pants engine to read the `VERSION` file, it copies it into the cache. Pants knows that when the command is re-run, if there are no changes to the Python source code or the `VERSION` file, there's no need to re-run the code because the result is guaranteed to stay the same. +When you have run the goal a few times, you may have noticed that sometimes the command takes a few seconds to complete, and sometimes it completes immediately. If that's the case, then you have just seen [Pants caching](https://www.pantsbuild.org/docs/rules-api-tips#fyi-caching-semantics) working! Because we use Pants engine to read the `VERSION` file, it copies it into the cache. Pants knows that when the command is re-run, if there are no changes to the Python source code or the `VERSION` file, there's no need to re-run the code because the result is guaranteed to stay the same. If your plugin uses 3rd party Python packages dependencies, it can be worth checking whether the package has any side effects such as reading from the filesystem since this won't let you take full advantage of the Pants engine's caching mechanism. Keep in mind that the commands you run via Pants may be cancelled or retried any number of times, so ideally any side effects should be [idempotent](https://en.wikipedia.org/wiki/Idempotence). That is, it should not matter if it is run once or several times. -You can confirm that cache is being used by adding [log statements](../writing-plugins/the-rules-api/logging-and-dynamic-output.mdx). When run for the first time, the logging messages will show up; on subsequent runs, they won't because the code of the rules won't be executed. +You can confirm that cache is being used by adding [log statements](https://www.pantsbuild.org/docs/rules-api-logging). When run for the first time, the logging messages will show up; on subsequent runs, they won't because the code of the rules won't be executed. -### Showing output as JSON +## Showing output as JSON We have so far shown the version string as part of the `ProjectVersionFileView` class: @@ -158,7 +157,7 @@ $ pants project-version myapp: ProjectVersionFileView(path='myapp/VERSION', version='0.0.1') ``` -To be able to pipe the output of our command, it may make sense to emit the format in a parseable structure instead of plain text. Pants goals come with lots of options that can adjust their behavior, and this is true for custom goals as well. Let's [add a new option](../writing-plugins/the-rules-api/options-and-subsystems.mdx) for our goal, so that the version information would be shown as a JSON object. +To be able to pipe the output of our command, it may make sense to emit the format in a parseable structure instead of plain text. Pants goals come with lots of options that can adjust their behavior, and this is true for custom goals as well. Let's [add a new option](https://www.pantsbuild.org/docs/rules-api-subsystems) for our goal, so that the version information would be shown as a JSON object. Adding a new option is trivial and is done in the subsystem: @@ -199,13 +198,13 @@ $ pants project-version --as-json myapp: | jq } ``` -### Automating generation of `project_version` targets +## Automating generation of `project_version` targets -Pants provides a way to automate generation of standard targets using the [`tailor`](../../reference/goals/tailor.mdx) goal. If a monorepository has many projects, each containing a `VERSION` file, it might be useful to generate `version_file` targets in every directory where the relevant files are found. This is what Pants does, for instance, when Docker backend is enabled, and you have `Dockerfile` files in the codebase. To make this work for our use case, however, we need to introduce the `tailor` goal to the `VERSION` files. +Pants provides a way to automate generation of standard targets using the [`tailor`](https://www.pantsbuild.org/docs/reference-tailor) goal. If a monorepository has many projects, each containing a `VERSION` file, it might be useful to generate `version_file` targets in every directory where the relevant files are found. This is what Pants does, for instance, when Docker backend is enabled, and you have `Dockerfile` files in the codebase. To make this work for our use case, however, we need to introduce the `tailor` goal to the `VERSION` files. We've reached the moment when the documentation won't be of help: there are no instructions on how to extend the `tailor` goal. In a situation like this, it may be worth exploring the Pants codebase to see how this was done in other plugins that are part of Pants. Once you find a piece of code that looks like it does what you want, you can copy it and tweak it to better suit your needs. For our use case, the code used in [generation of C++ source targets](https://github.com/pantsbuild/pants/blob/672ca1d662c76f2567e432347deee8949c14d35d/src/python/pants/backend/cc/goals/tailor.py) may get handy. After making a few changes, we have a new rule we can place in a new file: -```python title="pants-plugins/project_version/tailor.py" +```python pants-plugins/project_version/tailor.py from __future__ import annotations from dataclasses import dataclass @@ -264,7 +263,7 @@ def rules(): ] ``` -In this file, we use an advanced feature of Pants, [union rules](../writing-plugins/the-rules-api/union-rules-advanced.mdx): +In this file, we use an advanced feature of Pants, [union rules](https://www.pantsbuild.org/docs/rules-api-unions): ```python def rules(): @@ -278,7 +277,7 @@ When the `tailor` goal is run, the build graph is analyzed to see when `Putative We also have to make sure that the new rule is collected: -```python title="pants-plugins/project_version/register.py" +```python pants-plugins/project_version/register.py ... def rules(): return [*project_version_rules.rules(), *tailor_rules.rules()] @@ -302,9 +301,9 @@ Would create myapp/BUILD: To fix `tailor` failures, run `pants tailor`. ``` -### Running system tools +## Running system tools -Pants lets you [run system applications](../writing-plugins/the-rules-api/installing-tools.mdx) your plugin may need. For our use case, we can assume that Git is installed and can be run from the `/usr/bin/git`. If there's a `VERSION` file in the root of the repository representing the final artifact version (in case of a monolith), we could use Git to confirm that the version string matches the latest tag the repository was tagged with. +Pants lets you [run system applications](https://www.pantsbuild.org/docs/rules-api-installing-tools) your plugin may need. For our use case, we can assume that Git is installed and can be run from the `/usr/bin/git`. If there's a `VERSION` file in the root of the repository representing the final artifact version (in case of a monolith), we could use Git to confirm that the version string matches the latest tag the repository was tagged with. We can create a new rule: @@ -396,7 +395,7 @@ $ pants project-version --as-json myapp: ProjectVersionGitTagMismatch: Project version string '0.0.3' from 'myapp/VERSION' doesn't match latest Git tag '0.0.1' ``` -This happens because of how the Pants cache works. Modifying our repository tags doesn't qualify for the changes that should invalidate the cache. It is not safe to [cache the `Process` runs](../writing-plugins/the-rules-api/processes.mdx) and since we know that Git will access the repository (that is outside the sandbox), we should change its cacheability using the `ProcessCacheScope` parameter so that our Git call would run once per run of Pants. +This happens because of how the Pants cache works. Modifying our repository tags doesn't qualify for the changes that should invalidate the cache. It is not safe to [cache the `Process` runs](https://www.pantsbuild.org/docs/rules-api-process) and since we know that Git will access the repository (that is outside the sandbox), we should change its cacheability using the `ProcessCacheScope` parameter so that our Git call would run once per run of Pants. ```python git_describe = await Get( @@ -423,7 +422,7 @@ class ProjectVersionSubsystem(GoalSubsystem): ) ``` -Keep in mind that once you've declared [custom options in the plugin's subsystem](../using-pants/key-concepts/options.mdx#setting-options), they can be set in the `pants.toml` file just like any standard Pants options. +Keep in mind that once you've declared [custom options in the plugin's subsystem](https://www.pantsbuild.org/docs/options#setting-options), they can be set in the `pants.toml` file just like any standard Pants options. If you know that your Git tag may be different from the project version stored in the `VERSION` file and that you would always want the output to be in the JSON format, you can set these options in the `pants.toml` file for visibility (and to avoid setting them via command line flags): @@ -433,7 +432,7 @@ as_json = true match_git = false ``` -### Putting it all together +## Putting it all together We have now extended the plugin with extra functionality: @@ -446,7 +445,7 @@ $ pants project-version myapp: Let's get all of this code in one place: -```python title="pants-plugins/project_version/register.py" +```python pants-plugins/project_version/register.py from typing import Iterable import project_version.rules as project_version_rules @@ -463,7 +462,7 @@ def rules(): return [*project_version_rules.rules(), *tailor_rules.rules()] ``` -```python title="pants-plugins/project_version/rules.py" +```python pants-plugins/project_version/rules.py import dataclasses import json from dataclasses import dataclass @@ -599,7 +598,7 @@ def rules(): return collect_rules() ``` -```python title="pants-plugins/project_version/tailor.py" +```python pants-plugins/project_version/tailor.py from __future__ import annotations from dataclasses import dataclass @@ -658,7 +657,7 @@ def rules(): ] ``` -```python title="pants-plugins/project_version/target_types.py" +```python pants-plugins/project_version/target_types.py from pants.engine.target import COMMON_TARGET_FIELDS, SingleSourceField, Target diff --git a/versioned_docs/version-2.18/docs/tutorials-coming-soon/create-a-new-goal.mdx b/versioned_docs/version-2.18/docs/markdown/Tutorials/create-a-new-goal.md similarity index 79% rename from versioned_docs/version-2.18/docs/tutorials-coming-soon/create-a-new-goal.mdx rename to versioned_docs/version-2.18/docs/markdown/Tutorials/create-a-new-goal.md index 022d2b880..d5b8430a9 100644 --- a/versioned_docs/version-2.18/docs/tutorials-coming-soon/create-a-new-goal.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Tutorials/create-a-new-goal.md @@ -1,10 +1,9 @@ --- - title: Create a new goal - sidebar_position: 1 ---- - -Getting started writing plugins for Pants by creating a new goal. - +title: "Create a new goal" +slug: "create-a-new-goal" +excerpt: "Getting started writing plugins for Pants by creating a new goal." +hidden: false +createdAt: "2022-02-07T05:44:28.620Z" --- In this tutorial, you'll learn the basics needed to get started writing a plugin. You will create a new goal, `project-version`, which will tell you the version (retrieved from the `VERSION` text file) of a particular project in your monorepository. You will learn how to create a new custom target to refer to the `VERSION` file, how to author a new goal, and, most importantly, how to connect rules and targets. @@ -13,9 +12,9 @@ You can follow along this tutorial in your own repository; you only need to be o ### Registering a plugin -We'll be writing an [in-repo plugin](../writing-plugins/plugins-overview.mdx#in-repo-plugins), and expect you to have the `pants-plugins/project_version` directory as well as the `pants.toml` file with this configuration: +We'll be writing an [in-repo plugin](https://www.pantsbuild.org/docs/plugins-overview#in-repo-plugins), and expect you to have the `pants-plugins/project_version` directory as well as the `pants.toml` file with this configuration: -```toml title="pants.toml" +```toml pants.toml # Specifying the path to our plugin's top-level folder using the `pythonpath` option: pythonpath = ["%(buildroot)s/pants-plugins"] @@ -28,9 +27,9 @@ backend_packages = [ ### Creating a new target -Once you have become familiar with the [core concepts of Targets and Fields](../writing-plugins/the-target-api/concepts.mdx), you are ready to [create an own custom target](../writing-plugins/the-target-api/creating-new-targets.mdx) that will represent the `VERSION` file: +Once you have become familiar with the [core concepts of Targets and Fields](https://www.pantsbuild.org/docs/target-api-concepts), you are ready to [create an own custom target](https://www.pantsbuild.org/docs/target-api-new-targets) that will represent the `VERSION` file: -```python title="pants-plugins/project_version/target_types.py" +```python pants-plugins/project_version/target_types.py from pants.engine.target import COMMON_TARGET_FIELDS, SingleSourceField, Target @@ -40,13 +39,13 @@ class ProjectVersionTarget(Target): help = "A project version target representing the VERSION file." ``` -Our target has some common target fields such as `tags` and `description` available via the `COMMON_TARGET_FIELDS`; including those fields in your targets may be convenient if you decide to use tags and provide a description later. In addition, it also has the [`source` field](../writing-plugins/the-rules-api/rules-and-the-target-api.mdx#sourcesfield) which will be used to provide path to the project's `VERSION` file. +Our target has some common target fields such as `tags` and `description` available via the `COMMON_TARGET_FIELDS`; including those fields in your targets may be convenient if you decide to use tags and provide a description later. In addition, it also has the [`source` field](https://www.pantsbuild.org/docs/rules-api-and-target-api#sourcesfield) which will be used to provide path to the project's `VERSION` file. -We could [add a custom field](../writing-plugins/the-target-api/creating-new-fields.mdx) to provide a file path, however, there are multiple advantages to using the `source` field. You will learn more about them in the following tutorials. +We could [add a custom field](https://www.pantsbuild.org/docs/target-api-new-fields) to provide a file path, however, there are multiple advantages to using the `source` field. You will learn more about them in the following tutorials. In order to start using a target, you only need to register it: -```python title="pants-plugins/project_version/register.py" +```python pants-plugins/project_version/register.py from typing import Iterable from pants.engine.target import Target @@ -112,11 +111,11 @@ $ pants peek myapp:main-project-version ### Creating a goal -[Goals](../using-pants/key-concepts/goals.mdx) are the commands that Pants runs such as `fmt` or `lint`. Writing a plugin doesn't necessarily mean adding a new goal. Most users would likely only want to enrich their build metadata with new kinds of targets or extend behavior of existing Pants goals. See [Common plugin tasks](../writing-plugins/common-plugin-tasks/index.mdx) to learn more. +[Goals](https://www.pantsbuild.org/docs/goals) are the commands that Pants runs such as `fmt` or `lint`. Writing a plugin doesn't necessarily mean adding a new goal. Most users would likely only want to enrich their build metadata with new kinds of targets or extend behavior of existing Pants goals. See [Common plugin tasks](https://www.pantsbuild.org/docs/common-plugin-tasks) to learn more. -For the purposes of our tutorial, to be able to get a project version number (using a target we've just created), we need to [create a new goal](../writing-plugins/the-rules-api/goal-rules.mdx). The code below is the boilerplate necessary to create a goal, so it's not really necessary to understand how, for instance, subsystems work right now. The function decorated with the `@goal_rule` can be named anything, but it's helpful for the name to represent the functionality your goal provides. To make your goal part of the plugin's interface, add it to the `rules` function in the `register.py` module. +For the purposes of our tutorial, to be able to get a project version number (using a target we've just created), we need to [create a new goal](https://www.pantsbuild.org/docs/rules-api-goal-rules). The code below is the boilerplate necessary to create a goal, so it's not really necessary to understand how, for instance, subsystems work right now. The function decorated with the `@goal_rule` can be named anything, but it's helpful for the name to represent the functionality your goal provides. To make your goal part of the plugin's interface, add it to the `rules` function in the `register.py` module. -```python title="pants-plugins/project_version/rules.py" +```python pants-plugins/project_version/rules.py from pants.engine.goal import Goal, GoalSubsystem from pants.engine.rules import collect_rules, goal_rule @@ -140,7 +139,7 @@ def rules(): return collect_rules() ``` -```python title="pants-plugins/project_version/register.py" +```python pants-plugins/project_version/register.py from typing import Iterable import project_version.rules as project_version_rules @@ -160,7 +159,7 @@ You can now run `pants project-version` to confirm the command exits with the ex At this point, we are ready to do something useful with the new target of ours. Goals generally run on targets, so they need to be passed as an argument in the command line. For instance, to format the `myproject` directory targets, you would run `pants fmt myproject`. To get the version of a project in your repository, it makes sense to pass to the `project-version` goal a project directory containing the `version_file` definition. -To make a target passed as an argument accessible in the goal rule, we pass the [`Targets`](../writing-plugins/the-rules-api/goal-rules.mdx#how-to-operate-on-targets) as input arguments of the function along with the [`Console`](../writing-plugins/the-rules-api/goal-rules.mdx#console-output-to-stdoutstderr) object so that we can print the details of our target in the user terminal: +To make a target passed as an argument accessible in the goal rule, we pass the [`Targets`](https://www.pantsbuild.org/docs/rules-api-goal-rules#how-to-operate-on-targets) as input arguments of the function along with the [`Console`](https://www.pantsbuild.org/docs/rules-api-goal-rules#console-output-to-stdoutstderr) object so that we can print the details of our target in the user terminal: ```python @goal_rule @@ -193,7 +192,7 @@ $ pants project-version myapp You can think of the `@goal_rule` as of the `main` function in your Python program where you would call various functions that your program needs to complete. For auxiliary code, it makes sense to place it into standalone functions which is what `@rule`s are for. -Let's create a rule that will return a data structure that we'll use to represent our project version. [Data classes](../writing-plugins/the-rules-api/concepts.mdx#dataclasses) work really well with Pants engine, so let's create one: +Let's create a rule that will return a data structure that we'll use to represent our project version. [Data classes](https://www.pantsbuild.org/docs/rules-api-concepts#dataclasses) work really well with Pants engine, so let's create one: ```python @dataclass(frozen=True) @@ -219,7 +218,7 @@ Now, we have our `@goal_rule`, but we cannot call the `get_project_version_file_ - passes an object of the type that matches the type of the rule's input arguments - requests an object of the type that a rule returns (you can see that in a type hint) -For this, you can use [`Get`](../writing-plugins/the-rules-api/concepts.mdx#await-get---awaiting-results-in-a-rule-body): +For this, you can use [`Get`](https://www.pantsbuild.org/docs/rules-api-concepts#await-get---awaiting-results-in-a-rule-body): ```python @goal_rule @@ -248,9 +247,8 @@ Get(ProjectVersionFileView, ProjectVersionTarget, target) async def get_project_version_file_view(target: ProjectVersionTarget) -> ProjectVersionFileView: ... ``` -:::note Understanding the requests and rules signatures -In our basic usage, there's a 1:1 match between the `Get(output: B, input: A, obj)` request and the `@rule(input: A) -> B` function signature. This doesn't have to be the case! When you make a request (providing an input type and asking for an output type), Pants looks at all the [rules in the graph](../writing-plugins/the-rules-api/concepts.mdx#the-rule-graph) to find a way from the input to the output using all the available rules. -::: +> 📘 Understanding the requests and rules signatures +> In our basic usage, there's a 1:1 match between the `Get(output: B, input: A, obj)` request and the `@rule(input: A) -> B` function signature. This doesn't have to be the case! When you make a request (providing an input type and asking for an output type), Pants looks at all the [rules in the graph](https://www.pantsbuild.org/docs/rules-api-concepts#the-rule-graph) to find a way from the input to the output using all the available rules. Let's consider a following scenario where you have a few `@rule`s and a `Get()` request: @@ -279,7 +277,7 @@ You would normally expect for a project to have only a single `version_file` tar ### Reading the `VERSION` file -Let's read the `VERSION` file and print the version number in the terminal. The `source` field of our target needs to be ["hydrated"](../writing-plugins/the-rules-api/rules-and-the-target-api.mdx#sourcesfield). [Reading a file](../writing-plugins/the-rules-api/file-system.mdx) is pretty straightforward as well. We use `Get()` to transform our inputs as needed. Knowing what class you need to request may be tricky, so make sure to review the documentation, and ask for help if you are stuck! +Let's read the `VERSION` file and print the version number in the terminal. The `source` field of our target needs to be ["hydrated"](https://www.pantsbuild.org/docs/rules-api-and-target-api#sourcesfield). [Reading a file](https://www.pantsbuild.org/docs/rules-api-file-system) is pretty straightforward as well. We use `Get()` to transform our inputs as needed. Knowing what class you need to request may be tricky, so make sure to review the documentation, and ask for help if you are stuck! ```python @rule @@ -294,7 +292,7 @@ async def get_project_version_file_view( ) ``` -If the `@goal_rule` would receive multiple `version_file` targets (which may happen if user would run the goal for multiple projects or provide a recursive glob pattern such as `::`), it would be required to iterate over the list of targets. For efficiency, it is generally encouraged to replace the `Get()` calls in the `for` loop with a [`MultiGet()` call](../writing-plugins/the-rules-api/tips-and-debugging.mdx#tip-use-multiget-for-increased-concurrency): +If the `@goal_rule` would receive multiple `version_file` targets (which may happen if user would run the goal for multiple projects or provide a recursive glob pattern such as `::`), it would be required to iterate over the list of targets. For efficiency, it is generally encouraged to replace the `Get()` calls in the `for` loop with a [`MultiGet()` call](https://www.pantsbuild.org/docs/rules-api-tips#tip-use-multiget-for-increased-concurrency): ```python @goal_rule @@ -312,7 +310,7 @@ async def goal_show_project_version(console: Console, targets: Targets) -> Proje Let's get all of this code in one place and see what happens! -```python title="pants-plugins/project_version/rules.py" +```python pants-plugins/project_version/rules.py from dataclasses import dataclass from pants.engine.console import Console @@ -371,7 +369,7 @@ def rules(): return collect_rules() ``` -```python title="pants-plugins/project_version/target_types.py" +```python pants-plugins/project_version/target_types.py from pants.engine.target import COMMON_TARGET_FIELDS, SingleSourceField, Target @@ -381,7 +379,7 @@ class ProjectVersionTarget(Target): help = "A project version target representing the VERSION file." ``` -```python title="pants-plugins/project_version/register.py" +```python pants-plugins/project_version/register.py from typing import Iterable import project_version.rules as project_version_rules diff --git a/versioned_docs/version-2.18/docs/tutorials-coming-soon/testing-plugins.mdx b/versioned_docs/version-2.18/docs/markdown/Tutorials/test-custom-plugin-goal.md similarity index 87% rename from versioned_docs/version-2.18/docs/tutorials-coming-soon/testing-plugins.mdx rename to versioned_docs/version-2.18/docs/markdown/Tutorials/test-custom-plugin-goal.md index 44cfdbd53..59cdcde7d 100644 --- a/versioned_docs/version-2.18/docs/tutorials-coming-soon/testing-plugins.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Tutorials/test-custom-plugin-goal.md @@ -1,24 +1,23 @@ --- - title: Testing plugins - sidebar_position: 0 +title: "Testing plugins" +slug: "test-custom-plugin-goal" +excerpt: "How to write tests for your custom plugin code." +hidden: false +createdAt: "2022-02-07T05:44:28.620Z" --- -How to write tests for your custom plugin code. +# Introduction ---- - -## Introduction - -In this tutorial, we'll learn how to test the custom plugin we wrote earlier. Pants documentation provides comprehensive coverage of the [plugin testing](../writing-plugins/the-rules-api/testing-plugins.mdx) and this tutorial should help you get started writing own tests. +In this tutorial, we'll learn how to test the custom plugin we wrote earlier. Pants documentation provides comprehensive coverage of the [plugin testing](doc:rules-api-testing) and this tutorial should help you get started writing own tests. Most of the plugin code that needs to be tested is in the following files: - `rules.py` where we implemented how a `VERSION` file needs to be read and how to use a `version_file` BUILD target - `tailor.py` where we taught the `tailor` goal about the `VERSION` files and generation of `version_file` targets -To author a test suite, it may make sense to write a very high level test first to confirm our code does what we expect. Let's write some [integration tests for Pants](../writing-plugins/the-rules-api/testing-plugins.mdx#approach-4-run_pants-integration-tests-for-pants) so that we could run our goal from a test! +To author a test suite, it may make sense to write a very high level test first to confirm our code does what we expect. Let's write some [integration tests for Pants](doc:rules-api-testing#approach-4-run_pants-integration-tests-for-pants) so that we could run our goal from a test! -### Testing with a complete Pants process +## Testing with a complete Pants process Pants provides a convenient way to run a full Pants process as it would run on the command line. Writing such a test would be equal to having, say, a Shell script to confirm that the output of the `pants project-version myapp:` command is `{"path": "myapp/VERSION", "version": "0.0.1"}`. Keep in mind that running custom scripts with this type of tests would require having a Pants repository set up (including the `pants.toml` configuration), creating `BUILD` metadata files and so on. When writing custom acceptance tests using `pants.testutil` package, you, in contrast, don't have to worry about that and can focus on testing your plugin logic in the very minimalistic environment containing only what's absolutely necessary to run your plugin code. @@ -63,9 +62,9 @@ def test_reading_project_version_target() -> None: These tests do not need any special bootstrapping and can be run just like any other tests you may have in the repository with the `test` goal. They, however, are slow, and if there are lots of test cases to check (e.g. you want to test usage of flags and targets with various fields set), it may soon become impractical to run them often enough. You would most likely want to test your plugin logic in a more isolated fashion. -### Testing goal rules +## Testing goal rules -You can exercise the goal rule by using [`rule_runner.run_goal_rule()`](../writing-plugins/the-rules-api/testing-plugins.mdx#testing-goal_rules) which runs very fast and does not start a full Pants process. In the test below, we register all rules from the `project_version` plugin with the `RuleRunner` so that the engine can find them when a test is run. These tests scale nicely and if your plugins are fairly simple, they may suffice. +You can exercise the goal rule by using [`rule_runner.run_goal_rule()`](doc:rules-api-testing#testing-goal_rules) which runs very fast and does not start a full Pants process. In the test below, we register all rules from the `project_version` plugin with the `RuleRunner` so that the engine can find them when a test is run. These tests scale nicely and if your plugins are fairly simple, they may suffice. ```python import pytest @@ -110,7 +109,7 @@ def test_project_version_goal(rule_runner: RuleRunner) -> None: rule_runner.run_goal_rule(ProjectVersionGoal, args=["project:"]) ``` -### Testing individual rules +## Testing individual rules If your plugin is more sophisticated, and there are many rules, you may want to test them in isolation. In our plugin, there are a couple of rules we could write tests for. For example, the `get_project_version_file_view` rule reads a target and returns an instance of `dataclass`, namely `ProjectVersionFileView`. This looks like a good candidate for a very isolated test. @@ -147,7 +146,7 @@ def test_get_project_version_file_view(rule_runner: RuleRunner) -> None: assert result == ProjectVersionFileView(path="project/VERSION", version="10.6.1") ``` -Since we have extended the `tailor` goal to generate `version_file` targets in the directories containing `VERSION` files, let's write a test to confirm the goal does what we want. For this, we can continue using the [`RuleRunner`](../writing-plugins/the-rules-api/testing-plugins.mdx#running-your-rules). Let's create a temporary build root, write necessary files, and then ask Pants to get a list of targets that it would have created for us. +Since we have extended the `tailor` goal to generate `version_file` targets in the directories containing `VERSION` files, let's write a test to confirm the goal does what we want. For this, we can continue using the [`RuleRunner`](doc:rules-api-testing#running-your-rules). Let's create a temporary build root, write necessary files, and then ask Pants to get a list of targets that it would have created for us. It's often very difficult to know how testing of a particular functionality is done, so it's worth taking a look at the Pants codebase. For instance, this `tailor` test has been adopted from this [test suite](https://github.com/pantsbuild/pants/blob/8cb558592d00b228182e6bbcb667705dad73bb95/src/python/pants/backend/cc/goals/tailor_test.py#L1-L0). @@ -222,9 +221,9 @@ def test_find_putative_avnpkg_files_targets(rule_runner: RuleRunner) -> None: ) ``` -### Unit testing for rules +## Unit testing for rules -Finally, if your plugin is very complex and would benefit from a more rigorous testing, you may consider writing [unit tests for the rules](../writing-plugins/the-rules-api/testing-plugins.mdx#approach-2-run_rule_with_mocks-unit-tests-for-rules) where some parts of the rules are going to be patched with mocks. For instance, there's `get_git_repo_version` rule which calls Git (in a subprocess) to describe the repository status. We could mock the `Process` call to make sure the inline logic of the rule is correct instead. +Finally, if your plugin is very complex and would benefit from a more rigorous testing, you may consider writing [unit tests for the rules](doc:rules-api-testing#approach-2-run_rule_with_mocks-unit-tests-for-rules) where some parts of the rules are going to be patched with mocks. For instance, there's `get_git_repo_version` rule which calls Git (in a subprocess) to describe the repository status. We could mock the `Process` call to make sure the inline logic of the rule is correct instead. ```python from unittest.mock import Mock diff --git a/versioned_docs/version-2.18/docs/using-pants/advanced-target-selection.mdx b/versioned_docs/version-2.18/docs/markdown/Using Pants/advanced-target-selection.md similarity index 71% rename from versioned_docs/version-2.18/docs/using-pants/advanced-target-selection.mdx rename to versioned_docs/version-2.18/docs/markdown/Using Pants/advanced-target-selection.md index f73c687e7..6473952e3 100644 --- a/versioned_docs/version-2.18/docs/using-pants/advanced-target-selection.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Using Pants/advanced-target-selection.md @@ -1,16 +1,15 @@ --- - title: Advanced target selection - sidebar_position: 3 +title: "Advanced target selection" +slug: "advanced-target-selection" +excerpt: "Alternative techniques to tell Pants which files/targets to run on." +hidden: false +createdAt: "2020-05-11T20:10:29.560Z" --- -Alternative techniques to tell Pants which files/targets to run on. - ---- - -See [Goal arguments](./key-concepts/goals.mdx#goal-arguments) for the normal techniques for telling Pants what to +See [Goal arguments](doc:goals#goal-arguments) for the normal techniques for telling Pants what to run on. -See [Project introspection](./project-introspection.mdx) for queries that you can run and then pipe +See [Project introspection](doc:project-introspection) for queries that you can run and then pipe into another Pants run, such as finding the dependencies of a target or file. ## Running over changed files with `--changed-since` @@ -29,7 +28,7 @@ To run against another branch, run: pants --changed-since=origin/main lint ``` -By default, `--changed-since` will only run over files directly changed. Often, though, you will want to run over any [dependents](./project-introspection.mdx) of those changed files, meaning any targets that depend on the changed files. Use ` --changed-dependents=direct` or ` --changed-dependents=transitive` for this: +By default, `--changed-since` will only run over files directly changed. Often, though, you will want to run over any [dependents](doc:project-introspection) of those changed files, meaning any targets that depend on the changed files. Use ` --changed-dependents=direct` or ` --changed-dependents=transitive` for this: ```bash ❯ pants \ @@ -90,7 +89,7 @@ If you don't need the power of regex, use the simpler `--tag` global option expl Every target type has a field called `tags`, which allows you to add a sequence of strings. The strings can be whatever you'd like, such as `"integration_test"`. -```python title="BUILD" +```python BUILD python_tests( name="integration", sources=["*_integration_test.py"], @@ -98,7 +97,7 @@ python_tests( ) ``` -You can then filter by tags with the global `--tag` [option](../../reference/global-options.mdx#section-tag), like this: +You can then filter by tags with the global `--tag` [option](doc:reference-global#section-tag), like this: ```bash pants --tag=integration_test list :: @@ -126,19 +125,19 @@ Each entry must be separated by a new line. For example: -```text title="Shell" +```text Shell $ pants --spec-files=targets.txt list ``` -```text title="targets.txt" +```text targets.txt helloworld/lang/*.py helloworld/util helloworld/util:tests ``` -:::note Tip: centralized allow/block lists -Whereas `tags` are useful for _decentralized_ allow/block lists, `--spec-files` is useful when you want to define one single list of targets or files. -::: +> 📘 Tip: centralized allow/block lists +> +> Whereas `tags` are useful for _decentralized_ allow/block lists, `--spec-files` is useful when you want to define one single list of targets or files. ## Piping to other Pants runs @@ -157,24 +156,23 @@ You can, of course, pipe multiple times: xargs pants lint ``` -:::note Alternative: use `--spec-files` -Sometimes, you may want to reuse the output of a Pants run for multiple subsequent Pants runs. Rather than repeating `xargs` multiple times, you can generate a file through stdout redirection and `--spec-files`. - -For example: - -```bash -$ pants dependencies helloworld/util > util_dependencies.txt -$ pants --spec-files=util_dependencies.txt lint -``` - -If you don't want to save the output to an actual file—such as to not pollute version control—you can use a variable and a named pipe: - -```bash -$ TARGETS=$(pants dependencies helloworld/util) -$ pants --spec-files=<(echo $TARGETS) lint -``` - -::: +> 📘 Alternative: use `--spec-files` +> +> Sometimes, you may want to reuse the output of a Pants run for multiple subsequent Pants runs. Rather than repeating `xargs` multiple times, you can generate a file through stdout redirection and `--spec-files`. +> +> For example: +> +> ```bash +> $ pants dependencies helloworld/util > util_dependencies.txt +> $ pants --spec-files=util_dependencies.txt lint +> ``` +> +> If you don't want to save the output to an actual file—such as to not pollute version control—you can use a variable and a named pipe: +> +> ```bash +> $ TARGETS=$(pants dependencies helloworld/util) +> $ pants --spec-files=<(echo $TARGETS) lint +> ``` ## Sharding the input targets diff --git a/versioned_docs/version-2.18/docs/using-pants/anonymous-telemetry.mdx b/versioned_docs/version-2.18/docs/markdown/Using Pants/anonymous-telemetry.md similarity index 80% rename from versioned_docs/version-2.18/docs/using-pants/anonymous-telemetry.mdx rename to versioned_docs/version-2.18/docs/markdown/Using Pants/anonymous-telemetry.md index a8dbff66f..1f3fb0b90 100644 --- a/versioned_docs/version-2.18/docs/using-pants/anonymous-telemetry.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Using Pants/anonymous-telemetry.md @@ -1,8 +1,8 @@ --- - title: Anonymous telemetry - sidebar_position: 11 ---- - +title: "Anonymous telemetry" +slug: "anonymous-telemetry" +hidden: false +createdAt: "2021-03-14T04:37:07.980Z" --- Pants can optionally send anonymized telemetry to the Pants project. This data helps us develop and improve Pants by detecting bugs, analyzing usage patterns, and so on. @@ -15,7 +15,7 @@ No telemetry is sent until you opt into this feature. To enable telemetry, you set options in the `[anonymous-telemetry]` of your `pants.toml` config file: -```toml title="pants.toml" +```toml pants.toml [anonymous-telemetry] enabled = true repo_id = "" @@ -58,15 +58,15 @@ Each Pants run will send the following data: - The machine and user ids are prefixed by the repo id, so the resulting hashes are similarly robust against dictionary attacks. - We do not record the IP address or any other envelope information. -:::caution In public repos the repo id may be public -The anonymity properties above are ensured for private repos, where `pants.toml`, and therefore your `repo_id`, are private. - -For repos that are publicly visible, e.g., on GitHub, the `repo_id` will be visible in your `pants.toml`. So repo-level data is not anonymous. However machine- and user-level data is still anonymous (although somewhat more susceptible to dictionary attacks). - -Developers in public repos are usually not concerned about this, since their entire development occurs in the open anyway, via publicly visible code, CI runs, pull request comments and so on. All the telemetry potentially exposes is various stats about Pants usage. - -If you still prefer not to expose these stats, you can set the `repo_id` to the empty string. This will remove repo, machine and user ids entirely from the telemetry. -::: +> 🚧 In public repos the repo id may be public +> +> The anonymity properties above are ensured for private repos, where `pants.toml`, and therefore your `repo_id`, are private. +> +> For repos that are publicly visible, e.g., on GitHub, the `repo_id` will be visible in your `pants.toml`. So repo-level data is not anonymous. However machine- and user-level data is still anonymous (although somewhat more susceptible to dictionary attacks). +> +> Developers in public repos are usually not concerned about this, since their entire development occurs in the open anyway, via publicly visible code, CI runs, pull request comments and so on. All the telemetry potentially exposes is various stats about Pants usage. +> +> If you still prefer not to expose these stats, you can set the `repo_id` to the empty string. This will remove repo, machine and user ids entirely from the telemetry. ## How we avoid exposing proprietary information diff --git a/versioned_docs/version-2.18/docs/using-pants/assets-and-archives.mdx b/versioned_docs/version-2.18/docs/markdown/Using Pants/assets.md similarity index 77% rename from versioned_docs/version-2.18/docs/using-pants/assets-and-archives.mdx rename to versioned_docs/version-2.18/docs/markdown/Using Pants/assets.md index 4c7615963..6c162bdb1 100644 --- a/versioned_docs/version-2.18/docs/using-pants/assets-and-archives.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Using Pants/assets.md @@ -1,25 +1,24 @@ --- - title: Assets and archives - sidebar_position: 5 ---- - -How to include assets such as images and config files in your project. - +title: "Assets and archives" +slug: "assets" +excerpt: "How to include assets such as images and config files in your project." +hidden: false +createdAt: "2020-09-28T23:07:26.956Z" --- There are two ways to include asset files in your project: `resource` and `file` targets. ## `resources` -A [`resource`](../../reference/targets/resource.mdx) target is for files that are members of code packages, and are loaded via language-specific mechanisms, such as Python's `importlib.resources.read_text()` or Java's `getResource()`. +A [`resource`](doc:reference-resource) target is for files that are members of code packages, and are loaded via language-specific mechanisms, such as Python's `importlib.resources.read_text()` or Java's `getResource()`. Pants will make resources available on the appropriate runtime path, such as Python's `PYTHONPATH` or the JVM classpath. Resources can be loaded directly from a binary in which they are embedded, such as a Pex file, without first unpacking it. -To reduce boilerplate, the [`resources`](../../reference/targets/resources.mdx) target generates a `resource` target per file in the `sources` field. +To reduce boilerplate, the [`resources`](doc:reference-resources) target generates a `resource` target per file in the `sources` field. For example, to load resources in Python: -```python title="src/python/project/app.py" +```python src/python/project/app.py import importlib.resources if __name__ == "__main__": @@ -27,7 +26,7 @@ if __name__ == "__main__": print(f"Config: {config}") ``` -```python title="src/python/project/BUILD" +```python src/python/project/BUILD python_source( name="app", source="app.py", @@ -41,28 +40,28 @@ resource( ) ``` -```json title="src/python/project/config.json" +```json src/python/project/config.json { "k1": "v", "k2": "v" } ``` -[Source root](./key-concepts/source-roots.mdx) stripping applies to resources, just as it does for code. In the example above, Python loads the resource named `project/config`, rather than `src/python/project/config.json`. +[Source root](doc:source-roots) stripping applies to resources, just as it does for code. In the example above, Python loads the resource named `project/config`, rather than `src/python/project/config.json`. ## `files` A `file` target is for loose files that are copied into the chroot where Pants runs your code. You can then load these files through direct mechanisms like Python's `open()` or Java's `FileInputStream`. The files are not associated with a code package, and must be extracted out of a deployed archive file before they can be loaded. -To reduce boilerplate, the [`files`](../../reference/targets/files.mdx) target generates a `file` target per file in the `sources` field. +To reduce boilerplate, the [`files`](doc:reference-files) target generates a `file` target per file in the `sources` field. For example, to load loose files in Python: -```python title="src/python/project/app_test.py" +```python src/python/project/app_test.py def test_open_file(): with open("src/python/project/config.json") as f: content = f.read().decode() assert content == '{"k1": "v", "k2": "v"}' ``` -```python title="src/python/project/BUILD" +```python src/python/project/BUILD python_test( name="app_test", source="app_test.py", @@ -76,16 +75,16 @@ file( ) ``` -```json title="src/python/project/config.json" +```json src/python/project/config.json { "k1": "v", "k2": "v" } ``` Note that we open the file with its full path, including the `src/python` prefix. -:::caution `file` targets are not included with binaries like `pex_binary` -Pants will not include dependencies on `file` / `files` targets when creating binaries like `pex_binary` and `python_aws_lambda_function` via `pants package`. Filesystem APIs like Python's `open()` are relative to the current working directory, and they would try to read the files from where the binary is executed, rather than reading from the binary itself. -Instead, use `resource` / `resources` targets or an `archive` target. -::: +> 🚧 `file` targets are not included with binaries like `pex_binary` +> +> Pants will not include dependencies on `file` / `files` targets when creating binaries like `pex_binary` and `python_aws_lambda_function` via `pants package`. Filesystem APIs like Python's `open()` are relative to the current working directory, and they would try to read the files from where the binary is executed, rather than reading from the binary itself. +> Instead, use `resource` / `resources` targets or an `archive` target. ## When to use each asset target type @@ -113,7 +112,7 @@ However, you may want to change the path to something else. For example, when cr You can use the `relocated_files` target to change the path used at runtime for the files. Your other targets can then add this target to their `dependencies` field, rather than using the original `files` target: -```python title="src/assets/BUILD" +```python src/assets/BUILD # Original file target. file( name="logo", @@ -141,7 +140,7 @@ Running `pants package` on an `archive` target will create a zip or tar file wit For example: -```python title="project/BUILD" +```python project/BUILD archive( name="app_with_config", packages=[":app"], diff --git a/versioned_docs/version-2.18/docs/using-pants/command-line-help.mdx b/versioned_docs/version-2.18/docs/markdown/Using Pants/command-line-help.md similarity index 94% rename from versioned_docs/version-2.18/docs/using-pants/command-line-help.mdx rename to versioned_docs/version-2.18/docs/markdown/Using Pants/command-line-help.md index 3c5d15d1c..c4a96eae4 100644 --- a/versioned_docs/version-2.18/docs/using-pants/command-line-help.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Using Pants/command-line-help.md @@ -1,15 +1,14 @@ --- - title: Command line help - sidebar_position: 1 ---- - -How to dynamically get more information on Pants's internals. - +title: "Command line help" +slug: "command-line-help" +excerpt: "How to dynamically get more information on Pants's internals." +hidden: false +createdAt: "2020-02-27T01:32:45.818Z" --- Run `pants help` to get basic help, including a list of commands you can run to get more specific help: -```text title="Shell" +```text Shell ❯ pants help Pants 2.14.0 @@ -42,7 +41,7 @@ Download at https://pypi.org/pypi/pantsbuild.pants/2.14.0 For example, to get help on the `test` goal: -```text title="Shell" +```text Shell $ pants help test `test` goal options @@ -77,7 +76,7 @@ You can also run `pants help goals` and `pants help subsystems` to get a list of To get help on the `python_tests` target: -```text title="Shell" +```text Shell ❯ pants help python_test `python_test` target diff --git a/versioned_docs/version-2.18/docs/markdown/Using Pants/concepts.md b/versioned_docs/version-2.18/docs/markdown/Using Pants/concepts.md new file mode 100644 index 000000000..a36fb9ca4 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Using Pants/concepts.md @@ -0,0 +1,12 @@ +--- +title: "Key concepts" +slug: "concepts" +hidden: false +createdAt: "2020-07-29T03:59:24.793Z" +--- + +- [Goals](doc:goals) +- [Targets and BUILD files](doc:targets) +- [Options](doc:options) +- [Backends](doc:enabling-backends) +- [Source roots](doc:source-roots) diff --git a/versioned_docs/version-2.18/docs/markdown/Using Pants/concepts/enabling-backends.md b/versioned_docs/version-2.18/docs/markdown/Using Pants/concepts/enabling-backends.md new file mode 100644 index 000000000..b03640514 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Using Pants/concepts/enabling-backends.md @@ -0,0 +1,113 @@ +--- +title: "Backends" +slug: "enabling-backends" +excerpt: "How to enable specific functionality." +hidden: false +createdAt: "2020-02-21T17:44:27.363Z" +--- + +Most Pants functionality is opt-in by adding the relevant _backend_ to the `[GLOBAL].backend_packages` option in `pants.toml`. For example: + +```toml pants.toml +[GLOBAL] +backend_packages = [ + "pants.backend.shell", + "pants.backend.python", + "pants.backend.python.lint.black", +] +``` + +## Available stable backends + +This list is also available via `pants backends --help`, which includes any additional plugins in your repository that aren't built-in to Pants itself. + +| Backend | What it does | Docs | +| :--------------------------------------------------- | :------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- | +| `pants.backend.build_files.fmt.black` | Enables autoformatting `BUILD` files using `black`. | | +| `pants.backend.build_files.fmt.buildifier` | Enables autoformatting `BUILD` files using `buildifier`. | | +| `pants.backend.build_files.fmt.yapf` | Enables autoformatting `BUILD` files using `yapf`. | | +| `pants.backend.awslambda.python` | Enables generating an AWS Lambda zip file from Python code. | [AWS Lambda](doc:awslambda-python) | +| `pants.backend.codegen.protobuf.lint.buf` | Activate the Buf formatter and linter for Protocol Buffers. | [Protobuf](doc:protobuf-python) | +| `pants.backend.codegen.protobuf.python` | Enables generating Python from Protocol Buffers. Includes gRPC support. | [Protobuf and gRPC](doc:protobuf-python) | +| `pants.backend.codegen.thrift.apache.python` | Enables generating Python from Apache Thrift. | [Thrift](doc:thrift-python) | +| `pants.backend.docker` | Enables building, running, and publishing Docker images. | [Docker overview](doc:docker) | +| `pants.backend.docker.lint.hadolint` | Enables Hadolint, a Docker linter: | [Docker overview](doc:docker) | +| `pants.backend.google_cloud_function.python` | Enables generating a Google Cloud Function from Python code. | [Google Cloud Function](doc:google-cloud-function-python) | +| `pants.backend.plugin_development` | Enables `pants_requirements` target. | [Plugins overview](doc:plugins-overview) | +| `pants.backend.python` | Core Python support. | [Enabling Python support](doc:python-backend) | +| `pants.backend.python.mixed_interpreter_constraints` | Adds the `py-constraints` goal for insights on Python interpreter constraints. | [Interpreter compatibility](doc:python-interpreter-compatibility) | +| `pants.backend.python.lint.autoflake` | Enables Autoflake, which removes unused Python imports: | [Linters and formatters](doc:python-linters-and-formatters) | +| `pants.backend.python.lint.bandit` | Enables Bandit, the Python security linter: . | [Linters and formatters](doc:python-linters-and-formatters) | +| `pants.backend.python.lint.black` | Enables Black, the Python autoformatter: . | [Linters and formatters](doc:python-linters-and-formatters) | +| `pants.backend.python.lint.docformatter` | Enables Docformatter, the Python docstring autoformatter: . | [Linters and formatters](doc:python-linters-and-formatters) | +| `pants.backend.python.lint.flake8` | Enables Flake8, the Python linter: . | [Linters and formatters](doc:python-linters-and-formatters) | +| `pants.backend.python.lint.isort` | Enables isort, the Python import autoformatter: . | [Linters and formatters](doc:python-linters-and-formatters) | +| `pants.backend.python.lint.pydocstyle` | Enables pydocstyle, a Python docstring convention checker: | [Linters and formatters](doc:python-linters-and-formatters) | +| `pants.backend.python.lint.pylint` | Enables Pylint, the Python linter: | [Linters and formatters](doc:python-linters-and-formatters) | +| `pants.backend.python.lint.pyupgrade` | Enables Pyupgrade, which upgrades to new Python syntax: | [Linters and formatters](doc:python-linters-and-formatters) | +| `pants.backend.python.lint.yapf` | Enables Yapf, the Python formatter: | [Linters and formatters](doc:python-linters-and-formatters) | +| `pants.backend.python.typecheck.mypy` | Enables MyPy, the Python type checker: . | [typecheck](doc:python-check-goal) | +| `pants.backend.shell` | Core Shell support, including shUnit2 test runner. | [Shell overview](doc:shell) | +| `pants.backend.shell.lint.shfmt` | Enables shfmt, a Shell autoformatter: . | [Shell overview](doc:shell) | +| `pants.backend.shell.lint.shellcheck` | Enables Shellcheck, a Shell linter: . | [Shell overview](doc:shell) | +| `pants.backend.tools.preamble` | Enables "preamble", a Pants fixer for copyright headers and shebang lines | [`preamble`](doc:reference-preamble) | +| `pants.backend.tools.taplo` | Enables Taplo, a TOML autoformatter: | | +| `pants.backend.url_handlers.s3` | Enables accessing s3 via credentials in `file(source=http_source(...))` | | + +## Available experimental backends + +Pants offers [additional backends as previews](https://blog.pantsbuild.org/quick-feedback-on-new-features-via-experimental-backends/) that are still in development. These backends may still undergo major changes to improve the interface or fix bugs, with fewer (or no) deprecation warnings. If any of these backends are relevant to you, please try them, [ask any questions](doc:getting-help) you have, and [contribute improvements](doc:contributor-overview)! Volunteers like you jumping in to help is how these backends are promoted from preview to fully stable. + +The list of all backends (both stable and experimental) is also available via `pants backends --help-advanced`, which includes any additional plugins in your repository that aren't built-in to Pants itself. + +| Backend | What it does | Docs | +| :----------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------- | +| `pants.backend.experimental.adhoc` | Enables support for executing arbitrary runnable targets. | [Integrating new tools without plugins](doc:adhoc-tool) | +| `pants.backend.experimental.cc` | Enables core C and C++ support. | | +| `pants.backend.experimental.cc.lint.clangformat` | Enables clang-format, a C and C++ autoformatter: | | +| `pants.backend.experimental.codegen.avro.java` | Enables generating Java from Avro | | +| `pants.backend.experimental.codegen.protobuf.go` | Enables generating Go from Protocol Buffers. | | +| `pants.backend.experimental.codegen.protobuf.java` | Enables generating Java from Protocol Buffers. | | +| `pants.backend.experimental.codegen.protobuf.scala` | Enables generating Scala from Protocol Buffers. | | +| `pants.backend.experimental.codegen.thrift.apache.java` | Enables generating Java from Thrift using the Apache Thrift generator. | | +| `pants.backend.experimental.codegen.thrift.scrooge.java` | Enables generating Java from Thrift using the Scrooge Thrift IDL compiler. | | +| `pants.backend.experimental.codegen.thrift.scrooge.scala` | Enables generating Scala from Thrift using the Scrooge Thrift IDL compiler. | | +| `pants.backend.experimental.cue` | Enables core Cue support: | | +| `pants.backend.experimental.debian` | Enables support for packaging `.deb` files via `dpkg-deb` | | +| `pants.backend.experimental.go` | Enables core Go support. | [Go overview](doc:go) | +| `pants.backend.experimental.go.debug_goals` | Enables additional goals for introspecting Go targets | [Go overview](doc:go) | +| `pants.backend.experimental.go.lint.golangci_lint` | Enable golangci-lint, a Go linter: | [Go overview](doc:go) | +| `pants.backend.experimental.go.lint.vet` | Enables support for running `go vet` | [Go overview](doc:go) | +| `pants.backend.experimental.helm` | Enables core Helm support: | [Helm overview](doc:helm-overview) | +| `pants.backend.experimental.helm.check.kubeconfirm` | Enables Kubeconform, a fast Kubernetes manifest validator: | [Helm overview](doc:helm-overview) | +| `pants.backend.experimental.java` | Enables core Java support. | [Java & Scala overview](doc:jvm-overview) | +| `pants.backend.experimental.java.debug_goals` | Enable additional goals for introspecting Java targets | [Java & Scala overview](doc:jvm-overview) | +| `pants.backend.experimental.java.lint.google_java_format` | Enables Google Java Format. | [Java & Scala overview](doc:jvm-overview) | +| `pants.backend.experimental.javascript` | Enables core JavaScript support. | | +| `pants.backend.experimental.javascript.lint.prettier` | Enables Prettier, a JavaScript (and more) autoformatter: | | +| `pants.backend.experimental.kotlin` | Enables core Kotlin support | [Kotlin](doc:kotlin) | +| `pants.backend.experimental.kotlin.debug_goals` | Enables additional goals for introspecting Kotlin targets | [Kotlin](doc:kotlin) | +| `pants.backend.experimental.kotlin.lint.ktlint` | Enables ktlint, an anti-bikeshedding linter with built-in formatter: | [Kotlin](doc:kotlin) | +| `pants.backend.experimental.openapi` | Enables core OpenAPI support: | [`openapi`](doc:reference-openapi) | +| `pants.backend.experimental.openapi.codegen.java` | Enables generating Java from OpenAPI | | +| `pants.backend.experimental.openapi.lint.spectral` | Enables spectral: | [`spectral`](doc:reference-spectral) | +| `pants.backend.experimental.python` | Enables experimental rules for Python | | +| `pants.backend.experimental.python.framework.django` | Enables better support for projects using Django: | | +| `pants.backend.experimental.python.framework.stevedore` | Enables better support for projects using stevedore: | | +| `pants.backend.experimental.python.lint.add_trailing_comma` | Enables add-trailing-comma, a Python code formatter: | [`add-trailing-comma`](doc:reference-add-trailing-comma) | +| `pants.backend.experimental.python.lint.ruff` | Enables Ruff, an extremely fast Python linter: | [Linters and formatters](doc:python-linters-and-formatters) | +| `pants.backend.experimental.python.packaging.pyoxidizer` | Enables `pyoxidizer_binary` target. | [PyOxidizer](doc:pyoxidizer) | +| `pants.backend.experimental.python.typecheck.pyright` | Enables Pyright, a Python type checker: | | +| `pants.backend.experimental.python.typecheck.pytype` | Enables Pytype, a Python type checker: | | +| `pants.backend.experimental.rust` | Enables core Rust support. | | +| `pants.backend.experimental.scala` | Enables core Scala support. | [Java & Scala overview](doc:jvm-overview) | +| `pants.backend.experimental.scala.debug_goals` | Enables additional goals for introspecting Scala targets | [Java & Scala overview](doc:jvm-overview) | +| `pants.backend.experimental.scala.lint.scalafmt` | Enables the Scalafmt formatter. | [Java & Scala overview](doc:jvm-overview) | +| `pants.backend.experimental.swift` | Enables core Swift support. | | +| `pants.backend.experimental.terraform` | Enables core Terraform support. | | +| `pants.backend.experimental.terraform.lint.tfsec` | Enables tfsec, for static analysis of Terraform: | | +| `pants.backend.experimental.tools.workunit_logger` | Enables the workunit logger for debugging pants itself | [`workunit-logger`](doc:reference-workunit-logger) | +| `pants.backend.experimental.tools.yamllint` | Enables yamllint, a linter for YAML files: | [`yamllint`](doc:reference-yamllint) | +| `pants.backend.experimental.visibility` | Enables `__dependencies_rules__` and `__dependents_rules__` | [Visibility](doc:targets#visibility) | +| `pants.backend.python.providers.experimental.pyenv` | Enables Pants to manage appropriate Python interpreters via pyenv | | +| `pants.backend.python.providers.experimental.pyenv.custom_install` | Enables customising how the pyenv provider builds a Python interpreter | | diff --git a/versioned_docs/version-2.18/docs/using-pants/key-concepts/goals.mdx b/versioned_docs/version-2.18/docs/markdown/Using Pants/concepts/goals.md similarity index 72% rename from versioned_docs/version-2.18/docs/using-pants/key-concepts/goals.mdx rename to versioned_docs/version-2.18/docs/markdown/Using Pants/concepts/goals.md index 596f6cfc0..ea534eb30 100644 --- a/versioned_docs/version-2.18/docs/using-pants/key-concepts/goals.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Using Pants/concepts/goals.md @@ -1,10 +1,9 @@ --- - title: Goals - sidebar_position: 0 ---- - -The commands Pants runs. - +title: "Goals" +slug: "goals" +excerpt: "The commands Pants runs." +hidden: false +createdAt: "2020-02-21T17:44:52.605Z" --- Pants commands are known as _goals_, such as `test` and `lint`. @@ -15,7 +14,7 @@ To see the current list of goals, run: ❯ pants help goals ``` -You'll see more goals activated as you activate more [backends](./backends.mdx). +You'll see more goals activated as you activate more [backends](doc:enabling-backends). # Running goals @@ -54,12 +53,12 @@ Most goals require arguments to know what to work on. You can use several argument types: -| Argument type | Semantics | Example | -| ------------------------------------------------- | ------------------------------------------- | ----------------------------- | -| File path | Match the file | `pants test project/tests.py` | -| Directory path | Match everything in the directory | `pants test project/utils` | -| `::` globs | Match everything in the directory and below | `pants test project::` | -| [Target addresses](./targets-and-build-files.mdx) | Match the target | `pants package project:tests` | +| Argument type | Semantics | Example | +| ------------------------------- | ------------------------------------------- | ----------------------------- | +| File path | Match the file | `pants test project/tests.py` | +| Directory path | Match everything in the directory | `pants test project/utils` | +| `::` globs | Match everything in the directory and below | `pants test project::` | +| [Target addresses](doc:targets) | Match the target | `pants package project:tests` | You can combine argument types, e.g. `pants fmt src/go:: src/py/app.py`. @@ -67,19 +66,19 @@ You can address targets from the root of the repository by using plain `::` and To ignore something, prefix the argument with `-`. For example, `pants test :: -project/integration_tests` will run all your tests except for those in the directory `project/integration_tests` and `pants package project:: -project:` will package all targets in the subdirectories of the `project` directory, recursively, except for those declared directly under the `project` directory. -:::caution Set `[GLOBAL].use_deprecated_directory_cli_args_semantics = false` in `pants.toml` -This will become the default in Pants 2.14. -::: +> 🚧 Set `[GLOBAL].use_deprecated_directory_cli_args_semantics = false` in `pants.toml` +> +> This will become the default in Pants 2.14. -:::note Tip: advanced target selection, such as running over changed files -See [Advanced target selection](../advanced-target-selection.mdx) for alternative techniques to specify which files/targets to run on. -::: +> 📘 Tip: advanced target selection, such as running over changed files +> +> See [Advanced target selection](doc:advanced-target-selection) for alternative techniques to specify which files/targets to run on. ## Goal options -Many goals also have [options](./options.mdx) to change how they behave. Every option in Pants can be set via an environment variable, config file, and the command line. +Many goals also have [options](doc:options) to change how they behave. Every option in Pants can be set via an environment variable, config file, and the command line. -To see if a goal has any options, run `pants help $goal` or `pants help-advanced $goal`. See [Command Line Help](/community/getting-help) for more information. +To see if a goal has any options, run `pants help $goal` or `pants help-advanced $goal`. See [Command Line Help](doc:getting-help) for more information. For example: diff --git a/versioned_docs/version-2.18/docs/using-pants/key-concepts/options.mdx b/versioned_docs/version-2.18/docs/markdown/Using Pants/concepts/options.md similarity index 83% rename from versioned_docs/version-2.18/docs/using-pants/key-concepts/options.mdx rename to versioned_docs/version-2.18/docs/markdown/Using Pants/concepts/options.md index 786c5bc9c..2f4ae51a8 100644 --- a/versioned_docs/version-2.18/docs/using-pants/key-concepts/options.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Using Pants/concepts/options.md @@ -1,10 +1,9 @@ --- - title: Options - sidebar_position: 2 ---- - -A deep dive into how options may be configured. - +title: "Options" +slug: "options" +excerpt: "A deep dive into how options may be configured." +hidden: false +createdAt: "2020-02-21T17:44:27.231Z" --- # Option scopes @@ -13,7 +12,7 @@ Options are partitioned into named _scopes_. Some systemwide options belong in the _global scope_. For example, the `--level` option, which controls the logging level, is in the global scope. -Other options belong to a _subsystem scope_. A _subsystem_ is simply a collection of related options, in a scope. For example, the `pytest` subsystem contains options related to [Python's test framework pytest](../../../reference/subsystems/pytest.mdx). +Other options belong to a _subsystem scope_. A _subsystem_ is simply a collection of related options, in a scope. For example, the `pytest` subsystem contains options related to [Python's test framework pytest](doc:reference-pytest). # Setting options @@ -49,7 +48,7 @@ Global options are set using the environment variable `PANTS_{OPTION_NAME}`: PANTS_LEVEL=debug pants ... ``` -Subsystem options are set using the environment variable +Subsystem options are set using the environment variable `PANTS_{SCOPE}_{OPTION_NAME}`: ```bash @@ -62,14 +61,14 @@ Note that the scope and option name are upper-cased, and any dashes in the optio Global options are set in the `GLOBAL` section of the config file: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] level = "debug" ``` Subsystem options are set in the section named for their scope: -```toml title="pants.toml" +```toml pants.toml [source] root_patterns = ["/src/python"] ``` @@ -80,7 +79,7 @@ Note that any dashes in the option flag name are converted to underscores: `--mu Environment variables can be interpolated by using the syntax `%(env.ENV_VAR)s`, e.g.: -```toml title="pants.toml" +```toml pants.toml [python-repos] # This will substitute `%(env.PY_REPO)s` with the value of the environment # variable PY_REPO @@ -129,7 +128,7 @@ PANTS_SCOPE_STROPT=qux ### Config file entries: -```toml title="pants.toml" +```toml pants.toml [scope] intopt = 42 stropt = "qux" @@ -155,7 +154,7 @@ PANTS_SCOPE_BOOLOPT=true ### Config file entries: -```toml title="pants.toml" +```toml pants.toml [scope] boolopt = true ``` @@ -192,7 +191,7 @@ PANTS_SCOPE_LISTOPT=foo ### Config file entries: -```toml title="pants.toml" +```toml pants.toml [scope] listopt = [ 'foo', @@ -229,26 +228,26 @@ pants --scope-listopt="[3,4]" will set the value to `[3, 4]`. -:::note Add/remove syntax in .toml files -The +/- syntax works in .toml files, but the entire value must be quoted: - -```toml title="pants.toml" -[scope] -listopt = "+[1,2],-[3,4]" -``` - -This means that TOML treats the value as a string, instead of a TOML list. - -Alternatively, you can use this syntactic sugar, which allows the values to be regular TOML lists: - -```toml title="pants.toml" -[scope] -listopt.add = [1, 2] -listopt.remove = [3, 4] -``` - -But note that this only works in Pants's `.toml` config files, not in environment variables or command-line flags. -::: +> 📘 Add/remove syntax in .toml files +> +> The +/- syntax works in .toml files, but the entire value must be quoted: +> +> ```toml pants.toml +> [scope] +> listopt = "+[1,2],-[3,4]" +> ``` +> +> This means that TOML treats the value as a string, instead of a TOML list. +> +> Alternatively, you can use this syntactic sugar, which allows the values to be regular TOML lists: +> +> ```toml pants.toml +> [scope] +> listopt.add = [1, 2] +> listopt.remove = [3, 4] +> ``` +> +> But note that this only works in Pants's `.toml` config files, not in environment variables or command-line flags. ## Dict values @@ -270,12 +269,12 @@ PANTS_SCOPE_DICTOPT="{'foo':1,'bar':2}" You can use TOML's [nested table features](https://toml.io/en/v1.0.0#inline-table). These are equivalent: -```toml title="pants.toml" +```toml pants.toml [scope] dictopt = { foo = 1, bar = 2} ``` -```toml title="pants.toml" +```toml pants.toml [scope.dictopt] foo = 1 bar = 2 @@ -283,7 +282,7 @@ bar = 2 You can also use a string literal. Note the quotes: -```toml title="pants.toml" +```toml pants.toml [scope] dictopt = """{ 'foo': 1, @@ -324,7 +323,7 @@ Otherwise, the file is parsed as a literal as described above for each option ty Note that you can use this feature on the command-line, in an env var, or in a config file: -```toml title="pants.toml" +```toml pants.toml [scope] opt = "@path/to/file.json" ``` @@ -337,13 +336,13 @@ PANTS_SCOPE_OPTION=@path/to/file.json pants --scope-option="@path/to/file.json" ``` -:::caution Gotcha: If you modify the value file, you must manually restart pantsd -Until we resolve [this issue](https://github.com/pantsbuild/pants/issues/10360), changing -the value in a file used with the `@` syntax as described above will not invalidate the build. -For now, if such a file changes you will have to restart the Pants daemon manually. You can -do so by `kill`ing it (after using `ps -ef | grep pantsd` to find its pid), or by running -Pants once with `--no-pantsd`. -::: +> 🚧 Gotcha: If you modify the value file, you must manually restart pantsd +> +> Until we resolve [this issue](https://github.com/pantsbuild/pants/issues/10360), changing +> the value in a file used with the `@` syntax as described above will not invalidate the build. +> For now, if such a file changes you will have to restart the Pants daemon manually. You can +> do so by `kill`ing it (after using `ps -ef | grep pantsd` to find its pid), or by running +> Pants once with `--no-pantsd`. # `.pants.rc` file @@ -351,7 +350,7 @@ You can set up personal Pants config files, using the same TOML syntax as `pants For example: -```toml title=".pants.rc" +```toml .pants.rc [python] # Even though our repository uses 3.8+, because I have an M1, # I must use Python 3.9+. diff --git a/versioned_docs/version-2.18/docs/using-pants/key-concepts/source-roots.mdx b/versioned_docs/version-2.18/docs/markdown/Using Pants/concepts/source-roots.md similarity index 67% rename from versioned_docs/version-2.18/docs/using-pants/key-concepts/source-roots.mdx rename to versioned_docs/version-2.18/docs/markdown/Using Pants/concepts/source-roots.md index 9591cb0e9..89e397e30 100644 --- a/versioned_docs/version-2.18/docs/using-pants/key-concepts/source-roots.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Using Pants/concepts/source-roots.md @@ -1,17 +1,16 @@ --- - title: Source roots - sidebar_position: 4 +title: "Source roots" +slug: "source-roots" +excerpt: "Configuring Pants to understand your imports." +hidden: false +createdAt: "2020-02-21T17:44:27.655Z" --- -Configuring Pants to understand your imports. - ---- - -:::note Go and Shell can skip this page -Go does have a notion of source roots: where your `go.mod` is located. However, that is handled automatically by Pants without you needing to follow this page. - -Shell does not have any notion of source roots. -::: +> 📘 Go and Shell can skip this page +> +> Go does have a notion of source roots: where your `go.mod` is located. However, that is handled automatically by Pants without you needing to follow this page. +> +> Shell does not have any notion of source roots. # What are source roots? @@ -26,8 +25,8 @@ src ├── __init__.py ├── app.py ├── config - │ ├── __init__.py - │ └── prod.json + │   ├── __init__.py + │   └── prod.json └── util ├── __init__.py └── math.py @@ -64,7 +63,7 @@ src/rust You can provide a set of patterns that match your source roots: -```toml title="pants.toml" +```toml pants.toml [source] root_patterns = [ '/src/python', @@ -96,8 +95,8 @@ project ├── __init__.py ├── app.py ├── config -│ ├── __init__.py -│ └── prod.json +│   ├── __init__.py +│   └── prod.json └── util ├── __init__.py └── math.py @@ -114,22 +113,22 @@ pkgutil.get_data("project.config", "prod.json") If you have no source roots, use this config: -```toml title="pants.toml" +```toml pants.toml [source] root_patterns = ["/"] ``` -:::note Default source roots -The default value of the `root_patterns` config key is `["/", "src", "src/python", "src/py", "src/java", "src/scala", "src/thrift", "src/protos", "src/protobuf"]`. - -These capture a range of common cases, including a source root at the root of the repository. If your source roots match these patterns, you don't need to explicitly configure them. -::: +> 📘 Default source roots +> +> The default value of the `root_patterns` config key is `["/", "src", "src/python", "src/py", "src/java", "src/scala", "src/thrift", "src/protos", "src/protobuf"]`. +> +> These capture a range of common cases, including a source root at the root of the repository. If your source roots match these patterns, you don't need to explicitly configure them. ## Configuring source roots using marker files You can also denote your source roots using specially-named marker files. To do so, first pick a name (or multiple names) to use: -```toml title="pants.toml" +```toml pants.toml [source] marker_filenames = ["SOURCE_ROOT"] ``` @@ -141,10 +140,10 @@ For example, given this Python repo, where we have a `setup.py` for each distinc ``` . ├── server -│ ├── server -│ │ ├── __init__.py -│ │ └── app.py -│ └── setup.py +│   ├── server +│   │   ├── __init__.py +│   │   └── app.py +│   └── setup.py └── utils ├── setup.py └── utils @@ -155,7 +154,7 @@ For example, given this Python repo, where we have a `setup.py` for each distinc We could use this config: -```toml title="pants.toml" +```toml pants.toml [source] marker_filenames = ["setup.py"] ``` @@ -195,28 +194,28 @@ This setup is common in "polyglot" repositories: i.e. repos with multiple langua ``` . ├── 3rdparty -│ ├── java -│ │ └── ivy.xml -│ └── python -│ └── requirements.txt +│   ├── java +│   │   └── ivy.xml +│   └── python +│   └── requirements.txt ├── src -│ ├── java -│ │ └── org -│ │ └── pantsbuild -│ │ └── project -│ │ ├── App.java -│ │ └── util -│ │ └── Math.java -│ └── python -│ └── project -│ ├── __init__.py -│ ├── app.py -│ ├── config -│ │ ├── __init__.py -│ │ └── prod.json -│ └── util -│ ├── __init__.py -│ └── math.py +│   ├── java +│   │   └── org +│   │   └── pantsbuild +│   │   └── project +│   │   ├── App.java +│   │   └── util +│   │   └── Math.java +│   └── python +│   └── project +│   ├── __init__.py +│   ├── app.py +│   ├── config +│   │   ├── __init__.py +│   │   └── prod.json +│   └── util +│   ├── __init__.py +│   └── math.py └── test └── python └── project @@ -244,7 +243,7 @@ import org.pantsbuild.project.util.Math ### Config: -```toml title="pants.toml" +```toml pants.toml [source] root_patterns = [ "/src/java", @@ -264,26 +263,26 @@ This layout has lots of nesting; this is only one possible way to organize the r ``` . ├── ads -│ └── py -│ └── ads -│ ├── __init__.py -│ ├── billing -│ │ ├── __init__.py -│ │ └── calculate_bill.py -│ └── targeting -│ ├── __init__.py -│ └── validation.py +│   └── py +│   └── ads +│   ├── __init__.py +│   ├── billing +│   │   ├── __init__.py +│   │   └── calculate_bill.py +│   └── targeting +│   ├── __init__.py +│   └── validation.py ├── base -│ └── py -│ └── base -│ ├── __init__.py -│ ├── models -│ │ ├── __init__.py -│ │ ├── org.py -│ │ └── user.py -│ └── util -│ ├── __init__.py -│ └── math.py +│   └── py +│   └── base +│   ├── __init__.py +│   ├── models +│   │   ├── __init__.py +│   │   ├── org.py +│   │   └── user.py +│   └── util +│   ├── __init__.py +│   └── math.py └── news └── js └── spa.js @@ -297,13 +296,13 @@ from base.models.user import User from base.util.math import add_two ``` -Note that even though the projects live in different top-level folders, you are still able to import from other projects. If you would like to limit this, you can use `pants dependents` or `pants dependencies` in CI to track where imports are being used. See [Project introspection](../project-introspection.mdx). +Note that even though the projects live in different top-level folders, you are still able to import from other projects. If you would like to limit this, you can use `pants dependents` or `pants dependencies` in CI to track where imports are being used. See [Project introspection](doc:project-introspection). ### Config: Either of these are valid and they have the same result: -```toml title="pants.toml" +```toml pants.toml [source] root_patterns = [ "/ads/py", @@ -312,7 +311,7 @@ root_patterns = [ ] ``` -```toml title="pants.toml" +```toml pants.toml [source] root_patterns = [ "py", @@ -329,14 +328,14 @@ Warning: while this project structure is valid, it often does not scale as well ``` . ├── project -│ ├── __init__.py -│ ├── app.py -│ ├── config -│ │ ├── __init__.py -│ │ └── prod.json -│ └── util -│ ├── __init__.py -│ └── math.py +│   ├── __init__.py +│   ├── app.py +│   ├── config +│   │   ├── __init__.py +│   │   └── prod.json +│   └── util +│   ├── __init__.py +│   └── math.py └── pyproject.toml ``` @@ -353,7 +352,7 @@ pkgutil.get_data("project.config", "prod.json") Either of these are valid and they have the same result: -```toml title="pants.toml" +```toml pants.toml [source] root_patterns = ["/"] ``` diff --git a/versioned_docs/version-2.18/docs/using-pants/key-concepts/targets-and-build-files.mdx b/versioned_docs/version-2.18/docs/markdown/Using Pants/concepts/targets.md similarity index 52% rename from versioned_docs/version-2.18/docs/using-pants/key-concepts/targets-and-build-files.mdx rename to versioned_docs/version-2.18/docs/markdown/Using Pants/concepts/targets.md index 3b5574ded..24c902842 100644 --- a/versioned_docs/version-2.18/docs/using-pants/key-concepts/targets-and-build-files.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Using Pants/concepts/targets.md @@ -1,10 +1,9 @@ --- - title: Targets and BUILD files - sidebar_position: 1 ---- - -Metadata for your code. - +title: "Targets and BUILD files" +slug: "targets" +excerpt: "Metadata for your code." +hidden: false +createdAt: "2020-02-25T17:44:15.007Z" --- Most goals require metadata about your code. For example, to run a test, you need to know about all the transitive dependencies of that test. You may also want to set a timeout on that test. @@ -27,7 +26,7 @@ To reduce boilerplate, some targets also generate other targets: Targets are defined in files with the name `BUILD`. For example: -```python title="helloworld/greet/BUILD" +```python helloworld/greet/BUILD python_tests( name="tests", timeout=120, @@ -39,17 +38,17 @@ pex_binary( ) ``` -Each target type has different _fields_, or individual metadata values. Run `pants help $target` to see which fields a particular target type has, e.g. `pants help file`. Most fields are optional and use sensible defaults. See [Field default values](./targets-and-build-files.mdx#field-default-values) for how you may override a field's default value. +Each target type has different _fields_, or individual metadata values. Run `pants help $target` to see which fields a particular target type has, e.g. `pants help file`. Most fields are optional and use sensible defaults. See [Field default values](doc:targets#field-default-values) for how you may override a field's default value. All target types have a `name` field, which is used to identify the target. Target names must be unique within a directory. -You can autoformat `BUILD` files by enabling a `BUILD` file formatter by adding it to `[GLOBAL].backend_packages` in `pants.toml` (such as `pants.backend.build_files.fmt.black` [or others](./backends.mdx)). Then to format, run `pants fmt '**/BUILD'` or `pants fmt ::` (formats everything). +You can autoformat `BUILD` files by enabling a `BUILD` file formatter by adding it to `[GLOBAL].backend_packages` in `pants.toml` (such as `pants.backend.build_files.fmt.black` [or others](doc:enabling-backends)). Then to format, run `pants fmt '**/BUILD'` or `pants fmt ::` (formats everything). ## Environment variables BUILD files are very hermetic in nature with no support for using `import` or other I/O operations. In order to have dynamic data in BUILD files, you may inject values from the local environment using the `env()` function. It takes the variable name and optional default value as arguments. -```python title="helloworld/pkg/BUILD" +```python helloworld/pkg/BUILD python_distribution( name="helloworld-dist", description=env("DIST_DESC", "Set the `DIST_DESC` env variable to override this value."), @@ -68,20 +67,20 @@ Addresses are used in the `dependencies` field to depend on other targets. Addre (Both "generated targets" and "parametrized targets" have a variant of this syntax; see the below sections.) -:::note Default for the `name` field -The `name` field defaults to the directory name. So, this target has the address `helloworld/greet:greet`. - -```python -# helloworld/greet/BUILD -python_sources() -``` - -You can refer to this target with either `helloworld/greet:greet` or the abbreviated form `helloworld/greet`. -::: - -:::note Use `//:tgt` for the root of your repository -Addresses defined in the `BUILD` file at the root of your repository are prefixed with `//`, e.g. `//:my_tgt`. -::: +> 📘 Default for the `name` field +> +> The `name` field defaults to the directory name. So, this target has the address `helloworld/greet:greet`. +> +> ```python +> # helloworld/greet/BUILD +> python_sources() +> ``` +> +> You can refer to this target with either `helloworld/greet:greet` or the abbreviated form `helloworld/greet`. + +> 📘 Use `//:tgt` for the root of your repository +> +> Addresses defined in the `BUILD` file at the root of your repository are prefixed with `//`, e.g. `//:my_tgt`. # `source` and `sources` field @@ -91,7 +90,7 @@ Values are relative to the BUILD file's directory. Sources must be in or below t The `sources` field also supports `_` and `**` as globs. To exclude a file or glob, prefix with `!`. For example, `["_.py", "!exclude_*.py"]` will include `f.py` but not `exclude_me.py`. -```python title="BUILD" +```python BUILD resource(name="logo", source="logo.png") python_tests( @@ -100,28 +99,28 @@ python_tests( ) ``` -:::caution Be careful with overlapping `source` fields -It's legal to include the same file in the `source` / `sources` field for multiple targets. - -When would you do this? Sometimes you may have conflicting metadata for the same source file, such as wanting to check that a Shell test works with multiple shells. Normally, you should prefer Pants's `parametrize` mechanism to do this. See the below section "Parametrizing Targets". - -Often, however, it is not intentional when multiple targets own the same file. For example, this often happens when using `**` globs, like this: - -```python -# project/BUILD -python_sources(sources=["**/*.py"]) - -# project/subdir/BUILD -python_sources(sources=["**/*.py"]) -``` - -Including the same file in the `source` / `sources` field for multiple targets can result in two confusing behaviors: - -- File arguments will run over all owning targets, e.g. `pants test path/to/test.ext` would run both test targets as two separate subprocesses, even though you might only expect a single subprocess. -- Pants will sometimes no longer be able to infer dependencies on this file because it cannot disambiguate which of the targets you want to use. You must use explicit dependencies instead. (For some blessed fields, like the `resolve` field, if the targets have different values, then there will not be ambiguity.) - -You can run `pants list path/to/file.ext` to see all "owning" targets to check if >1 target has the file in its `source` field. -::: +> 🚧 Be careful with overlapping `source` fields +> +> It's legal to include the same file in the `source` / `sources` field for multiple targets. +> +> When would you do this? Sometimes you may have conflicting metadata for the same source file, such as wanting to check that a Shell test works with multiple shells. Normally, you should prefer Pants's `parametrize` mechanism to do this. See the below section "Parametrizing Targets". +> +> Often, however, it is not intentional when multiple targets own the same file. For example, this often happens when using `**` globs, like this: +> +> ```python +> # project/BUILD +> python_sources(sources=["**/*.py"]) +> +> # project/subdir/BUILD +> python_sources(sources=["**/*.py"]) +> ``` +> +> Including the same file in the `source` / `sources` field for multiple targets can result in two confusing behaviors: +> +> - File arguments will run over all owning targets, e.g. `pants test path/to/test.ext` would run both test targets as two separate subprocesses, even though you might only expect a single subprocess. +> - Pants will sometimes no longer be able to infer dependencies on this file because it cannot disambiguate which of the targets you want to use. You must use explicit dependencies instead. (For some blessed fields, like the `resolve` field, if the targets have different values, then there will not be ambiguity.) +> +> You can run `pants list path/to/file.ext` to see all "owning" targets to check if >1 target has the file in its `source` field. # `dependencies` field @@ -133,7 +132,7 @@ However, dependency inference cannot infer everything, such as dependencies on ` To add an explicit dependency, add the target's address to the `dependencies` field. This augments any dependencies that were inferred. -```python title="helloworld/greet/BUILD" +```python helloworld/greet/BUILD python_sources( name="lib", dependencies=[ @@ -145,30 +144,30 @@ python_sources( You only need to declare direct dependencies. Pants will pull in _transitive dependencies_—i.e. the dependencies of your dependencies—for you. -:::note Relative addresses, `:tgt` -When depending on a target defined in the same BUILD file, you can simply use `:tgt_name`, rather than `helloworld/greet:tgt_name`, for example. - -Addresses for generated targets also support relative addresses in the `dependencies` field, as explained in the "Target Generation" section below. -::: - -:::note Ignore dependencies with `!` and `!!` -If you don't like that Pants inferred a certain dependency—as reported by [`pants dependencies path/to:tgt`](../project-introspection.mdx)—tell Pants to ignore it with `!`: - -```python -python_sources( -name="lib", -dependencies=["!3rdparty/python:numpy"], -) -``` - -You can use the prefix `!!` to transitively exclude a dependency, meaning that even if a target's dependencies include the bad dependency, the final result will not include the value. - -Transitive excludes can only be used in target types that conventionally are not depended upon by other targets, such as `pex_binary`, `python_distribution`, and `python_test` / `python_tests`. This is meant to limit confusion, as using `!!` in something like a `python_source` / `python_sources` target could result in surprising behavior for everything that depends on it. (Pants will print a helpful error when using `!!` when it's not legal.) -::: +> 📘 Relative addresses, `:tgt` +> +> When depending on a target defined in the same BUILD file, you can simply use `:tgt_name`, rather than `helloworld/greet:tgt_name`, for example. +> +> Addresses for generated targets also support relative addresses in the `dependencies` field, as explained in the "Target Generation" section below. + +> 📘 Ignore dependencies with `!` and `!!` +> +> If you don't like that Pants inferred a certain dependency—as reported by [`pants dependencies path/to:tgt`](doc:project-introspection)—tell Pants to ignore it with `!`: +> +> ```python +> python_sources( +> name="lib", +> dependencies=["!3rdparty/python:numpy"], +> ) +> ``` +> +> You can use the prefix `!!` to transitively exclude a dependency, meaning that even if a target's dependencies include the bad dependency, the final result will not include the value. +> +> Transitive excludes can only be used in target types that conventionally are not depended upon by other targets, such as `pex_binary`, `python_distribution`, and `python_test` / `python_tests`. This is meant to limit confusion, as using `!!` in something like a `python_source` / `python_sources` target could result in surprising behavior for everything that depends on it. (Pants will print a helpful error when using `!!` when it's not legal.) # Field default values -As mentioned above in [BUILD files](./targets-and-build-files.mdx#build-files), most target fields have sensible defaults. And it's easy to override those values on a specific target. But applying the same non-default value on many targets can get unwieldy, error-prone and hard to maintain. Enter `__defaults__`. +As mentioned above in [BUILD files](doc:targets#build-files), most target fields have sensible defaults. And it's easy to override those values on a specific target. But applying the same non-default value on many targets can get unwieldy, error-prone and hard to maintain. Enter `__defaults__`. Alternative default field values are set using the `__defaults__` BUILD file symbol, and apply to targets in the filesystem tree under that BUILD file's directory. @@ -182,20 +181,20 @@ Default fields and values are validated against their target types, except when This means, that it is legal to provide a default value for `all` targets, even if it is only a subset of targets that actually supports that particular field. -:::note `__defaults__` does not apply to environment targets. -The environment targets (such as `local_environment` and `docker_environment` etc) are special and used during a bootstrap phase before any targets are defined and as such can not be targeted by the `__defaults__` construct. -::: +> 📘 `__defaults__` does not apply to environment targets. +> +> The environment targets (such as `local_environment` and `docker_environment` etc) are special and used during a bootstrap phase before any targets are defined and as such can not be targeted by the `__defaults__` construct. Examples: -```python title="src/example/BUILD" +```python src/example/BUILD # Provide default `tags` to all targets in this subtree, and skip black, where applicable. __defaults__(all=dict(tags=["example"], skip_black=True)) ``` Subdirectories may override defaults from a parent BUILD file: -```python title="src/example/override/BUILD" +```python src/example/override/BUILD # For `files` and `resources` targets, we want to use some other defaults. __defaults__({ (files, resources): dict(tags=["example", "overridden"], description="Our assets") @@ -204,14 +203,14 @@ Subdirectories may override defaults from a parent BUILD file: Use the `extend=True` keyword to update defaults rather than replace them, for any given target. -```python title="src/example/extend/BUILD" +```python src/example/extend/BUILD # Add a default description to all types, in addition to the inherited default tags. __defaults__(extend=True, all=dict(description="Add default description to the defaults.")) ``` To reset any modified defaults, simply override with the empty dict: -```python title="src/example/nodefaults/BUILD" +```python src/example/nodefaults/BUILD __defaults__(all={}) ``` @@ -219,7 +218,7 @@ To reset any modified defaults, simply override with the empty dict: Normally Pants presents an error message when attempting to provide a default value for a field that doesn't exist for the target. However, some fields comes from plugins, and to support disabling a plugin without having to remove any default values referencing any plugin fields it was providing, there is a `ignore_unknown_fields` option to use: -```python title="example/BUILD" +```python example/BUILD __defaults__( { # Defaults... @@ -232,7 +231,7 @@ Normally Pants presents an error message when attempting to provide a default va To add to a default value rather than replacing it, the current default value for a target field is available in the BUILD file using `..default`. This allows you to augment a field's default value with much more precision. As an example, if you want to make the default sources for a `python_sources` target to work recursively you may specify a target augmenting the default sources field: -```python title="BUILD" +```python BUILD python_sources( name="my-one-top-level-target", sources=[ @@ -250,7 +249,7 @@ To reduce boilerplate, Pants provides target types that generate other targets. - `python_tests` -> `python_test` - `go_mod` -> `go_third_party_package` -Usually, prefer these target generators. [`pants tailor ::`](../../getting-started/initial-configuration.mdx#5-generate-build-files) will automatically add them for you. +Usually, prefer these target generators. [`pants tailor ::`](doc:initial-configuration#5-generate-build-files) will automatically add them for you. Run `pants help targets` to see how the target determines what to generate. Targets for first-party code, like `resources` and `python_tests`, will generate one target for each file in their `sources` field. @@ -266,7 +265,7 @@ python_sources( Typically, fields declared in the target generator will be inherited by each generated target. For example, if you set `timeout=120` in a `python_tests` target, each generated `python_test` target will have `timeout=120`. You can instead use the `overrides` field for more granular metadata: -```python title="helloworld/BUILD" +```python helloworld/BUILD python_tests( name="tests", # This applies to every generated target. @@ -279,46 +278,59 @@ python_tests( ) ``` -:::caution Field default values for generated targets -[Default field values](./targets-and-build-files.mdx#field-default-values) apply to target generators, _not_ to generated targets. For example, if you have: - -```python -__defaults__({python_test: {"timeout": 30}}) - -python_tests(sources=["test_*.py", "!test_special.py"]) -python_test(name="special", source="test_special.py") -``` - -Then the default `timeout` value will only apply to the "special" `python_test`, not to any of the targets generated by the `python_tests` target. - -To specify defaults for both generated and manually-written instances of a target, you must list the target generator in your `__defaults__` as well: - -```python -__defaults__({(python_test, python_tests): {"timeout": 30}}) -``` - -::: +> 🚧 Field default values for generated targets +> +> [Default field values](doc:targets#field-default-values) apply to target generators, _not_ to generated targets. For example, if you have: +> +> ```python +> __defaults__({python_test: {"timeout": 30}}) +> +> python_tests(sources=["test_*.py", "!test_special.py"]) +> python_test(name="special", source="test_special.py") +> ``` +> +> Then the default `timeout` value will only apply to the "special" `python_test`, not to any of the targets generated by the `python_tests` target. +> +> To specify defaults for both generated and manually-written instances of a target, you must list the target generator in your `__defaults__` as well: +> +> ```python +> __defaults__({(python_test, python_tests): {"timeout": 30}}) +> ``` The address for generated targets depends if the generated target is for first-party code or not: -| Generated target type | Generated address syntax | -| :----------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| First-party, e.g. `python_source` and `file` | `path/to/file.ext:tgt_generator`

Example: `src/py/app.py:lib`

The address always starts with the path to the file.

If the file lives in the same directory as the target generator and the target generator left off the `name` field, you can use just the file path. For example, `src/py/app.py` (without the `:lib` suffix).

If the file lives in a subdirectory of the target generator, the suffix will look like `../tgt_generator`. For example, `src/py/subdir/f.py:../lib`, where the target generator is `src/py:lib`.

With the `dependencies` field, you can use relative addresses by prefixing the path with `./`, so long as the path is in the same directory or below the current BUILD file. For example, `./app.py:lib` rather than `src/py/app.py:lib`. | -| All other targets, e.g. `go_third_party_package` | `path/to:tgt_generator#generated_name`

Example: `3rdparty/py:reqs#django`

Run `pants help $target_type` on the target generator to see how it sets the generated name. For example, `go_mod` uses the Go package's name.

If the target generator left off the `name` field, you can leave it off for the generated address too, e.g. `3rdparty/py#django` (without the `:reqs` portion).

With the `dependencies` field, you can use relative addresses to reference generated targets in the same BUILD file, e.g. `:generator#generated_name` instead of `src/py:generated#generated_name`. If the target generator uses the default `name`, you can simply use `#generated_name`. | - -Run [`pants list dir:`](../project-introspection.mdx) in the directory of the target generator to see all generated target addresses, and [`pants peek dir:`](../project-introspection.mdx) to see all their metadata. +[block:parameters] +{ +"data": { +"h-0": "Generated target type", +"h-1": "Generated address syntax", +"0-0": "First-party, e.g. `python_source` and `file`", +"0-1": "`path/to/file.ext:tgt_generator` \n \nExample: `src/py/app.py:lib` \n \nThe address always starts with the path to the file. \n \nIf the file lives in the same directory as the target generator and the target generator left off the `name` field, you can use just the file path. For example, `src/py/app.py` (without the `:lib` suffix). \n \nIf the file lives in a subdirectory of the target generator, the suffix will look like `../tgt_generator`. For example, `src/py/subdir/f.py:../lib`, where the target generator is `src/py:lib`. \n \nWith the `dependencies` field, you can use relative addresses by prefixing the path with `./`, so long as the path is in the same directory or below the current BUILD file. For example, `./app.py:lib` rather than `src/py/app.py:lib`.", +"1-0": "All other targets, e.g. `go_third_party_package`", +"1-1": "`path/to:tgt_generator#generated_name` \n \nExample: `3rdparty/py:reqs#django` \n \nRun `pants help $target_type` on the target generator to see how it sets the generated name. For example, `go_mod` uses the Go package's name. \n \nIf the target generator left off the `name` field, you can leave it off for the generated address too, e.g. `3rdparty/py#django` (without the `:reqs` portion). \n \nWith the `dependencies` field, you can use relative addresses to reference generated targets in the same BUILD file, e.g. `:generator#generated_name` instead of `src/py:generated#generated_name`. If the target generator uses the default `name`, you can simply use `#generated_name`." +}, +"cols": 2, +"rows": 2, +"align": [ +"left", +"left" +] +} +[/block] + +Run [`pants list dir:`](doc:project-introspection) in the directory of the target generator to see all generated target addresses, and [`pants peek dir:`](doc:project-introspection) to see all their metadata. You can use the address for the target generator as an alias for all of its generated targets. For example, if you have the `files` target `assets:logos`, adding `dependencies=["assets:logos"]`to another target will add a dependency on each generated `file` target. Likewise, if you have a `python_tests` target `project:tests`, then `pants test project:tests` will run on each generated `python_test` target. -:::note Tip: one BUILD file per directory -Target generation means that it is technically possible to put everything in a single BUILD file. - -However, we've found that it usually scales much better to use a single BUILD file per directory. Even if you start with using the defaults for everything, projects usually need to change some metadata over time, like adding a `timeout` to a test file or adding `dependencies` on resources. - -It's useful for metadata to be as fine-grained as feasible, such as by using the `overrides` field to only change the files you need to. Fine-grained metadata is key to having smaller cache keys (resulting in more cache hits), and allows you to more accurately reflect the status of your project. We have found that using one BUILD file per directory encourages fine-grained metadata by defining the metadata adjacent to where the code lives. - -[`pants tailor ::`](../../getting-started/initial-configuration.mdx#5-generate-build-files) will automatically create targets that only apply metadata for the directory. -::: +> 📘 Tip: one BUILD file per directory +> +> Target generation means that it is technically possible to put everything in a single BUILD file. +> +> However, we've found that it usually scales much better to use a single BUILD file per directory. Even if you start with using the defaults for everything, projects usually need to change some metadata over time, like adding a `timeout` to a test file or adding `dependencies` on resources. +> +> It's useful for metadata to be as fine-grained as feasible, such as by using the `overrides` field to only change the files you need to. Fine-grained metadata is key to having smaller cache keys (resulting in more cache hits), and allows you to more accurately reflect the status of your project. We have found that using one BUILD file per directory encourages fine-grained metadata by defining the metadata adjacent to where the code lives. +> +> [`pants tailor ::`](doc:initial-configuration#5-generate-build-files) will automatically create targets that only apply metadata for the directory. # Parametrizing targets @@ -329,7 +341,7 @@ It can be useful to create multiple targets describing the same entity, each wit The `parametrize` builtin creates a distinct target per parametrized field value. All values other than the parametrized field(s) are the same for each target. For example: -```python title="example/BUILD" +```python example/BUILD # Creates two targets: # # example:tests@shell=bash @@ -346,7 +358,7 @@ If multiple fields are parametrized, a target will be created for each value in If the field value is not a string—or it is a string but includes spaces—you can give it an alias, like the `interpreter_constraints` field below: -```python title="example/BUILD" +```python example/BUILD # Creates four targets: # # example:tests@interpreter_constraints=py2,resolve=lock-a @@ -362,13 +374,13 @@ python_test( ) ``` -The targets' addresses will have `@key=value` at the end, as shown above. Run [`pants list dir:`](../project-introspection.mdx) in the directory of the parametrized target to see all parametrized target addresses, and [`pants peek dir:`](../project-introspection.mdx) to see all their metadata. +The targets' addresses will have `@key=value` at the end, as shown above. Run [`pants list dir:`](doc:project-introspection) in the directory of the parametrized target to see all parametrized target addresses, and [`pants peek dir:`](doc:project-introspection) to see all their metadata. Generally, you can use the address without the `@` suffix as an alias to all the parametrized targets. For example, `pants test example:tests` will run all the targets in parallel. Use the more precise address if you only want to use one parameter value, e.g. `pants test example:tests@shell=bash`. Parametrization can be combined with target generation. The `@key=value` will be added to the end of the address for each generated target. For example: -```python title="example/BUILD" +```python example/BUILD # Generates four `shunit2_test` targets: # # example/test1.sh:tests@shell=bash @@ -396,7 +408,7 @@ shunit2_tests( You can combine `parametrize` with the ` overrides` field to set more granular metadata for generated targets: -```python title="example/BUILD" +```python example/BUILD # Generates three `shunit2_test` targets: # # example/test1.sh:tests diff --git a/versioned_docs/version-2.18/docs/using-pants/environments:-cross-platform-or-remote-builds.mdx b/versioned_docs/version-2.18/docs/markdown/Using Pants/environments.md similarity index 52% rename from versioned_docs/version-2.18/docs/using-pants/environments:-cross-platform-or-remote-builds.mdx rename to versioned_docs/version-2.18/docs/markdown/Using Pants/environments.md index 6f67f329b..397943d6b 100644 --- a/versioned_docs/version-2.18/docs/using-pants/environments:-cross-platform-or-remote-builds.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Using Pants/environments.md @@ -1,39 +1,39 @@ --- - title: "Environments: Cross-Platform or Remote Builds" - sidebar_position: 9 ---- - +title: "Environments: Cross-Platform or Remote Builds" +slug: "environments" +hidden: false +createdAt: "2022-10-03T21:39:51.235Z" --- # Environments -:::caution Environments are currently in `preview`, and have not yet stabilized. -We'd love your feedback on how Environments could be most useful to you! Please refer to [the tracking issue](https://github.com/pantsbuild/pants/issues/17355) for known stabilization blockers. -::: +> 🚧 Environments are currently in `preview`, and have not yet stabilized. +> +> We'd love your feedback on how Environments could be most useful to you! Please refer to [the tracking issue](https://github.com/pantsbuild/pants/issues/17355) for known stabilization blockers. By default, Pants will execute all sandboxed build work directly on localhost. But defining and using additional "environments" for particular targets allows Pants to transparently execute some or all of your build either: 1. locally in Docker containers -2. remotely via [remote execution](./remote-caching-&-execution/remote-execution.mdx) +2. remotely via [remote execution](doc:remote-execution) 3. locally, but with a non-default set of environment variables and settings (such as when different platforms need different values, or when cross-building) ## Defining environments Environments are defined using environment targets: -- [`local_environment`](../../reference/targets/local_environment.mdx) - Runs without containerization on localhost (which is also the default if no environment targets are defined). -- [`docker_environment`](../../reference/targets/docker_environment.mdx) - Runs in a cached container using the specified Docker image using a local installation of Docker. If the image does not already exist locally, it will be pulled. -- [`remote_environment`](../../reference/targets/remote_environment.mdx) - Runs in a remote worker via [remote execution](./remote-caching-&-execution/remote-execution.mdx) (possibly with containerization, depending on the server implementation). +- [`local_environment`](doc:reference-local_environment) - Runs without containerization on localhost (which is also the default if no environment targets are defined). +- [`docker_environment`](doc:reference-docker_environment) - Runs in a cached container using the specified Docker image using a local installation of Docker. If the image does not already exist locally, it will be pulled. +- [`remote_environment`](doc:reference-remote_environment) - Runs in a remote worker via [remote execution](doc:remote-execution) (possibly with containerization, depending on the server implementation). -Give your environment targets short, descriptive names using the [`[environments-previews.names]` option](../../reference/subsystems/environments-preview.mdx#names) (usually defined in `pants.toml`), which consuming targets use to refer to them in `BUILD` files. That might look like a `pants.toml` section and `BUILD` file (at the root of the repository in this case) containing: +Give your environment targets short, descriptive names using the [`[environments-previews.names]` option](doc:reference-environments-preview#names) (usually defined in `pants.toml`), which consuming targets use to refer to them in `BUILD` files. That might look like a `pants.toml` section and `BUILD` file (at the root of the repository in this case) containing: -```toml title="pants.toml" +```toml pants.toml [environments-preview.names] linux = "//:local_linux" linux_docker = "//:local_busybox" ``` -```python title="BUILD" +```python BUILD local_environment( name="local_linux", compatible_platforms=["linux_x86_64"], @@ -49,41 +49,41 @@ docker_environment( ) ``` -:::caution Environment targets and macros -Environment targets are loaded before regular targets in a bootstrap phase, during which macros are unavailable. As such any required field values must be fully defined in the BUILD file without referencing any macros. For optional fields, the use of macros are still discouraged as it may or may not work and Pants makes no guarantees that it will not break in a future version if it were to currently work. -::: +> 🚧 Environment targets and macros +> +> Environment targets are loaded before regular targets in a bootstrap phase, during which macros are unavailable. As such any required field values must be fully defined in the BUILD file without referencing any macros. For optional fields, the use of macros are still discouraged as it may or may not work and Pants makes no guarantees that it will not break in a future version if it were to currently work. ### Environment-aware options -Environment targets have fields ([target](./key-concepts/targets-and-build-files.mdx) arguments) which correspond to [options](./key-concepts/options.mdx) which are marked "environment-aware". When an option is environment-aware, the value of the option that will be used in an environment can be overridden by setting the corresponding field value on the associated environment target. If an environment target does not set a value, it defaults to the value which is set globally via options values. +Environment targets have fields ([target](doc:targets) arguments) which correspond to [options](doc:options) which are marked "environment-aware". When an option is environment-aware, the value of the option that will be used in an environment can be overridden by setting the corresponding field value on the associated environment target. If an environment target does not set a value, it defaults to the value which is set globally via options values. -For example, the [`[python-bootstrap].search_path` option](../../reference/subsystems/python-bootstrap.mdx#search_path) is environment-aware, which is indicated in its help. It can be overridden for a particular environment by a corresponding environment target field, such as [the one on `local_environment`](../../reference/targets/local_environment.mdx#codepython_bootstrap_search_pathcode). +For example, the [`[python-bootstrap].search_path` option](doc:reference-python-bootstrap#search_path) is environment-aware, which is indicated in its help. It can be overridden for a particular environment by a corresponding environment target field, such as [the one on `local_environment`](doc:reference-local_environment#codepython_bootstrap_search_pathcode). -:::tip See an option which should be environment-aware, but isn't? -Environments are a new concept: if you see an option value which should be marked environment-aware but isn't, please definitely [file an issue](https://github.com/pantsbuild/pants/issues/new/choose)! -::: +> 👍 See an option which should be environment-aware, but isn't? +> +> Environments are a new concept: if you see an option value which should be marked environment-aware but isn't, please definitely [file an issue](https://github.com/pantsbuild/pants/issues/new/choose)! ## Consuming environments -To declare which environment they should build with, many target types (but particularly "root" targets like tests or binaries) have an `environment=` field: for example, [`python_tests(environment=..)`](../../reference/targets/python_tests.mdx#codeenvironmentcode). +To declare which environment they should build with, many target types (but particularly "root" targets like tests or binaries) have an `environment=` field: for example, [`python_tests(environment=..)`](doc:reference-python_tests#codeenvironmentcode). The `environment=` field may either: 1. refer to an environment by name 2. use a special `__local__` environment name, which resolves to any matching `local_environment` (see "Environment matching" below) -:::caution Environment compatibility -Currently, there is no static validation that a target's environment is compatible with its dependencies' environments -- only the implicit validation of the goals that you run successfully against those targets (`check`, `lint`, `test`, `package`, etc). - -As we gain more experience with how environments are used in the wild, it's possible that more static validation can be added: your feedback would be very welcome! -::: +> 🚧 Environment compatibility +> +> Currently, there is no static validation that a target's environment is compatible with its dependencies' environments -- only the implicit validation of the goals that you run successfully against those targets (`check`, `lint`, `test`, `package`, etc). +> +> As we gain more experience with how environments are used in the wild, it's possible that more static validation can be added: your feedback would be very welcome! ### Setting the environment on many targets at once To use an environment everywhere in your repository (or only within a particular subdirectory, or with a particular target -type), you can use the [`__defaults__` builtin](./key-concepts/targets-and-build-files.mdx#field-default-values). For example, to use an environment named `my_default_environment` globally by default, you would add the following to a `BUILD` file at the root of the repository: +type), you can use the [`__defaults__` builtin](doc:targets#field-default-values). For example, to use an environment named `my_default_environment` globally by default, you would add the following to a `BUILD` file at the root of the repository: -```python title="BUILD" +```python BUILD __defaults__(all=dict(environment="my_default_environment")) ``` @@ -91,9 +91,9 @@ __defaults__(all=dict(environment="my_default_environment")) ### Building one target in multiple environments -If a target will always need to be built in multiple environments (rather than conditionally based on which user is building it: see the "Toggle use of an environment for some consumers" section), then you can use the [`parametrize` builtin](./key-concepts/targets-and-build-files.mdx#parametrizing-targets) for the `environment=` field. If you had two environments named `linux` and `macos`, that would look like: +If a target will always need to be built in multiple environments (rather than conditionally based on which user is building it: see the "Toggle use of an environment for some consumers" section), then you can use the [`parametrize` builtin](doc:targets#parametrizing-targets) for the `environment=` field. If you had two environments named `linux` and `macos`, that would look like: -```python title="BUILD" +```python BUILD pex_binary( name="bin", environment=parametrize("linux", "macos"), @@ -105,14 +105,14 @@ pex_binary( A single environment name may end up referring to different environment targets on different physical machines, or with different global settings applied: this is known as environment "matching". - `local_environment` targets will match if their `compatible_platforms=` field matches localhost's platform. -- `docker_environment` targets will match [if Docker is enabled](../../reference/global-options.mdx#docker_execution), and if their `platform=` field is compatible with localhost's platform. -- `remote_environment` targets will match [if Remote execution is enabled](../../reference/global-options.mdx#remote_execution). +- `docker_environment` targets will match [if Docker is enabled](doc:reference-global#docker_execution), and if their `platform=` field is compatible with localhost's platform. +- `remote_environment` targets will match [if Remote execution is enabled](doc:reference-global#remote_execution). If a particular environment target _doesn't_ match, it can configure a `fallback_environment=` which will be attempted next. This allows for forming preference chains which are referred to by whichever environment name is at the head of the chain. For example: a chain like "prefer remote execution if enabled, but fall back to local execution if the platform matches, otherwise use docker" might be configured via the targets: -```python title="BUILD" +```python BUILD remote_environment( name="remote", fallback_environment="local", @@ -137,9 +137,9 @@ In future versions, environment targets will gain additional predicates to contr ### Enabling remote execution globally -`remote_environment` targets match unless the [`--remote-execution`](../../reference/global-options.mdx#remote_execution) option is disabled. So to cause a particular environment name to use remote execution whenever it is enabled, you could define environment targets which try remote execution first, and then fall back to local execution: +`remote_environment` targets match unless the [`--remote-execution`](doc:reference-global#remote_execution) option is disabled. So to cause a particular environment name to use remote execution whenever it is enabled, you could define environment targets which try remote execution first, and then fall back to local execution: -```python title="BUILD" +```python BUILD remote_environment( name="remote_busybox", platform="linux_x86_64", @@ -155,7 +155,7 @@ local_environment( You'd then give your `remote_environment` target an unassuming name like "default": -```toml title="pants.toml" +```toml pants.toml [environments-preview.names] default = "//:remote_busybox" local = "//:local" @@ -163,9 +163,9 @@ local = "//:local" ... and use that environment by default with all targets. Users or consumers like CI could then toggle whether remote execution is used by setting `--remote-execution`. -:::caution Speculation of remote execution -The `2.15.x` series of Pants does not yet support ["speculating" remote execution](https://github.com/pantsbuild/pants/issues/8353) by racing it against another environment (usually local or docker). While we expect that this will be necessary to make remote execution a viable option for local execution on user's laptops (where network connections are less reliable), it is less critical for CI use-cases. -::: +> 🚧 Speculation of remote execution +> +> The `2.15.x` series of Pants does not yet support ["speculating" remote execution](https://github.com/pantsbuild/pants/issues/8353) by racing it against another environment (usually local or docker). While we expect that this will be necessary to make remote execution a viable option for local execution on user's laptops (where network connections are less reliable), it is less critical for CI use-cases. ### Use a `docker_environment` to build the inputs to a `docker_image` @@ -173,7 +173,7 @@ To build a `docker_image` target containing a `pex_binary` which uses native (i. You'll need a `docker_environment` which uses an image containing the relevant build-time requirements of your PEX. At a minimum, you'll need Python itself: -```python title="BUILD" +```python BUILD docker_environment( name="python_bullseye", platform="linux_x86_64", @@ -184,7 +184,7 @@ docker_environment( Next, mark your `pex_binary` target with this environment (with the name `python_bullseye`: see "Defining environments" above), and define a `docker_image` target depending on it. -```python title="BUILD" +```python BUILD pex_binary( name="main", environment="python_bullseye", @@ -200,11 +200,11 @@ docker_image( ) ``` -:::tip Compatibility of `docker_environment` and `docker_image` -Note that the Docker image used in your `docker_environment` does not need to match the base image of the `docker_image` targets that consume them: they only need to be compatible. This is because execution of build steps in a `docker_environment` occurs in an anonymous container, and only the required inputs are provided to the `docker_image` build. - -This means that your `docker_environment` can include things like compilers or other tools relevant to your build, without needing to manually use multi-stage Docker builds. -::: +> 👍 Compatibility of `docker_environment` and `docker_image` +> +> Note that the Docker image used in your `docker_environment` does not need to match the base image of the `docker_image` targets that consume them: they only need to be compatible. This is because execution of build steps in a `docker_environment` occurs in an anonymous container, and only the required inputs are provided to the `docker_image` build. +> +> This means that your `docker_environment` can include things like compilers or other tools relevant to your build, without needing to manually use multi-stage Docker builds. ### Toggle use of an environment for some consumers @@ -212,7 +212,7 @@ As mentioned above in "Environment matching", environment targets "match" based For example: if you'd like to use a particular `macOS` environment target locally, but override it for a particular use case in CI, you'd start by defining two `local_environment` targets which would usually match ambiguously: -```python title="BUILD" +```python BUILD local_environment( name="macos_laptop", compatible_platforms=["macos_x86_64"], @@ -226,7 +226,7 @@ local_environment( ... and then assign one of them a (generic) environment name in `pants.toml`: -```toml title="pants.toml" +```toml pants.toml [environments-preview.names] macos = "//:macos_laptop" ... @@ -234,7 +234,7 @@ macos = "//:macos_laptop" You could then _override_ that name definition in `pants.ci.toml` (note the use of the `.add` suffix, in order to preserve any other named environments): -```toml title="pants.ci.toml" +```toml pants.ci.toml [environments-preview.names.add] macos = "//:macos_ci" ``` diff --git a/versioned_docs/version-2.18/docs/using-pants/generating-version-tags-from-git.mdx b/versioned_docs/version-2.18/docs/markdown/Using Pants/generating-version-tags.md similarity index 89% rename from versioned_docs/version-2.18/docs/using-pants/generating-version-tags-from-git.mdx rename to versioned_docs/version-2.18/docs/markdown/Using Pants/generating-version-tags.md index b4b90deb3..567fd14a1 100644 --- a/versioned_docs/version-2.18/docs/using-pants/generating-version-tags-from-git.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Using Pants/generating-version-tags.md @@ -1,8 +1,7 @@ --- - title: Generating version tags from Git - sidebar_position: 10 ---- - +title: "Generating version tags from Git" +slug: "generating-version-tags" +hidden: false --- Pants can generate a version string based on Git state that you can use during builds. @@ -13,7 +12,7 @@ The implementation of this feature relies on a third-party [Python library](http so to use it you will need to activate the Python backend and its "experimental" extension, even if you're not otherwise using Python in your repo: -```toml title="pants.toml" +```toml pants.toml backend_packages.add = [ ... "pants.backend.python", @@ -26,7 +25,7 @@ backend_packages.add = [ To utilize this functionality, you first create a `vcs_version` target in some BUILD file, e.g.,: -```python title="src/foo/BUILD" +```python src/foo/BUILD vcs_version( name="version", generate_to="src/foo/version.py", @@ -43,7 +42,7 @@ This content will be available at test and run time, and be packaged along with code and its dependencies. Your code can use the generated content (e.g., by importing it or reading it) and thus have access to a dynamically-generated version. -Note that, similarly to how Pants handles other code generation tools (such as [Protobuf](../python/integrations/protobuf-and-grpc.mdx)), +Note that, similarly to how Pants handles other code generation tools (such as [Protobuf](doc:protobuf-python)), this content is not written out as a file into your source tree. Instead, the content is materialized on the fly, as needed. If you want to inspect the generated contents manually, you can use the `export-codegen` goal: @@ -56,7 +55,7 @@ pants export-codegen src/foo:version Code that depends on the `vcs_version` target can import and use the generated file: -```python title="src/util.py" +```python src/util.py from version import version ... ``` @@ -74,4 +73,4 @@ Pants delegates the version string computation to [setuptools_scm](https://githu See [here](https://github.com/pypa/setuptools_scm#default-versioning-scheme) for how it computes the version string from the Git state. We don't yet support any of the configuration options that control how the string is computed. Please -[let us know](/community/getting-help) if you need such advanced functionality. +[let us know](doc:getting-help) if you need such advanced functionality. diff --git a/versioned_docs/version-2.18/docs/using-pants/project-introspection.mdx b/versioned_docs/version-2.18/docs/markdown/Using Pants/project-introspection.md similarity index 70% rename from versioned_docs/version-2.18/docs/using-pants/project-introspection.mdx rename to versioned_docs/version-2.18/docs/markdown/Using Pants/project-introspection.md index 2a5e654e5..79b932878 100644 --- a/versioned_docs/version-2.18/docs/using-pants/project-introspection.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Using Pants/project-introspection.md @@ -1,35 +1,32 @@ --- - title: Project introspection - sidebar_position: 4 ---- - -Finding insights in your project. - +title: "Project introspection" +slug: "project-introspection" +excerpt: "Finding insights in your project." +hidden: false +createdAt: "2020-05-11T09:10:16.427Z" --- Pants provides several goals to provide insights into your project's structure. - - -:::note Tip: Use `xargs` to pipe these goals into other Pants commands -For example: - -```bash -$ pants dependents project/util.py | xargs pants test -``` - -See [Advanced target selection](./advanced-target-selection.mdx) for more info and other techniques to use the results. -::: +[block:embed] +{ +"html": "", +"url": "https://www.youtube.com/watch?v=IpEv5cWfyko", +"title": "Pants Build 2: Project introspection and dependency inference", +"favicon": "https://www.youtube.com/s/desktop/d9bba4ed/img/favicon.ico", +"image": "https://i.ytimg.com/vi/IpEv5cWfyko/hqdefault.jpg" +} +[/block] + +> 📘 Tip: Use `xargs` to pipe these goals into other Pants commands +> +> For example: +> +> ```bash +> $ pants dependents project/util.py | xargs pants test +> ``` +> +> See [Advanced target selection](doc:advanced-target-selection) for more info and other techniques to use the results. ## `list` - find your project's targets @@ -56,7 +53,7 @@ helloworld/greet/greeting_test.py:tests ``` `list` often works well when paired with the `--filter` options from -[Advanced Target Selection](./advanced-target-selection.mdx), e.g. +[Advanced Target Selection](doc:advanced-target-selection), e.g. `pants --filter-target-type=python_test list ::` to find all your `python_test` targets. ## `dependencies` - find a target's dependencies @@ -206,51 +203,49 @@ $ pants peek --exclude-defaults helloworld/util:tests ] ``` -:::note Piping peek output into jq -`peek` can be particularly useful when paired with [JQ](https://stedolan.github.io/jq/) to query the JSON. For example, you can combine `pants peek` with JQ to find all targets where you set the field `skip_flake8=True`: - -```bash -$ pants peek :: | jq -r '.[] | select(.skip_flake8 == true) | .["address"]' -helloworld/greet:lib -helloworld/greet:tests -helloworld/util:lib -``` - -::: - -:::note Piping other introspection commands into `pants peek` -Some introspection goals, such as `filter`, `dependencies` and `dependents` emit a flat list of target addresses. It's often useful to expand each of those into a full JSON structure with detailed properties of each target, by piping to `pants peek`: - -```bash -pants dependents helloworld/main.py:lib | xargs pants peek --exclude-defaults -[ -{ -"address": "helloworld:lib", -"target_type": "python_sources", -"dependencies": [ -"helloworld/__init__.py:lib", -"helloworld/main.py:lib" -], -"sources": [ -"helloworld/__init__.py", -"helloworld/main.py" -] -}, -{ -"address": "helloworld:pex_binary", -"target_type": "pex_binary", -"dependencies": [ -"helloworld/main.py:lib" -], -"entry_point": { -"module": "main.py", -"function": null -} -} -] -``` - -::: +> 📘 Piping peek output into jq +> +> `peek` can be particularly useful when paired with [JQ](https://stedolan.github.io/jq/) to query the JSON. For example, you can combine `pants peek` with JQ to find all targets where you set the field `skip_flake8=True`: +> +> ```bash +> $ pants peek :: | jq -r '.[] | select(.skip_flake8 == true) | .["address"]' +> helloworld/greet:lib +> helloworld/greet:tests +> helloworld/util:lib +> ``` + +> 📘 Piping other introspection commands into `pants peek` +> +> Some introspection goals, such as `filter`, `dependencies` and `dependents` emit a flat list of target addresses. It's often useful to expand each of those into a full JSON structure with detailed properties of each target, by piping to `pants peek`: +> +> ```bash +> pants dependents helloworld/main.py:lib | xargs pants peek --exclude-defaults +> [ +> { +> "address": "helloworld:lib", +> "target_type": "python_sources", +> "dependencies": [ +> "helloworld/__init__.py:lib", +> "helloworld/main.py:lib" +> ], +> "sources": [ +> "helloworld/__init__.py", +> "helloworld/main.py" +> ] +> }, +> { +> "address": "helloworld:pex_binary", +> "target_type": "pex_binary", +> "dependencies": [ +> "helloworld/main.py:lib" +> ], +> "entry_point": { +> "module": "main.py", +> "function": null +> } +> } +> ] +> ``` ## `paths` - find dependency paths @@ -301,16 +296,15 @@ SCC has [dozens of options](https://github.com/boyter/scc#usage). You can pass t pants count-loc :: -- --no-cocomo ``` -:::caution See unexpected results? Set `pants_ignore`. -By default, Pants will ignore all globs specified in your `.gitignore`, along with `dist/` and any hidden files. - -To ignore additional files, add to the global option `pants_ignore` in your `pants.toml`, using the same [syntax](https://git-scm.com/docs/gitignore) as `.gitignore` files. - -For example: - -```toml title="pants.toml" -[GLOBAL] -pants_ignore.add = ["/ignore_this_dir/"] -``` - -::: +> 🚧 See unexpected results? Set `pants_ignore`. +> +> By default, Pants will ignore all globs specified in your `.gitignore`, along with `dist/` and any hidden files. +> +> To ignore additional files, add to the global option `pants_ignore` in your `pants.toml`, using the same [syntax](https://git-scm.com/docs/gitignore) as `.gitignore` files. +> +> For example: +> +> ```toml pants.toml +> [GLOBAL] +> pants_ignore.add = ["/ignore_this_dir/"] +> ``` diff --git a/versioned_docs/version-2.18/docs/using-pants/remote-caching-&-execution/index.mdx b/versioned_docs/version-2.18/docs/markdown/Using Pants/remote-caching-execution.md similarity index 88% rename from versioned_docs/version-2.18/docs/using-pants/remote-caching-&-execution/index.mdx rename to versioned_docs/version-2.18/docs/markdown/Using Pants/remote-caching-execution.md index b45937d0b..338c86d76 100644 --- a/versioned_docs/version-2.18/docs/using-pants/remote-caching-&-execution/index.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Using Pants/remote-caching-execution.md @@ -1,13 +1,13 @@ --- - title: Remote caching & execution - sidebar_position: 8 ---- - +title: "Remote caching & execution" +slug: "remote-caching-execution" +hidden: false +createdAt: "2021-03-19T21:39:51.235Z" --- # Overview -By default, Pants executes processes in a local [environment](../environments:-cross-platform-or-remote-builds.mdx) on the system on which it is run, and caches the results of those processes locally as well. Besides this "local execution" mode of operation, Pants also supports two distributed modes of operation: +By default, Pants executes processes in a local [environment](doc:environments) on the system on which it is run, and caches the results of those processes locally as well. Besides this "local execution" mode of operation, Pants also supports two distributed modes of operation: 1. "Remote caching" where Pants store results from local process execution in a remote cache and also consumes results from that remote cache; and diff --git a/versioned_docs/version-2.18/docs/using-pants/remote-caching-&-execution/remote-caching.mdx b/versioned_docs/version-2.18/docs/markdown/Using Pants/remote-caching-execution/remote-caching.md similarity index 78% rename from versioned_docs/version-2.18/docs/using-pants/remote-caching-&-execution/remote-caching.mdx rename to versioned_docs/version-2.18/docs/markdown/Using Pants/remote-caching-execution/remote-caching.md index 020f24f74..8912fbc68 100644 --- a/versioned_docs/version-2.18/docs/using-pants/remote-caching-&-execution/remote-caching.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Using Pants/remote-caching-execution/remote-caching.md @@ -1,8 +1,8 @@ --- - title: Remote caching - sidebar_position: 0 ---- - +title: "Remote caching" +slug: "remote-caching" +hidden: false +createdAt: "2021-03-19T21:40:24.451Z" --- # What is remote caching? @@ -13,7 +13,7 @@ Remote caching allows Pants to store and retrieve the results of process executi ## Server -Remote caching requires the availability of a REAPI-compatible cache. See the [REAPI server compatibility guide](./index.mdx#server-compatibility) for more information. +Remote caching requires the availability of a REAPI-compatible cache. See the [REAPI server compatibility guide](doc:remote-caching-execution#server-compatibility) for more information. ## Pants Configuration @@ -33,4 +33,4 @@ If the endpoint is using TLS, then the `remote_store_address` option would be sp # Reference -Run `pants help-advanced global` or refer to [Global options](../../../reference/global-options.mdx). Most remote execution and caching options begin with the prefix `--remote`. +Run `pants help-advanced global` or refer to [Global options](doc:reference-global). Most remote execution and caching options begin with the prefix `--remote`. diff --git a/versioned_docs/version-2.18/docs/using-pants/remote-caching-&-execution/remote-execution.mdx b/versioned_docs/version-2.18/docs/markdown/Using Pants/remote-caching-execution/remote-execution.md similarity index 72% rename from versioned_docs/version-2.18/docs/using-pants/remote-caching-&-execution/remote-execution.mdx rename to versioned_docs/version-2.18/docs/markdown/Using Pants/remote-caching-execution/remote-execution.md index af6820aaa..7f560c3ab 100644 --- a/versioned_docs/version-2.18/docs/using-pants/remote-caching-&-execution/remote-execution.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Using Pants/remote-caching-execution/remote-execution.md @@ -1,13 +1,13 @@ --- - title: Remote execution - sidebar_position: 1 +title: "Remote execution" +slug: "remote-execution" +hidden: false +createdAt: "2020-11-13T23:44:25.806Z" --- ---- - -:::caution Remote execution support is still experimental -Remote execution support in Pants comes with several limitations. For example, Pants requires that the server's operating system match the client's operating system. In practice, this means that Pants must be running on Linux because all three major server projects generally only operate on Linux. -::: +> 🚧 Remote execution support is still experimental +> +> Remote execution support in Pants comes with several limitations. For example, Pants requires that the server's operating system match the client's operating system. In practice, this means that Pants must be running on Linux because all three major server projects generally only operate on Linux. # What is remote execution? @@ -17,7 +17,7 @@ Remote execution support in Pants comes with several limitations. For example, P ## Server -Remote execution requires the availability of a REAPI-compatible execution server. See the [REAPI server compatibility guide](./index.mdx#server-compatibility) for more information. +Remote execution requires the availability of a REAPI-compatible execution server. See the [REAPI server compatibility guide](doc:remote-caching-execution#server-compatibility) for more information. ## Pants @@ -37,7 +37,7 @@ remote_instance_name = "main" The REAPI execution service selects a worker for a process by consulting the "platform properties" that are passed in a remote execution request. These platform properties are key/value pairs that are configured for particular workers in the server. Generally, you will configure these in the server (or be provided them by your server's administrator), and then configure Pants to match particular workers using their relevant platform properties. -To define platform properties (as well as to configure any other settings which are specific to running on a remote worker), you should define a remote environment. Building on the first example earlier, you would add [`remote_environment` targets](../../../reference/targets/remote_environment.mdx) (see [environment](../environments:-cross-platform-or-remote-builds.mdx) for more information) corresponding to each set of distinct workers you want to use in the server. Assuming that the REAPI server is configured with a particular worker type labeled `docker-container=busybox:latest`, that might look like a `BUILD` file containing: +To define platform properties (as well as to configure any other settings which are specific to running on a remote worker), you should define a remote environment. Building on the first example earlier, you would add [`remote_environment` targets](doc:reference-remote_environment) (see [environment](doc:environments) for more information) corresponding to each set of distinct workers you want to use in the server. Assuming that the REAPI server is configured with a particular worker type labeled `docker-container=busybox:latest`, that might look like a `BUILD` file containing: ```python remote_environment( @@ -50,7 +50,7 @@ remote_environment( ) ``` -Your `remote_environment` will also need to override any [environment-aware options](../environments:-cross-platform-or-remote-builds.mdx) which configure the relevant tools used in your repository. For example: if building Python code, a Python interpreter must be available and matched via the environment-aware options of `[python-bootstrap]`. If using protobuf support, then you may also need `unzip` available in the remote execution environment in order to unpack the protoc archive. Etc. +Your `remote_environment` will also need to override any [environment-aware options](doc:environments) which configure the relevant tools used in your repository. For example: if building Python code, a Python interpreter must be available and matched via the environment-aware options of `[python-bootstrap]`. If using protobuf support, then you may also need `unzip` available in the remote execution environment in order to unpack the protoc archive. Etc. ### Concurrency @@ -95,6 +95,6 @@ remote_client_key_path = "/etc/ssl/certs/client-key.pem" # Reference -For global options, run `pants help-advanced global` or refer to [Global options](../../../reference/global-options.mdx). Most remote execution and caching options begin with the prefix `--remote`. +For global options, run `pants help-advanced global` or refer to [Global options](doc:reference-global). Most remote execution and caching options begin with the prefix `--remote`. -For environment-specific options, see `pants help-advanced remote_environment` or the [`remote_environment` target](../../../reference/targets/remote_environment.mdx). +For environment-specific options, see `pants help-advanced remote_environment` or the [`remote_environment` target](doc:reference-remote_environment). diff --git a/versioned_docs/version-2.18/docs/using-pants/restricted-internet-access.mdx b/versioned_docs/version-2.18/docs/markdown/Using Pants/restricted-internet-access.md similarity index 73% rename from versioned_docs/version-2.18/docs/using-pants/restricted-internet-access.mdx rename to versioned_docs/version-2.18/docs/markdown/Using Pants/restricted-internet-access.md index 70522e1b0..74480555b 100644 --- a/versioned_docs/version-2.18/docs/using-pants/restricted-internet-access.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Using Pants/restricted-internet-access.md @@ -1,10 +1,9 @@ --- - title: Restricted Internet access - sidebar_position: 12 ---- - -How to use Pants when you have restricted access to the Internet - +title: "Restricted Internet access" +slug: "restricted-internet-access" +excerpt: "How to use Pants when you have restricted access to the Internet" +hidden: false +createdAt: "2020-10-23T19:49:45.143Z" --- Some organizations place restrictions on their users' Internet access, for security or compliance reasons. Such restrictions may prevent Pants from downloading various underlying tools it uses, and it may interfere with bootstrapping Pants itself. @@ -13,7 +12,7 @@ In such cases, users are typically still able to access internal proxies and ser ## Installing Pants -The `pants` launcher from [Installing Pants](../getting-started/installing-pants.mdx) uses GitHub Releases to download and install a PEX including Pants and all its dependencies. +The `pants` launcher from [Installing Pants](doc:installation) uses GitHub Releases to download and install a PEX including Pants and all its dependencies. If you cannot access GitHub directly, you will need to follow the instructions for firewalls/restricted internet access for [the launcher itself](https://github.com/pantsbuild/scie-pants). @@ -23,7 +22,7 @@ By default, Pants will respect and pass through the `SSL_CERT_DIR` and `SSL_CERT If you need to override those values, you can configure Pants to use a custom Certificate Authority (CA) bundle: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] ca_certs_path = "/path/to/certs/file" ``` @@ -32,7 +31,7 @@ ca_certs_path = "/path/to/certs/file" You may need to set standard proxy-related environment variables, such as `http_proxy`, `https_proxy` and `all_proxy`, in executed subprocesses: -```toml title="pants.toml" +```toml pants.toml [subprocess-environment] env_vars.add = ["http_proxy=http://myproxy", "https_proxy"] ``` @@ -59,17 +58,17 @@ Pants downloads the various Python-related tools it uses from [PyPI](https://pyp If you use Python but cannot access PyPI directly, then you probably have an internal mirror or a custom Python package repository. So all you have to do is configure Pants to access this custom repository, and ensure that the tools it needs are available there. -See [Python third-party dependencies](../python/python-overview/third-party-dependencies.mdx#custom-repositories) for instructions on how to set up Pants to access a custom Python package repository. +See [Python third-party dependencies](doc:python-third-party-dependencies#custom-repositories) for instructions on how to set up Pants to access a custom Python package repository. ### JVM tools -Pants downloads the various JVM-related tools it uses from [Maven Central](https://search.maven.org/), just as it does for your JVM code's dependencies. +Pants downloads the various JVM-related tools it uses from [Maven Central](), just as it does for your JVM code's dependencies. If you use JVM code but cannot access Maven Central directly, then you probably have an internal mirror or a custom JVM package repository. So all you have to do is configure Pants to access this custom repository, and ensure that the tools it needs are available there. -To do so, set the [`repos`](../../reference/subsystems/coursier.mdx#section-repos) option on the `[coursier]` scope. E.g., +To do so, set the [`repos`](doc:reference-coursier#section-repos) option on the `[coursier]` scope. E.g., -```text title="pants.toml" +```text pants.toml [coursier] repos = ["https://my.custom.repo/maven2"] ``` @@ -84,27 +83,27 @@ The platform name used to replace the `{platform}` placeholder can be modified u This is best understood by looking at an example: -`pants help-advanced protoc` (or its [online equivalent](../../reference/subsystems/protoc.mdx#advanced-options)) shows that the default URL template is `https://github.com/protocolbuffers/protobuf/releases/download/v{version}/protoc-{version}-{platform}.zip`. +`pants help-advanced protoc` (or its [online equivalent](doc:reference-protoc#advanced-options)) shows that the default URL template is `https://github.com/protocolbuffers/protobuf/releases/download/v{version}/protoc-{version}-{platform}.zip`. - We see the `version` option is set to `3.11.4`. - We are running on macOS ARM, so look up `macos_arm64` in the `url_platform_mapping` option and find the string `osx-x86_64`. -Thus, the final URL is: +Thus, the final URL is: `https://github.com/protocolbuffers/protobuf/releases/download/v3.11.4/protoc-3.11.4-osx-x86_64.zip`. It should be clear from this example how to modify the URL template to point to your own hosted binaries: -```python title="pants.toml" +```python pants.toml [protoc] url_template = "https://my.custom.host/bin/protoc/{version}/{platform}/protoc.zip" ``` For simplicity, we used the original value for `url_platform_mapping`, meaning that we set up our hosted URL to store the macOS x86 binary at `.../osx-x86_64/protoc.zip`, for example. You can override the option `url_platform_mapping` if you want to use different values. -Occasionally, new Pants releases will upgrade to new versions of these binaries, which will be mentioned in the "User API Changes" part of the changelog [https://github.com/pantsbuild/pants/tree/master/src/python/pants/notes](https://github.com/pantsbuild/pants/tree/master/src/python/pants/notes). When upgrading to these new Pants releases, you should download the new artifact and upload a copy to your host. - -:::note Asking for help -It's possible that Pants does not yet have all the mechanisms it'll need to work with your organization's specific networking setup, which we'd love to fix. +Occasionally, new Pants releases will upgrade to new versions of these binaries, which will be mentioned in the "User API Changes" part of the changelog . When upgrading to these new Pants releases, you should download the new artifact and upload a copy to your host. -Please reach out on [Slack](/community/members) or open a [GitHub issue](https://github.com/pantsbuild/pants/issues) for any help. -::: +> 📘 Asking for help +> +> It's possible that Pants does not yet have all the mechanisms it'll need to work with your organization's specific networking setup, which we'd love to fix. +> +> Please reach out on [Slack](doc:the-pants-community) or open a [GitHub issue](https://github.com/pantsbuild/pants/issues) for any help. diff --git a/versioned_docs/version-2.18/docs/using-pants/setting-up-an-ide.mdx b/versioned_docs/version-2.18/docs/markdown/Using Pants/setting-up-an-ide.md similarity index 82% rename from versioned_docs/version-2.18/docs/using-pants/setting-up-an-ide.mdx rename to versioned_docs/version-2.18/docs/markdown/Using Pants/setting-up-an-ide.md index 5b4819d25..c1ea42f18 100644 --- a/versioned_docs/version-2.18/docs/using-pants/setting-up-an-ide.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Using Pants/setting-up-an-ide.md @@ -1,15 +1,15 @@ --- - title: Setting up an IDE - sidebar_position: 7 ---- - +title: "Setting up an IDE" +slug: "setting-up-an-ide" +hidden: false +createdAt: "2021-05-02T06:21:57.663Z" --- If you use a code-aware editor or IDE, such as PyCharm or VSCode, you may want to set it up to understand your code layout and dependencies. This will allow it to perform code navigation, auto-completion and other features that rely on code comprehension. ## First-party sources -To get your editor to understand the repo's first-party sources, you will probably need to tell it about the repo's [source roots](./key-concepts/source-roots.mdx). You can list those with: +To get your editor to understand the repo's first-party sources, you will probably need to tell it about the repo's [source roots](doc:source-roots). You can list those with: ```shell $ pants roots @@ -34,7 +34,7 @@ See [Use of the PYTHONPATH variable](https://code.visualstudio.com/docs/python/e To get your editor to understand the repo's third-party Python dependencies, you will probably want to point it at a virtualenv containing those dependencies. -Assuming you are using the ["resolves" feature for Python lockfiles](../python/python-overview/third-party-dependencies.mdx)—which we strongly recommend—Pants can export a virtualenv for each of your resolves. You can then point your IDE to whichever resolve you want to load at the time. +Assuming you are using the ["resolves" feature for Python lockfiles](doc:python-third-party-dependencies)—which we strongly recommend—Pants can export a virtualenv for each of your resolves. You can then point your IDE to whichever resolve you want to load at the time. To use the `export` goal to create a virtualenv: @@ -43,7 +43,7 @@ To use the `export` goal to create a virtualenv: Wrote symlink to immutable virtualenv for python-default (using Python 3.9.13) to dist/export/python/virtualenvs/python-default ``` -You can specify the `--resolve` flag [multiple times](./key-concepts/options.mdx#list-values) to export multiple virtualenvs at once. +You can specify the `--resolve` flag [multiple times](doc:options#list-values) to export multiple virtualenvs at once. The `--py-resolve-format=symlinked_immutable_virtualenv` option symlinks to an immutable, internal virtualenv that does not have `pip` installed in it. This method is faster, but you must be careful not to attempt to modify the virtualenv. If you omit this flag, Pants will create a standalone, mutable virtualenv that includes `pip`, and that you can modify, but this method is slower. @@ -53,7 +53,7 @@ The `--py-resolve-format=symlinked_immutable_virtualenv` option symlinks to an i ## Generated code -If you're using [Protobuf and gRPC](../python/integrations/protobuf-and-grpc.mdx), you may want your editor to be able to index and navigate the generated source code. +If you're using [Protobuf and gRPC](doc:protobuf-python), you may want your editor to be able to index and navigate the generated source code. Normally Pants treats generated code as an internal byproduct, and doesn't expose it. But you can run the `export-codegen` goal to generate code to a well-known output location for consumption: @@ -69,8 +69,8 @@ Warning: you will have to manually rerun this goal when changes are made. You can use PyCharm to debug code running under Pants. -See the following links for instructions on how to do so under the [test goal](../python/goals/test.mdx) and under the [run goal](../python/goals/run.mdx). +See the following links for instructions on how to do so under the [test goal](doc:python-test-goal) and under the [run goal](doc:python-run-goal). ## IDE integrations -We have not yet developed tight IDE integrations, such as a PyCharm plugin or a VSCode extension, that would allow the IDE to run Pants on your behalf. If you're interested in developing this functionality for your favorite IDE, [let us know](/community/members)! +We have not yet developed tight IDE integrations, such as a PyCharm plugin or a VSCode extension, that would allow the IDE to run Pants on your behalf. If you're interested in developing this functionality for your favorite IDE, [let us know](doc:the-pants-community)! diff --git a/versioned_docs/version-2.18/docs/using-pants/troubleshooting-common-issues.mdx b/versioned_docs/version-2.18/docs/markdown/Using Pants/troubleshooting.md similarity index 73% rename from versioned_docs/version-2.18/docs/using-pants/troubleshooting-common-issues.mdx rename to versioned_docs/version-2.18/docs/markdown/Using Pants/troubleshooting.md index a505b8135..f9d5aa55e 100644 --- a/versioned_docs/version-2.18/docs/using-pants/troubleshooting-common-issues.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Using Pants/troubleshooting.md @@ -1,17 +1,16 @@ --- - title: Troubleshooting / common issues - sidebar_position: 2 +title: "Troubleshooting / common issues" +slug: "troubleshooting" +excerpt: "Frequently asked questions (FAQs) and known issues you may encounter." +hidden: false +createdAt: "2020-04-10T19:42:28.637Z" --- -Frequently asked questions (FAQs) and known issues you may encounter. - ---- - -:::tip We love giving help! -See [Getting Help](/community/getting-help). We would love to help! - -If you are confused by something, likely someone else will run into the same issue. It is helpful for us to know what is going wrong so that we can improve Pants and improve this documentation. -::: +> 👍 We love giving help! +> +> See [Getting Help](doc:getting-help). We would love to help! +> +> If you are confused by something, likely someone else will run into the same issue. It is helpful for us to know what is going wrong so that we can improve Pants and improve this documentation. ## Debug tip: enable stack traces and increase logging @@ -25,7 +24,7 @@ pants --print-stacktrace -ldebug Setting the option `--pex-verbosity=9` can help debug exceptions that occur when building .pex files. -Once you have this stack trace, we recommend copying it into Pastebin or a GitHub Gist, then opening a GitHub issue or posting on Slack. Someone from the Pants team would be happy to help. See [Getting Help](/community/getting-help). +Once you have this stack trace, we recommend copying it into Pastebin or a GitHub Gist, then opening a GitHub issue or posting on Slack. Someone from the Pants team would be happy to help. See [Getting Help](doc:getting-help). ## Debug tip: inspect the sandbox with `--keep-sandboxes` @@ -67,7 +66,7 @@ This error generally happens because of the option `pants_ignore` in the `[GLOBA To override something included in your `.gitignore`, add a new value to `pants_ignore` and prefix it with `!`, like the below. `pants_ignore` uses the [same syntax as gitignore](https://git-scm.com/docs/gitignore). -```toml title="pants.toml" +```toml pants.toml [GLOBAL] pants_ignore.add = ["!folder/"] ``` @@ -76,7 +75,7 @@ Alternatively, you can stop populating `pants_ignore` from your `.gitignore` by ## Import errors and missing dependencies -Because Pants runs processes in hermetic sandboxes (temporary directories), Pants must properly know about your [dependencies](./key-concepts/targets-and-build-files.mdx#dependencies-and-dependency-inference) to avoid import errors. +Because Pants runs processes in hermetic sandboxes (temporary directories), Pants must properly know about your [dependencies](doc:targets#dependencies-and-dependency-inference) to avoid import errors. Usually, you do not need to tell Pants about your dependencies thanks to dependency inference, but sometimes dependency inference is not set up properly or cannot work. @@ -89,9 +88,9 @@ Is the missing import from a third-party dependency? Common issues: - Run `pants tailor ::`, or manually add the relevant targets. - The dependency is missing from your third-party requirements list, e.g. `go.mod` or `requirements.txt`. - The dependency exposes a module different than the default Pants uses, e.g. Python's `ansicolors` exposing `colors`. - - [Python](../python/python-overview/third-party-dependencies.mdx): set the `modules` field and `module_mapping` fields. - - [JVM](../../reference/targets/jvm_artifact.mdx): set the `packages` field on `jvm_artifact` targets. -- Python: check for any [undeclared transitive dependencies](../python/python-overview/third-party-dependencies.mdx#advanced-usage). + - [Python](doc:python-third-party-dependencies): set the `modules` field and `module_mapping` fields. + - [JVM](doc:reference-jvm-artifact): set the `packages` field on `jvm_artifact` targets. +- Python: check for any [undeclared transitive dependencies](doc:python-third-party-dependencies#advanced-usage). Is the missing import from first-party code? Common issues: @@ -99,22 +98,22 @@ Is the missing import from first-party code? Common issues: - Or, it's ignored by Pants. See the above guide "Pants cannot find a file in your project". - The file is missing an owning target like `python_sources`, `go_package`, or `resources`. - Run `pants list path/to/file.ext` to see all owning targets. - - Try running `pants tailor ::`. Warning: some target types like [`resources` and `files`](./assets-and-archives.mdx) must be manually added. -- [Source roots](./key-concepts/source-roots.mdx) are not set up properly (Python and JVM only). + - Try running `pants tailor ::`. Warning: some target types like [`resources` and `files`](doc:assets) must be manually added. +- [Source roots](doc:source-roots) are not set up properly (Python and JVM only). - This allows converting file paths like `src/py/project/app.py` to the Python module `project.app`. -- Code generation such as [Protobuf](../python/integrations/protobuf-and-grpc.mdx) is not set up properly (Python and JVM only). +- Code generation such as [Protobuf](doc:protobuf-python) is not set up properly (Python and JVM only). - Generate missing targets so that produced modules could be found. If there are any Python files that are known to be created ad hoc only at runtime, you might consider using `.pyi` stub files for the modules to be discovered during dependency inference. Common issues with both first and third-party imports: - Ambiguity. >1 target exposes the same module/package. - - If it's a third-party dependency, you should likely use multiple "resolves" (lockfiles). Each resolve should have no more than one of the same requirement. See [Python](../python/python-overview/lockfiles.mdx#multiple-lockfiles) and [JVM](../java-and-scala/java-and-scala-overview.mdx). + - If it's a third-party dependency, you should likely use multiple "resolves" (lockfiles). Each resolve should have no more than one of the same requirement. See [Python](doc:python-lockfiles#multiple-lockfiles) and [JVM](doc:jvm-overview). - If it's a first-party dependency, you may have unintentionally created multiple targets owning the same file. Run `pants list path/to/file.ext` to see all owners. This often happens from overlapping `sources` fields. If this was intentional, follow the instructions in the ambiguity warning to disambiguate via the `dependencies` field. - Some target types like `resources` and `files` often need to be explicitly added to the `dependencies` field and cannot be inferred (yet). - Multiple resolves (Python and JVM). - A target can only depend on targets that share the same "resolve" (lockfile). - Pants will warn when it detects that the import exists in another resolve. This usually implies you should either change the current target's `resolve` field, or use the `parametrize()` mechanism so that the code works with multiple resolves. - - See [Python](../python/python-overview/lockfiles.mdx#multiple-lockfiles) and [JVM](../java-and-scala/java-and-scala-overview.mdx). + - See [Python](doc:python-lockfiles#multiple-lockfiles) and [JVM](doc:jvm-overview). When debugging dependency inference, it can help to explicitly add the problematic dependency to the `dependencies` field to see if it gets the code running. If so, you can then try to figure out why dependency inference is not working. @@ -124,7 +123,7 @@ It may be necessary to explicitly set the directory Pants uses as a temporary di Use the global option `local_execution_root_dir` to change the tmpdir used by Pants. -```toml title="pants.toml" +```toml pants.toml [GLOBAL] local_execution_root_dir = "/mnt/large-partition/tmpdir" ``` @@ -141,18 +140,40 @@ echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo s You may change any of these options in the `[GLOBAL]` section of your `pants.toml`: -| Option | What it does | Default | -| :----------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------- | -| `local_store_dir` | Stores the results of running subprocesses and of some file operations. | `~/.cache/pants/lmdb_store` | -| `named_caches_dir` | Stores the caches for certain tools used by Pants, like PEX's cache for resolving Python requirements. | `~/.cache/pants/named_caches` | -| `pants_workdir` | Stores some project-specific logs; used as a temporary directory when running `pants repl` and `pants run`.

This is not used for caching.

This must be relative to the build root. | `/.pants.d/` | -| `pants_distdir` | Where Pants writes artifacts to, such as the result of `pants package`.

This is not used for caching; you can delete this folder and still leverage the cache from `local_store_dir`.

This must be relative to the build root. | `/dist/` | +[block:parameters] +{ +"data": { +"h-0": "Option", +"h-1": "What it does", +"h-2": "Default", +"0-0": "`local_store_dir`", +"0-1": "Stores the results of running subprocesses and of some file operations.", +"0-2": "`~/.cache/pants/lmdb_store`", +"1-0": "`named_caches_dir`", +"1-1": "Stores the caches for certain tools used by Pants, like PEX's cache for resolving Python requirements.", +"1-2": "`~/.cache/pants/named_caches`", +"2-0": "`pants_workdir`", +"2-1": "Stores some project-specific logs; used as a temporary directory when running `pants repl` and `pants run`. \n \nThis is not used for caching. \n \nThis must be relative to the build root.", +"2-2": "`/.pants.d/`", +"3-0": "`pants_distdir`", +"3-1": "Where Pants writes artifacts to, such as the result of `pants package`. \n \nThis is not used for caching; you can delete this folder and still leverage the cache from `local_store_dir`. \n \nThis must be relative to the build root.", +"3-2": "`/dist/`" +}, +"cols": 3, +"rows": 4, +"align": [ +"left", +"left", +"left" +] +} +[/block] For `local_store_dir` and `named_caches_dir`, you may either specify an absolute path or a relative path, which will be relative to the build root. You may use the special string `%(homedir)s` to get the value of `~`, e.g. `local_store_dir = "%(homedir)s/.custom_cache/pants/lmdb_store"`. It is safe to delete these folders to free up space. -You can also change the cache used by the `pants` script described in [Installing Pants](../getting-started/installing-pants.mdx), which defaults to `~/.pants/cache/setup`. Either set the environment variable `PANTS_SETUP_CACHE` or change the Bash script directly where it defines `PANTS_SETUP_CACHE`. You may use an absolute path or a path relative to the build root. +You can also change the cache used by the `pants` script described in [Installing Pants](doc:installation), which defaults to `~/.pants/cache/setup`. Either set the environment variable `PANTS_SETUP_CACHE` or change the Bash script directly where it defines `PANTS_SETUP_CACHE`. You may use an absolute path or a path relative to the build root. ## BadZipFile error when processing Python wheels @@ -172,7 +193,7 @@ This is an error from `pip`, and it means that the same 3rd-party Python require You can use `pants peek` to help identify why the same requirement is being used more than once: -```shell title="Shell" +```shell Shell # Check the `requirements` key to see if it has the problematic requirement. pants --filter-target-type=python_requirement peek :: ``` @@ -185,7 +206,7 @@ The macOS system Python interpreters are broken in several ways, such as sometim ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/Library/Python/3.7' ``` -You can set the option `interpreter_search_paths` in the `[python]` scope to teach Pants to ignore the interpreters in `/usr/bin`. See [here](../python/python-overview/interpreter-compatibility.mdx#changing-the-interpreter-search-path) for more information. +You can set the option `interpreter_search_paths` in the `[python]` scope to teach Pants to ignore the interpreters in `/usr/bin`. See [here](doc:python-interpreter-compatibility#changing-the-interpreter-search-path) for more information. ## "Too many open files" error @@ -203,18 +224,18 @@ This sometimes happens because Pants uses lots of file handles to read and write This can be fixed by setting `ulimit -n 10000`. (10,000 should work in all cases, but feel free to lower or increase this number as desired.) -:::note Tip: permanently configuring `ulimit -n` -We recommend permanently setting this by either: - -1. Adding `ulimit -n 10000` to your `pants.bootstrap` script. -2. Adding `ulimit -n 10000` to your global `.bashrc` or equivalent. - -The first two approaches have the benefit that they will be checked into version control, so every developer at your organization can use the same setting. -::: +> 📘 Tip: permanently configuring `ulimit -n` +> +> We recommend permanently setting this by either: +> +> 1. Adding `ulimit -n 10000` to your `pants.bootstrap` script. +> 2. Adding `ulimit -n 10000` to your global `.bashrc` or equivalent. +> +> The first two approaches have the benefit that they will be checked into version control, so every developer at your organization can use the same setting. -:::caution macOS users: avoid `ulimit unlimited` -Contrary to the name, this will not fix the issue. You must use `ulimit -n` instead. -::: +> 🚧 macOS users: avoid `ulimit unlimited` +> +> Contrary to the name, this will not fix the issue. You must use `ulimit -n` instead. ## Controlling (test) parallelism @@ -226,11 +247,11 @@ To temporarily run a single test at a time (albeit with reduced performance), yo pants --process-execution-local-parallelism=1 test :: ``` -A more sustainable solution for shared resources is to use the [`[pytest].execution_slot_var`](../../reference/subsystems/pytest.mdx#section-execution-slot-var) option, which sets an environment variable which test runs can consume to determine which copy of a resource to consume. +A more sustainable solution for shared resources is to use the [`[pytest].execution_slot_var`](doc:reference-pytest#section-execution-slot-var) option, which sets an environment variable which test runs can consume to determine which copy of a resource to consume. ## Snap-based Docker -In recent Ubuntu distributions, the Docker service is often installed using [Snap](https://snapcraft.io/docker). +In recent Ubuntu distributions, the Docker service is often installed using [Snap](https://snapcraft.io/docker). It works mostly same as a normal installation, but has an important difference: it cannot access the `/tmp` directory of the host because it is virtualized when Snap starts the Docker service. This may cause problems if your code or tests ry to create a container with a bind-mount of a directory or file _under the current working directory_. Container creation will fail with "invalid mount config for type "bind": bind source path does not exist", because Pants' default `local_execution_root_dir` option is `/tmp`, which the Snap-based Docker service cannot access. diff --git a/versioned_docs/version-2.18/docs/markdown/Using Pants/using-pants-in-ci.md b/versioned_docs/version-2.18/docs/markdown/Using Pants/using-pants-in-ci.md new file mode 100644 index 000000000..c4bc1e2da --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Using Pants/using-pants-in-ci.md @@ -0,0 +1,230 @@ +--- +title: "Using Pants in CI" +slug: "using-pants-in-ci" +excerpt: "Suggestions for how to use Pants to speed up your CI (continuous integration)." +hidden: false +createdAt: "2021-05-24T23:02:54.908Z" +--- + +> 📘 Examples +> +> See the example-python repository for an [example GitHub Actions worfklow](https://github.com/pantsbuild/example-python/blob/main/.github/workflows/pants.yaml). + +## Directories to cache + +> 📘 The `init-pants` GitHub Action +> +> If you're using GitHub Actions to run your CI workflows, then you can use our [standard action](https://github.com/pantsbuild/actions/tree/main/init-pants) to set up and cache the Pants bootstrap state. Otherwise, read on to learn how to configure this manually. + +In your CI's config file, we recommend caching these directories: + +- `$HOME/.cache/nce` (Linux) or `$HOME/Library/Caches/nce` (macOS)
+ This is the cache directory used by the [Pants launcher binary](doc:installation) to cache the assets, interpreters and venvs required to run Pants itself. Cache this against the Pants version, as specified in `pants.toml`. See the [pantsbuild/example-python](https://github.com/pantsbuild/example-python/blob/main/.github/workflows/pants.yaml) repo for an example of how to generate an effective cache key for this directory in GitHub Actions. +- `$HOME/.cache/pants/named_caches`
+ Caches used by some underlying tools. Cache this against the inputs to those tools. For the `pants.backend.python` backend, named caches are used by PEX, and therefore its inputs are your lockfiles. Again, see [pantsbuild/example-python](https://github.com/pantsbuild/example-python/blob/main/.github/workflows/pants.yaml) for an example. + +If you're not using a fine-grained [remote caching](doc:remote-caching-execution) service, then you may also want to preserve the local Pants cache at `$HOME/.cache/pants/lmdb_store`. This has to be invalidated on any file that can affect any process, e.g., `hashFiles('**/*')` on GitHub Actions. + +Computing such a coarse hash, and saving and restoring large directories, can be unwieldy. So this may be impractical and slow on medium and large repos. + +A [remote cache service](doc:remote-caching-execution) integrates with Pants's fine-grained invalidation and avoids these problems, and is recommended for the best CI performance. + +See [Troubleshooting](doc:troubleshooting#how-to-change-your-cache-directory) for how to change these cache locations. + +> 📘 Nuking the cache when too big +> +> In CI, the cache must be uploaded and downloaded every run. This takes time, so there is a tradeoff where too large a cache will slow down your CI. +> +> You can use this script to nuke the cache when it gets too big: +> +> ```bash +> function nuke_if_too_big() { +> path=$1 +> limit_mb=$2 +> size_mb=$(du -m -d0 "${path}" | cut -f 1) +> if (( size_mb > limit_mb )); then +> echo "${path} is too large (${size_mb}mb), nuking it." +> rm -rf "${path}" +> fi +> } +> +> nuke_if_too_big ~/.cache/nce 512 +> nuke_if_too_big ~/.cache/pants/named_caches 1024 +> ``` + +> 📘 Tip: check cache performance with `[stats].log` +> +> Set the option `[stats].log = true` in `pants.ci.toml` for Pants to print metrics of your cache's performance at the end of the run, including the number of cache hits and the total time saved thanks to caching, e.g.: +> +> ``` +> local_cache_requests: 204 +> local_cache_requests_cached: 182 +> local_cache_requests_uncached: 22 +> local_cache_total_time_saved_ms: 307200 +> ``` +> +> You can also add `plugins = ["hdrhistogram"]` to the `[GLOBAL]` section of `pants.ci.toml` for Pants to print histograms of cache performance, e.g. the size of blobs cached. + +> 👍 Remote caching +> +> Rather than storing your cache with your CI provider, remote caching stores the cache in the cloud, using gRPC and the open-source Remote Execution API for low-latency and fine-grained caching. +> +> This brings several benefits over local caching: +> +> - All machines and CI jobs share the same cache. +> - Remote caching downloads precisely what is needed by your run—when it's needed—rather than pessimistically downloading the entire cache at the start of the run. +> - No download and upload stage for your cache. +> - No need to "nuke" your cache when it gets too big. +> +> See [Remote Caching and Execution](doc:remote-caching-execution) for more information. + +## Recommended commands + +With both approaches, you may want to shard the input targets into multiple CI jobs, for increased parallelism. See [Advanced Target Selection](doc:advanced-target-selection#sharding-the-input-targets). (This is typically less necessary when using [remote caching](doc:remote-caching-execution).) + +### Approach #1: only run over changed files + +Because Pants understands the dependencies of your code, you can use Pants to speed up your CI by only running tests and linters over files that actually made changes. + +We recommend running these commands in CI: + +```shell +❯ pants --version # Bootstrap Pants. +❯ pants \ + --changed-since=origin/main \ + tailor --check \ + update-build-files --check \ + lint +❯ pants \ + --changed-since=origin/main \ + --changed-dependents=transitive \ + check test +``` + +Because most linters do not care about a target's dependencies, we lint all changed files and targets, but not any dependents of those changes. + +Meanwhile, tests should be rerun when any changes are made to the tests _or_ to dependencies of those tests, so we use the option `--changed-dependents=transitive`. `check` should also run on any transitive changes. + +See [Advanced target selection](doc:advanced-target-selection) for more information on `--changed-since` and alternative techniques to select targets to run in CI. + +> 🚧 This will not handle all cases, like hooking up a new linter +> +> For example, if you add a new plugin to Flake8, Pants will still only run over changed files, meaning you may miss some new lint issues. +> +> For absolute correctness, you may want to use Approach #2. Alternatively, add conditional logic to your CI, e.g. that any changes to `pants.toml` trigger using Approach #2. + +> 📘 GitHub Actions: use `Checkout` +> +> To use `--changed-since`, you may want to use the [Checkout action](https://github.com/actions/checkout). +> +> By default, Checkout will only fetch the latest commit; you likely want to set `fetch-depth` to fetch prior commits. + +> 📘 GitLab CI: disable shallow clones or fetch main branch +> +> GitLab's merge pipelines make a shallow clone by default, which only contains recent commits for the feature branch being merged. That severely limits `--changed-since`. There are two possible workarounds: +> +> 1. Clone the entire repository by going to "CI / CD" settings and erase the number from the "Git shallow clone" field of the "General pipelines" section. Don't forget to "Save changes". This has the advantage of cloning everything, which also is the biggest long-term disadvantage. +> 2. A more targeted and hence light-weight intervention leaves the shallow clone setting at its default value and instead fetches the `main` branch as well: +> +> ``` +> git branch -a +> git remote set-branches origin main +> git fetch --depth 1 origin main +> git branch -a +> ``` +> +> The `git branch` commands are only included to print out all available branches before and after fetching `origin/main`. + +> 📘 Using partial clones in CI +> +> Shallow clones are fast, but have the disadvantage of breaking `--changed-since` if an insufficient amount of depth is fetched from remote. This is particularly acute for feature branches that are very out-of-date or have a large number of commits. +> +> [Partial clones](https://git-scm.com/docs/partial-clone) are still quite fast, have the advantage of not breaking `--changed-since`, and don't require any depth setting. Unlike shallow clones, Git will fetch trees and blobs on-demand as it needs them without failing. +> +> If your CI does not support partial clones directly, you can define your own custom checkout strategy: +> +> - Treeless: `git clone --filter=tree:0 ` +> - Blobless: `git clone --filter=blob:none ` +> +> As a workaround to [#20027](https://github.com/pantsbuild/pants/issues/20027) permission errors, you might need to run this after the cloning the repo: +> +> `git config core.sshCommand "env SSH_AUTH_SOCK=$SSH_AUTH_SOCK ssh"` + +### Approach #2: run over everything + +Alternatively, you can simply run over all your code. Pants's caching means that you will not need to rerun on changed files. + +```bash +❯ pants --version # Bootstrap Pants. +❯ pants \ + tailor --check \ + update-build-files --check \ + lint check test :: +``` + +However, when the cache gets too big, it should be nuked (see "Directories to cache"), so your CI may end up doing more work than Approach #1. + +This approach works particularly well if you are using [remote caching](doc:remote-caching). + +## Configuring Pants for CI: `pants.ci.toml` (optional) + +Sometimes, you may want config specific to your CI, such as turning on test coverage reports. If you want CI-specific config, create a dedicated `pants.ci.toml` [config file](doc:options). For example: + +```toml pants.ci.toml +[GLOBAL] +# Colors often work in CI, but the shell is usually not a TTY so Pants +# doesn't attempt to use them by default. +colors = true + +[stats] +log = true + +[test] +use_coverage = true + +[coverage-py] +report = ["xml"] +global_report = true + +[pytest] +args = ["-vv", "--no-header"] +``` + +Then, in your CI script or config, set the environment variable `PANTS_CONFIG_FILES=pants.ci.toml` to use this new config file, in addition to `pants.toml`. + +### Tuning resource consumption (advanced) + +Pants allows you to control its resource consumption. These options all have sensible defaults. In most cases, there is no need to change them. However, you may benefit from tuning these options. + +Concurrency options: + +- [`process_execution_local_parallelism`](doc:reference-global#section-process-execution-local-parallelism): number of concurrent processes that may be executed locally. +- [`rule_threads_core`](doc:reference-global#section-rule-threads-core): number of threads to keep active to execute `@rule` logic. +- [`rule_threads_max`](doc:reference-global#section-rule-threads-max): maximum number of threads to use to execute `@rule` logic. + +Memory usage options: + +- [`pantsd`](doc:reference-global#section-pantsd): enable or disable the Pants daemon, which uses an in-memory cache to speed up subsequent runs after the first run in CI. +- [`pantsd_max_memory_usage`](doc:reference-global#section-pantsd-max-memory-usage): reduce or increase the size of Pantsd's in-memory cache. + +The default test runners for these CI providers have the following resources. If you are using a custom runner, e.g. enterprise, check with your CI provider. + +| CI Provider | Cores | RAM | Docs | +| :--------------------------- | :---- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------ | +| GitHub Actions, Linux | 2 | 7 GB | [link](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources) | +| Travis, Linux | 2 | 7.5 GB | [link](https://docs.travis-ci.com/user/reference/overview/#virtualisation-environment-vs-operating-system) | +| Circle CI, Linux, free plan | 2 | 4 GB | [link](https://circleci.com/docs/2.0/credits/#free-plan) | +| GitLab, Linux shared runners | 1 | 3.75 GB | [link](https://docs.gitlab.com/ee/user/gitlab_com/#linux-shared-runners) | + +## Tip: store Pants logs as artifacts + +We recommend that you configure your CI system to store the pants log (`.pantsd.d/pants.log`) as a build artifact, so that it is available in case you need to troubleshoot CI issues. + +Different CI providers and systems have different ways to configure build artifacts: + +- Circle CI - [Storing artifacts](https://circleci.com/docs/2.0/artifacts/) +- Github Actions - [Storing Artifacts](https://docs.github.com/en/actions/guides/storing-workflow-data-as-artifacts) - [example in the pants repo](https://github.com/pantsbuild/pants/pull/11860) +- Bitbucket pipelines - [Using artifacts](https://support.atlassian.com/bitbucket-cloud/docs/use-artifacts-in-steps/) +- Jenkins - [Recording artifacts](https://www.jenkins.io/doc/pipeline/tour/tests-and-artifacts/) + +It's particularly useful to configure your CI to always upload the log, even if prior steps in your pipeline failed. diff --git a/versioned_docs/version-2.18/docs/using-pants/validating-dependencies.mdx b/versioned_docs/version-2.18/docs/markdown/Using Pants/validating-dependencies.md similarity index 80% rename from versioned_docs/version-2.18/docs/using-pants/validating-dependencies.mdx rename to versioned_docs/version-2.18/docs/markdown/Using Pants/validating-dependencies.md index fe9f67f4a..3b5c4df71 100644 --- a/versioned_docs/version-2.18/docs/using-pants/validating-dependencies.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Using Pants/validating-dependencies.md @@ -1,15 +1,14 @@ --- - title: Validating dependencies - sidebar_position: 13 ---- - -Validating your code's dependencies. - +title: "Validating dependencies" +slug: "validating-dependencies" +excerpt: "Validating your code's dependencies." +hidden: false +createdAt: "2022-12-12T09:10:16.427Z" --- Visibility rules are the mechanism by which to control who may depend on whom. It is an implementation of Pants's dependency rules API. With these rules a dependency between two files (or targets) may be set for entire directory trees down to single files. A target may be selected not only by its file path but also by target type, name, and tags. -To jump right in, start with [enabling the backend](./validating-dependencies.mdx#enable-visibility-backend) and add some rules to your BUILD files. +To jump right in, start with [enabling the backend](doc:validating-dependencies#enable-visibility-backend) and add some rules to your BUILD files. ## Example visibility rules @@ -51,7 +50,7 @@ __dependents_rules__( ) ``` -First things first, it is a good idea to get familiar with the terminology used here for [dependencies and dependents](./validating-dependencies.mdx#dependencies-and-dependents). The syntax for `__dependencies_rules__` and `__dependents_rules__` is the same for both directives. They accept any number of input [Rule sets](./validating-dependencies.mdx#rule-sets). In the above example there are two _rule sets_ in each directive both have the generic "all everything" rule set of `("*", "*")`. +First things first, it is a good idea to get familiar with the terminology used here for [dependencies and dependents](doc:validating-dependencies#dependencies-and-dependents). The syntax for `__dependencies_rules__` and `__dependents_rules__` is the same for both directives. They accept any number of input [Rule sets](doc:validating-dependencies#rule-sets). In the above example there are two _rule sets_ in each directive both have the generic "all everything" rule set of `("*", "*")`. The dependencies rules above reads: All `python_sources` targets may depend on everything from the subtree rooted in `src/a/` the source file `src/b/lib.py` and nothing else. For all other targets everything is allowed. @@ -72,19 +71,19 @@ backend_packages.add = [ ``` -:::note The visibility implementation is marked "experimental" -This does not mean you should not use it, only that it is in "preview" mode meaning that things may change between releases without following our deprecation policy as we work on stabilizing this feature. See [the stabilization ticket](https://github.com/pantsbuild/pants/issues/17634) for what remains to be done for the visibility backend to graduate out of preview. -::: +> 📘 The visibility implementation is marked "experimental" +> +> This does not mean you should not use it, only that it is in "preview" mode meaning that things may change between releases without following our deprecation policy as we work on stabilizing this feature. See [the stabilization ticket](https://github.com/pantsbuild/pants/issues/17634) for what remains to be done for the visibility backend to graduate out of preview. # Dependencies and dependents The visibility rules operates on the dependency link between two targets. Dependencies are directional, so if target `A` depends on another target `B` the dependency goes from the "origin" target `A` -> `B`, we say that `B` is the **dependency** of `A`, while `A` is the **dependent** of `B`. -:::note The Direction of Dependency, `A` -> `B`. -Target `A` may have zero or more dependencies. For each of those dependencies `A` is their dependent. - -Target `B` may be the dependency of zero or more dependents. For each of those dependents `B` is their dependency. -::: +> 📘 The Direction of Dependency, `A` -> `B`. +> +> Target `A` may have zero or more dependencies. For each of those dependencies `A` is their dependent. +> +> Target `B` may be the dependency of zero or more dependents. For each of those dependents `B` is their dependency. Dependency rules are configured in the BUILD files along with targets and any other BUILD file configuration. Rules may be provided on either end of a dependency link between two targets. There are two different keywords to use, one for each side of this link. As discussed above, any target may have both dependencies and dependents and these keywords map onto that: @@ -93,17 +92,17 @@ Dependency rules are configured in the BUILD files along with targets and any ot `A` `__dependencies_rules__` -> `__dependents_rules__` `B` `__dependencies_rules__` -> ... -It may help to think about these terms in context of a sentence. For `__dependencies_rules__` it is "this X may only import from \<...\>", and for `__dependents_rules__` it is "this X may only be imported from \<...\>". - -For each dependency there may be up to 2 sets of rules consulted to determine if it should be `allowed` or `denied` (or just `warn`, see [Rule Actions](./key-concepts/targets-and-build-files.mdx#rule-actions)), one for each end of the dependency link. The rules themselves are merely [path globs](./key-concepts/targets-and-build-files.mdx#glob-syntax) applied in order until a matching rule is found. It is an error for there to not be any matching rule, if any rules are defined. That is, you may have a dependency without any rules and that will be allowed, but as soon as there are rules in play there must exist at least one that is a match for the dependency link that dictates the outcome. It is valid to declare either dependency rules or dependent rules you don't have to have both when using visibility rules. - -:::caution There are no default rules -When you setup a set of rules, it must be comprehensive or Pants will throw an error when it fails to find a matching rule for a dependency/dependent. +It may help to think about these terms in context of a sentence. For `__dependencies_rules__` it is "this X may only import from <...>", and for `__dependents_rules__` it is "this X may only be imported from <...>". -Without explicit rules defined, Pants allows all dependencies. This allows you to incrementally start to introduce rules. +For each dependency there may be up to 2 sets of rules consulted to determine if it should be `allowed` or `denied` (or just `warn`, see [Rule Actions](doc:targets#rule-actions)), one for each end of the dependency link. The rules themselves are merely [path globs](doc:targets#glob-syntax) applied in order until a matching rule is found. It is an error for there to not be any matching rule, if any rules are defined. That is, you may have a dependency without any rules and that will be allowed, but as soon as there are rules in play there must exist at least one that is a match for the dependency link that dictates the outcome. It is valid to declare either dependency rules or dependent rules you don't have to have both when using visibility rules. -**Warning: Rule sets propagate to their subtrees, unless you override them with new rule sets in a corresponding BUILD file.** -::: +> 🚧 There are no default rules +> +> When you setup a set of rules, it must be comprehensive or Pants will throw an error when it fails to find a matching rule for a dependency/dependent. +> +> Without explicit rules defined, Pants allows all dependencies. This allows you to incrementally start to introduce rules. +> +> **Warning: Rule sets propagate to their subtrees, unless you override them with new rule sets in a corresponding BUILD file.** Lets look at another dependency example, where we have the following BUILD files for the two source files `src/a/main.py` and `src/b/lib.py`: @@ -115,7 +114,7 @@ python_sources(dependencies=["src/b/lib.py"], tags=["apps"]) python_sources(tags=["libs"]) ``` -The dependency `src/a/main.py` -> `src/b/lib.py` would consult the `__dependencies_rules__` in `src/a/BUILD` for a rule that matches `src/b/lib.py` and the `__dependents_rules__` in `src/b/BUILD` for a rule that matches `src/a/main.py`. See [rule sets](./key-concepts/targets-and-build-files.mdx#rule-sets) for more details on how this works. +The dependency `src/a/main.py` -> `src/b/lib.py` would consult the `__dependencies_rules__` in `src/a/BUILD` for a rule that matches `src/b/lib.py` and the `__dependents_rules__` in `src/b/BUILD` for a rule that matches `src/a/main.py`. See [rule sets](doc:targets#rule-sets) for more details on how this works. When declaring your rules, you not only provide the rules for the current directory, but also set the default rules for all the subdirectories as well. When overriding such default rules in a child BUILD file, there is a `extend=True` kwarg you may use if you want the default rules to still apply after the ones declared in the current BUILD file. @@ -147,9 +146,9 @@ __dependencies_rules__( # Due to the `extend=True` flag, which inherits the parent rules after those just declared. ``` -:::note Any rule globs using the declaration path anchoring mode that is inherited using `extend=True` will be anchored to the path of the current BUILD file, not the original one where the rule was extended from. -See [glob syntax](./key-concepts/targets-and-build-files.mdx#glob-syntax) for details on anchoring modes. -::: +> 📘 Any rule globs using the declaration path anchoring mode that is inherited using `extend=True` will be anchored to the path of the current BUILD file, not the original one where the rule was extended from. +> +> See [glob syntax](doc:targets#glob-syntax) for details on anchoring modes. For example: @@ -203,19 +202,19 @@ __dependencies_rules__( The selector and rule share a common syntax (refered to as a **target rule spec**), that is a dictionary value with properties describing what targets it applies to. Together, this pair of selector(s) and rules is called a **rule set**. A rule set may have multiple selectors wrapped in a list/tuple and the rules may be spread out or grouped in any fashion. Grouping rules like this makes it easier to re-use/insert rules from macros or similar. -:::note An empty selector (`{}` or `""`) will never match anything and is as such pointless and will result in an error. -For every dependency link, only a single set of rules will ever be applied. The first rule set -with a matching selector will be the only one used and any remaining rule sets are never -consulted. -::: +> 📘 An empty selector (`{}` or `""`) will never match anything and is as such pointless and will result in an error. +> +> For every dependency link, only a single set of rules will ever be applied. The first rule set +> with a matching selector will be the only one used and any remaining rule sets are never +> consulted. The **target rule spec** has four properties: `type`, `name`, `tags`, and `path`. From the above example, when determining which rule set to apply for the dependencies of `src/a/main.py` Pants will look for the first selector for `src/a/BUILD` that satisifies the properties `type=python_sources`, `tags=["apps"]`, and `path=src/a/main.py`. The selection is based on exclusion so only when there is a property value and it doesn't match the target's property it will move on to the next selector; the lack of a property will be considered to match anything. Consequently an empty target spec would match all targets, but this is disallowed and will raise an error if used because it is conceptually not very clear when reading the rules. -The values of a **target rule spec** supports wildcard patterns (or globs) in order to have a single selector match multiple different targets, as described in [glob syntax](./key-concepts/targets-and-build-files.mdx#glob-syntax). When listing multiple values for the `tags` property, the target must have all of them in order to match. Spread the tags over multiple selectors in order to switch from _AND_ to _OR_ as required. The target `type` to match against will be that of the type used in the BUILD file, as the path (and target address) may refer to a generated target it is the target generators type that will be used during the selector matching process. +The values of a **target rule spec** supports wildcard patterns (or globs) in order to have a single selector match multiple different targets, as described in [glob syntax](doc:targets#glob-syntax). When listing multiple values for the `tags` property, the target must have all of them in order to match. Spread the tags over multiple selectors in order to switch from _AND_ to _OR_ as required. The target `type` to match against will be that of the type used in the BUILD file, as the path (and target address) may refer to a generated target it is the target generators type that will be used during the selector matching process. The selectors are matched against the target in the order they are defined in the BUILD file, and the first rule set with a selector that is a match will be selected. The rules from the selected rule set is then matched in order against the path of the **target on the other end** of the dependency link. This is worth reading again; Using the above example, the rules defined in `src/a/BUILD` will be matched against `src/b/lib.py` while the `path` selector will be matched against `src/a/main.py`. -Providing some example rule sets for the above example (see [rule actions](./key-concepts/targets-and-build-files.mdx#rule-actions) on how to mark a rule as "allow" or "deny"): +Providing some example rule sets for the above example (see [rule actions](doc:targets#rule-actions) on how to mark a rule as "allow" or "deny"): ```python # src/a/BUILD (continued from previous example) @@ -399,4 +398,4 @@ The rule action is specified as a prefix on the rule glob: - `!` - Sets the rule's action to `DENY`. - `?` - Sets the rule's action to `WARN`. -- Any other value is part of the [rule glob](./key-concepts/targets-and-build-files.mdx#glob-syntax). +- Any other value is part of the [rule glob](doc:targets#glob-syntax). diff --git a/versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks.md b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks.md new file mode 100644 index 000000000..d44437a5a --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks.md @@ -0,0 +1,13 @@ +--- +title: "Common plugin tasks" +slug: "common-plugin-tasks" +hidden: false +createdAt: "2020-07-01T04:49:09.505Z" +--- + +- [Add a linter](doc:plugins-lint-goal) +- [Add a formatter](doc:plugins-fmt-goal) +- [Add codegen](doc:plugins-codegen) +- [Add a REPL](doc:plugins-repl-goal) +- [Custom `setup-py` kwargs](doc:plugins-setup-py) +- [Plugin upgrade guide](doc:plugin-upgrade-guide) diff --git a/versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/plugin-upgrade-guide.mdx b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugin-upgrade-guide.md similarity index 84% rename from versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/plugin-upgrade-guide.mdx rename to versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugin-upgrade-guide.md index 2f23aa997..41cd16fc7 100644 --- a/versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/plugin-upgrade-guide.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugin-upgrade-guide.md @@ -1,10 +1,9 @@ --- - title: Plugin upgrade guide - sidebar_position: 9 ---- - -How to adjust for changes made to the Plugin API. - +title: "Plugin upgrade guide" +slug: "plugin-upgrade-guide" +excerpt: "How to adjust for changes made to the Plugin API." +hidden: false +createdAt: "2020-10-12T16:19:01.543Z" --- ## 2.17 @@ -204,7 +203,7 @@ This will prevent registration of the default "partitioner" rule, allowing you t ### `EnvironmentName` is now required to run processes, get environment variables, etc -Pants 2.15 introduces the concept of ["Target Environments"](../../using-pants/environments:-cross-platform-or-remote-builds.mdx), which allow Pants to execute processes in remote or local containerized environments (using Docker), and to specify configuration values for those environments. +Pants 2.15 introduces the concept of ["Target Environments"](doc:environments), which allow Pants to execute processes in remote or local containerized environments (using Docker), and to specify configuration values for those environments. In order to support the new environments feature, an `EnvironmentName` parameter is now required in order to: @@ -309,7 +308,7 @@ The `convert_dir_literal_to_address_literal` keyword argument for `RawSpecs.crea ## 2.14 -See [https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.14.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.14.x.md) for the changelog. +See for the changelog. ### Removed second type parameter from `Get` @@ -365,7 +364,7 @@ The functionality is the same, but can have better performance because we don't ## 2.13 -See [https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.13.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.13.x.md) for the changelog. +See for the changelog. ### `AddressInput` and `UnparsedAddressInputs` require `description_of_origin` @@ -412,7 +411,7 @@ Renames for `Spec` subclass: Those classes now have a keyword arg `error_if_no_target_matches`, rather than having a distinct class like `MaybeDescendantAddresses`. -`AddressSpecs` was renamed to `SpecsWithoutFileOwners`, and `FilesystemSpecs` to `SpecsWithOnlyFileOwners`. But almost always, you should instead use the new `RawSpecs` class because it is simpler. See [Rules API and Target API](../the-rules-api/rules-and-the-target-api.mdx#how-to-resolve-targets) for how to use `Get(Targets, RawSpecs)`, including its keyword arguments. +`AddressSpecs` was renamed to `SpecsWithoutFileOwners`, and `FilesystemSpecs` to `SpecsWithOnlyFileOwners`. But almost always, you should instead use the new `RawSpecs` class because it is simpler. See [Rules API and Target API](doc:rules-api-and-target-api#how-to-resolve-targets) for how to use `Get(Targets, RawSpecs)`, including its keyword arguments. If you were directly creating `Specs` objects before, you likely want to change to `RawSpecs`. `Specs` allows us to handle "ignore specs" like `-ignore_me/`, which is usually not necessary in rules. See the above paragraph for how to use `RawSpecs`. @@ -442,23 +441,23 @@ You can also now specify multiple globs, e.g. `req.path_globs("*.py", "*.pyi")`. ### Banned short option names like `-x` -You must now use a long option name when [defining options](../the-rules-api/options-and-subsystems.mdx). You can also now only specify a single option name per option. +You must now use a long option name when [defining options](doc:rules-api-subsystems). You can also now only specify a single option name per option. (These changes allowed us to introduce ignore specs, like `pants list :: -ignore_me::`.) ## 2.12 -See [https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.12.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.12.x.md) for the changelog. +See for the changelog. ### Unified formatters Formatters no longer need to be installed in both the `FmtRequest` and `LintTargetsRequest` `@unions`: instead, installing in the `FmtRequest` union is sufficient to act as both a linter and formatter. -See [Add a formatter](./add-a-formatter.mdx) for more information. +See [Add a formatter](doc:plugins-fmt-goal) for more information. ## 2.11 -See [https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.11.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.11.x.md) for the changelog. +See for the changelog. ### Deprecated `Subsystem.register_options()` @@ -498,7 +497,7 @@ class MySubsystem(Subsystem): To access an option in rules, simply use `my_subsystem.my_opt` rather than `my_subsystem.options.my_opt`. -See [Options and subsystems](../the-rules-api/options-and-subsystems.mdx) for more information, including the available types. +See [Options and subsystems](doc:rules-api-subsystems) for more information, including the available types. ### Moved `BinaryPathRequest` to `pants.core.util_rules.system_binaries` @@ -508,19 +507,19 @@ The functionality is the same, you only need to change your imports for types li ### Deprecated not implementing `TargetGenerator` in `GenerateTargetsRequest` implementors -See [https://github.com/pantsbuild/pants/pull/14962](https://github.com/pantsbuild/pants/pull/14962) for an explanation and some examples of how to fix. +See for an explanation and some examples of how to fix. ### Replaced `GoalSubsystem.required_union_implementations` with `GoalSubsystem.activated()` -See [https://github.com/pantsbuild/pants/pull/14313](https://github.com/pantsbuild/pants/pull/14313) for an explanation and some examples of how to fix. +See for an explanation and some examples of how to fix. ## 2.10 -See [https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.10.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.10.x.md) for the changelog. +See for the changelog. ### Rename `LintRequest` to `LintTargetsRequest` -Pants 2.10 added a new `LintFilesRequest`, which allows you to run linters on code without any owning targets! [https://github.com/pantsbuild/pants/pull/14102](https://github.com/pantsbuild/pants/pull/14102) +Pants 2.10 added a new `LintFilesRequest`, which allows you to run linters on code without any owning targets! To improve clarity, we renamed `LintRequest` to `LintTargetsRequest`. @@ -545,11 +544,11 @@ class MyPyRequest(CheckRequest): This change is what allowed us to add the `lint --only=flake8` feature. -For DRY, it is a good idea to change the `formatter_name`, `linter_name`, and `checker_name` in `FmtResult`, `LintResults`, and `CheckResults`, respectively, to use `request.name` rather than hardcoding the string again. See [https://github.com/pantsbuild/pants/pull/14304](https://github.com/pantsbuild/pants/pull/14304) for examples. +For DRY, it is a good idea to change the `formatter_name`, `linter_name`, and `checker_name` in `FmtResult`, `LintResults`, and `CheckResults`, respectively, to use `request.name` rather than hardcoding the string again. See for examples. ### Removed `LanguageFmtTargets` for `fmt` -When setting up a new language to be formatted, you used to have to copy and paste a lot of boilerplate like `ShellFmtTargets`. That's been fixed, thanks to [https://github.com/pantsbuild/pants/pull/14166](https://github.com/pantsbuild/pants/pull/14166). +When setting up a new language to be formatted, you used to have to copy and paste a lot of boilerplate like `ShellFmtTargets`. That's been fixed, thanks to . To fix your code: @@ -558,43 +557,43 @@ To fix your code: ### `ReplImplementation` now passes root targets, not transitive closure -We realized that it's useful to let REPL rules know what was specified vs. what is a transitive dependency: [https://github.com/pantsbuild/pants/pull/14323](https://github.com/pantsbuild/pants/pull/14323). +We realized that it's useful to let REPL rules know what was specified vs. what is a transitive dependency: . To adapt to this, you will want to use `transitive_targets = await Get(TransitiveTargets, TransitiveTargetsRequest(request.addresses)`, then operate on `transitive_targets.closure`. ### Removed `PexFromTargetsRequest.additional_requirements` -Let us know if you were using this, and we can figure out how to add it back: [https://github.com/pantsbuild/pants/pull/14350](https://github.com/pantsbuild/pants/pull/14350). +Let us know if you were using this, and we can figure out how to add it back: . ### Removed `PexFromTargetsRequest(direct_deps_only: bool)` -Let us know if you were using this, and we can figure out how to add it back: [https://github.com/pantsbuild/pants/pull/14291](https://github.com/pantsbuild/pants/pull/14291). +Let us know if you were using this, and we can figure out how to add it back: . ### Renamed `GenerateToolLockfileSentinel.options_scope` to `resolve_name` -See [https://github.com/pantsbuild/pants/pull/14231](https://github.com/pantsbuild/pants/pull/14231) for more info. +See for more info. ### Renamed `PythonModule` to `PythonModuleOwnersRequest` -This type was used to determine the owners of a Python module. The new name makes that more clear. See [https://github.com/pantsbuild/pants/pull/14276](https://github.com/pantsbuild/pants/pull/14276). +This type was used to determine the owners of a Python module. The new name makes that more clear. See . ## 2.9 -See [https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.9.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.9.x.md) for the changelog. +See for the changelog. ### Deprecated `RuleRunner.create_files()`, `.create_file()` and `.add_to_build_file()` -Instead, for your `RuleRunner` tests, use `.write_files()`. See [https://github.com/pantsbuild/pants/pull/13817](https://github.com/pantsbuild/pants/pull/13817) for some examples. +Instead, for your `RuleRunner` tests, use `.write_files()`. See for some examples. ## 2.8 -See [https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.8.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.8.x.md) for the changelog. +See for the changelog. ### Target modeling changes Pants 2.8 cleaned up the modeling of targets. Now, there are targets that describe the atom of each language, like `python_test` and `python_source` which correspond to a single file. There are also target generators which exist solely for less boilerplate, like `python_tests` and `python_sources`. -We recommend re-reading [Targets and BUILD files](../../using-pants/key-concepts/targets-and-build-files.mdx). +We recommend re-reading [Targets and BUILD files](doc:targets). #### `SourcesField` @@ -618,7 +617,7 @@ The method `OutputPathField.value_or_default()` no longer takes `Address` as an ## 2.7 -See [https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.7.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.7.x.md) for the changelog. +See for the changelog. ### Type hints work properly @@ -630,7 +629,7 @@ For example, use `my-subsystem` instead of `my_subsystem`. This is to avoid ambi ## 2.6 -See [https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.6.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.6.x.md) for the changelog. +See for the changelog. ### `ProcessCacheScope` @@ -644,7 +643,7 @@ Now called `InterpreterConstraints` and defined in `pants.backend.python.util_ru ## 2.5 -See [https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.5.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.5.x.md) for the changelog. +See for the changelog. ### `TriBoolField` @@ -654,19 +653,19 @@ Use `TriBoolField` if you still want to be able to represent a trinary state: `F ### Added `RuleRunner.write_files()` -This is a more declarative way to set up files than the older API of `RuleRunner.create_file()`, `.create_files()`, and `.add_to_build_files()`. See [Testing plugins](../the-rules-api/testing-plugins.mdx). +This is a more declarative way to set up files than the older API of `RuleRunner.create_file()`, `.create_files()`, and `.add_to_build_files()`. See [Testing plugins](doc:rules-api-testing). ## 2.4 -See [https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.4.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.4.x.md) for the changelog. +See for the changelog. ### `PexRequest` changes how entry point is set -See [https://github.com/pantsbuild/pants/pull/11620](https://github.com/pantsbuild/pants/pull/11620). Instead of setting `entry_point="pytest"` in the `PexRequest` constructor, now you set `main=ConsoleScript("black")` or `main=EntryPoint("pytest")`. +See . Instead of setting `entry_point="pytest"` in the `PexRequest` constructor, now you set `main=ConsoleScript("black")` or `main=EntryPoint("pytest")`. ### Must use `EnvironmentRequest` for accessing environment variables -See [https://github.com/pantsbuild/pants/pull/11641](https://github.com/pantsbuild/pants/pull/11641). Pants now eagerly purges environment variables from the run, so using `os.environ` in plugins won't work anymore. +See . Pants now eagerly purges environment variables from the run, so using `os.environ` in plugins won't work anymore. Instead, use `await Get(Environment, EnvironmentRequest(["MY_ENV_VAR"])`. @@ -674,11 +673,11 @@ For `RuleRunner` tests, you must now either set `env` or the new `env_inherit` a ## 2.3 -There were no substantial changes to the Plugin API in 2.3. See [https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.3.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.3.x.md) for the changelog. +There were no substantial changes to the Plugin API in 2.3. See for the changelog. ## 2.2 -See [https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.2.x.md](https://github.com/pantsbuild/pants/blob/main/src/python/pants/notes/2.2.x.md) for the changelog. +See for the changelog. ### `PrimitiveField` and `AsyncField` are removed (2.2.0.dev0) @@ -710,7 +709,7 @@ Pants will now properly wrap strings and preserve newlines. You may want to run ## 2.1 -See [https://github.com/pantsbuild/pants/blob/master/src/python/pants/notes/2.1.x.rst](https://github.com/pantsbuild/pants/blob/master/src/python/pants/notes/2.1.x.rst) for the changelog. +See for the changelog. ### `SourcesSnapshot` is now `SpecsSnapshot` (2.1.0rc0) @@ -718,7 +717,7 @@ The type was renamed for clarity. Still import it from `pants.engine.fs`. ## 2.0 -See [https://github.com/pantsbuild/pants/blob/master/src/python/pants/notes/2.0.x.rst](https://github.com/pantsbuild/pants/blob/master/src/python/pants/notes/2.0.x.rst) for the changelog. +See for the changelog. ### Use `TransitiveTargetsRequest` as input for resolving `TransitiveTargets` (2.0.0rc0) @@ -732,7 +731,7 @@ Due to a new cycle in the rule graph, for any codegen implementations, you must These behave identically, except that they do not include dependency inference in the results. Unless you are generating for `input = PythonSources`, this should be fine, as dependency inference is currently only used with Python. -This is tracked by [https://github.com/pantsbuild/pants/issues/10917](https://github.com/pantsbuild/pants/issues/10917). +This is tracked by . ### Dependencies-like fields have more robust support (2.0.0rc0) diff --git a/versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/add-codegen.mdx b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-codegen.md similarity index 83% rename from versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/add-codegen.mdx rename to versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-codegen.md index 3b7859543..0a873f4d8 100644 --- a/versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/add-codegen.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-codegen.md @@ -1,29 +1,28 @@ --- - title: Add codegen - sidebar_position: 3 ---- - -How to add a new code generator to Pants. - +title: "Add codegen" +slug: "plugins-codegen" +excerpt: "How to add a new code generator to Pants." +hidden: false +createdAt: "2020-07-01T04:52:54.817Z" --- Pants supports code generators that convert a protocol language like Protobuf into other languages, such as Python or Java. The same protocol source may be used to generate multiple distinct languages. Pants will not actually write the generated files to disk, except when running `pants export-codegen`. Instead, any targets that depend on the protocol targets will cause their code to be generated, and those generated files will be copied over into the "chroot" (temporary directory) where Pants executes. -:::note Example: Protobuf -> Python -This guide walks through each step of adding Protobuf to generate Python sources. See [here](https://github.com/pantsbuild/pants/tree/master/src/python/pants/backend/codegen/protobuf) for the final result. -::: +> 📘 Example: Protobuf -> Python +> +> This guide walks through each step of adding Protobuf to generate Python sources. See [here](https://github.com/pantsbuild/pants/tree/master/src/python/pants/backend/codegen/protobuf) for the final result. This guide assumes that you are running a code generator that already exists outside of Pants as a stand-alone binary, such as running Protoc or Thrift. -If you are instead writing your own code generation logic inline, you can skip Step 2. In Step 4, rather than running a `Process`, use [`CreateDigest`](../the-rules-api/file-system.mdx). +If you are instead writing your own code generation logic inline, you can skip Step 2. In Step 4, rather than running a `Process`, use [`CreateDigest`](doc:rules-api-file-system). 1. Create a target type for the protocol --- -You will need to define a new target type to allow users to provide metadata for their protocol files, e.g. their `.proto` files. See [Creating new targets](../the-target-api/creating-new-targets.mdx) for a guide on how to do this. +You will need to define a new target type to allow users to provide metadata for their protocol files, e.g. their `.proto` files. See [Creating new targets](doc:target-api-new-targets) for a guide on how to do this. ```python from pants.engine.target import COMMON_TARGET_FIELDS, Dependencies, SingleSourceField, Target @@ -45,7 +44,7 @@ Typically, you will want to register the `Dependencies` field. If Pants already has a target type for your protocol—such as Pants already having a `ProtobufSourceTarget` defined—you should not create a new target type. -Instead, you can optionally add any additional fields that you would like through plugin fields. See [Extending pre-existing targets](../the-target-api/extending-existing-targets.mdx). +Instead, you can optionally add any additional fields that you would like through plugin fields. See [Extending pre-existing targets](doc:target-api-extending-targets). ### Add dependency injection (Optional) @@ -56,7 +55,7 @@ Instead of users having to explicitly add this dependency every time, you can dy To inject dependencies: 1. Subclass the `Dependencies` field. Register this subclass on your protocol target type. -2. Define a subclass of `InjectDependenciesRequest` and set the class property `inject_for` to the `Dependencies` subclass defined in the previous step. Register this new class with a [`UnionRule`](../the-rules-api/union-rules-advanced.mdx) for `InjectDependenciesRequest`. +2. Define a subclass of `InjectDependenciesRequest` and set the class property `inject_for` to the `Dependencies` subclass defined in the previous step. Register this new class with a [`UnionRule`](doc:rules-api-unions) for `InjectDependenciesRequest`. 3. Create a new rule that takes your new `InjectDependenciesRequest` subclass as a parameter and returns `InjectedDependencies`. ```python @@ -95,7 +94,7 @@ This example hardcodes the injected address. You can instead add logic to your r --- -There are several ways for Pants to install your tool. See [Installing tools](../the-rules-api/installing-tools.mdx). This example will use `ExternalTool` because there is already a pre-compiled binary for Protoc. +There are several ways for Pants to install your tool. See [Installing tools](doc:rules-api-installing-tools). This example will use `ExternalTool` because there is already a pre-compiled binary for Protoc. ```python from pants.core.util_rules.external_tool import ExternalTool @@ -152,7 +151,7 @@ The `output` should typically be the `SourcesField` class corresponding to the " Note that your rule will not actually return an instance of the `output` type, e.g. `PythonSourceField`. Codegen rules only return a `Snapshot`, rather than a whole `SourcesField`. The `output` field is only used as a signal of intent. -Finally, register your new `GenerateSourcesRequest` with a [`UnionRule`](../the-rules-api/union-rules-advanced.mdx). +Finally, register your new `GenerateSourcesRequest` with a [`UnionRule`](doc:rules-api-unions). ```python from pants.engine.rules import collect_rules @@ -187,13 +186,13 @@ async def generate_python_from_protobuf( The `request` parameter will have two fields: `protocol_sources: Snapshot` and `protocol_target: Target`. Often, you will want to include `protocol_sources` in the `input_digest` to the `Process` you use to run the generator. You can use `protocol_target` to look up more information about the input target, such as finding its dependencies. -The rule should return `GeneratedSources`, which take a [`Snapshot`](../the-rules-api/file-system.mdx) as its only argument. This should be a Snapshot of the generated files for the input target. +The rule should return `GeneratedSources`, which take a [`Snapshot`](doc:rules-api-file-system) as its only argument. This should be a Snapshot of the generated files for the input target. If you used `ExternalTool` in step 1, you will use `Get(DownloadedExternalTool, ExternalToolRequest)` to install the tool. Be sure to merge this with the `protocol_sources` and any other relevant input digests via `Get(Digest, MergeDigests)`. -For many code generators, you will need to get the input target's direct or transitive dependencies and include their sources in the `input_digest`. See [Rules and the Target API](../the-rules-api/rules-and-the-target-api.mdx). +For many code generators, you will need to get the input target's direct or transitive dependencies and include their sources in the `input_digest`. See [Rules and the Target API](doc:rules-api-and-target-api). -You will likely need to add logic for handling [source roots](../../using-pants/key-concepts/source-roots.mdx). For example, the code generator may not understand source roots so you may need to [strip source roots](../the-rules-api/rules-and-the-target-api.mdx) before putting the sources in the `input_digest`. Likely, you will want to restore a source root after generation because most Pants code will assume that there is a source root present. In the below example, we restore the original source root, e.g. `src/protobuf/f.proto` becomes `src/protobuf/f_pb2.py`. See [`protobuf/python/rules.py`](https://github.com/pantsbuild/pants/tree/master/src/python/pants/backend/codegen/protobuf/python/rules.py) for a more complex example that allows the user to specify what source root to use through a field on the `protobuf_library`. +You will likely need to add logic for handling [source roots](doc:source-roots). For example, the code generator may not understand source roots so you may need to [strip source roots](doc:rules-api-and-target-api) before putting the sources in the `input_digest`. Likely, you will want to restore a source root after generation because most Pants code will assume that there is a source root present. In the below example, we restore the original source root, e.g. `src/protobuf/f.proto` becomes `src/protobuf/f_pb2.py`. See [`protobuf/python/rules.py`](https://github.com/pantsbuild/pants/tree/master/src/python/pants/backend/codegen/protobuf/python/rules.py) for a more complex example that allows the user to specify what source root to use through a field on the `protobuf_library`. ```python @rule @@ -275,22 +274,22 @@ async def generate_python_from_protobuf( Finally, update your plugin's `register.py` to activate this file's rules. -```python title="pants-plugins/protobuf/register.py" +```python pants-plugins/protobuf/register.py from protobuf import python_support def rules(): return [*python_support.rules()] ``` -:::note Tip: use `export-codegen` to test it works -Run `pants export-codegen path/to/file.ext` to ensure Pants is correctly generating the file. This will write the generated file(s) under the `dist/` directory, using the same path that will be used during Pants runs. -::: +> 📘 Tip: use `export-codegen` to test it works +> +> Run `pants export-codegen path/to/file.ext` to ensure Pants is correctly generating the file. This will write the generated file(s) under the `dist/` directory, using the same path that will be used during Pants runs. 5. Audit call sites to ensure they've enabled codegen --- -Call sites must opt into using codegen, and they must also specify what types of sources they're expecting. See [Rules and the Target API](../the-rules-api/rules-and-the-target-api.mdx) about `SourcesField`. +Call sites must opt into using codegen, and they must also specify what types of sources they're expecting. See [Rules and the Target API](doc:rules-api-and-target-api) about `SourcesField`. For example, if you added a code generator that goes from `ProtobufSourceField -> JavaSourceField`, then Pants's Python backend would not use your new implementation because it ignores `JavaSourceField`. @@ -300,4 +299,4 @@ You should check that everywhere you're expecting is using your new codegen impl --- -Refer to [Testing rules](../the-rules-api/testing-plugins.mdx). +Refer to [Testing rules](doc:rules-api-testing). diff --git a/versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/add-a-formatter.mdx b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-fmt-goal.md similarity index 83% rename from versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/add-a-formatter.mdx rename to versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-fmt-goal.md index 7a3f033a2..b5d8654ac 100644 --- a/versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/add-a-formatter.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-fmt-goal.md @@ -1,23 +1,22 @@ --- - title: Add a formatter - sidebar_position: 1 +title: "Add a formatter" +slug: "plugins-fmt-goal" +excerpt: "How to add a new formatter to the `fmt` and `lint` goals." +hidden: false +createdAt: "2020-07-01T04:52:28.820Z" --- -How to add a new formatter to the `fmt` and `lint` goals. - ---- - -In Pants, every formatter is also a linter, meaning that if you can run a tool with `pants fmt`, you can run the same tool in check-only mode with `pants lint`. Start by skimming [Add a linter](./add-a-linter.mdx) to familiarize yourself with how linters work. +In Pants, every formatter is also a linter, meaning that if you can run a tool with `pants fmt`, you can run the same tool in check-only mode with `pants lint`. Start by skimming [Add a linter](doc:plugins-lint-goal) to familiarize yourself with how linters work. This guide assumes that you are running a formatter that already exists outside of Pants as a stand-alone binary, such as running Black or Prettier. If you are instead writing your own formatting logic inline, you can skip Step 1. In Step 4, you will not need to use `Process`. -## 1. Install your formatter +# 1. Install your formatter -There are several ways for Pants to install your formatter. See [Installing tools](../the-rules-api/installing-tools.mdx). This example will use `ExternalTool` because there is already a pre-compiled binary for shfmt. +There are several ways for Pants to install your formatter. See [Installing tools](doc:rules-api-installing-tools). This example will use `ExternalTool` because there is already a pre-compiled binary for shfmt. -You will also likely want to register some options, like `--config`, `--skip`, and `--args`. Options are registered through a [`Subsystem`](../the-rules-api/options-and-subsystems.mdx). If you are using `ExternalTool`, this is already a subclass of `Subsystem`. Otherwise, create a subclass of `Subsystem`. Then, set the class property `options_scope` to the name of the tool, e.g. `"shfmt"` or `"prettier"`. Finally, add options from `pants.option.option_types`. +You will also likely want to register some options, like `--config`, `--skip`, and `--args`. Options are registered through a [`Subsystem`](doc:rules-api-subsystems). If you are using `ExternalTool`, this is already a subclass of `Subsystem`. Otherwise, create a subclass of `Subsystem`. Then, set the class property `options_scope` to the name of the tool, e.g. `"shfmt"` or `"prettier"`. Finally, add options from `pants.option.option_types`. ```python from pants.core.util_rules.external_tool import ExternalTool @@ -61,9 +60,9 @@ class Shfmt(ExternalTool): return f"./shfmt_{self.version}_{plat_str}" ``` -## 2. Set up a `FieldSet` and `FmtTargetsRequest` +# 2. Set up a `FieldSet` and `FmtTargetsRequest` -As described in [Rules and the Target API](../the-rules-api/rules-and-the-target-api.mdx), a `FieldSet` is a way to tell Pants which `Field`s you care about targets having for your plugin to work. +As described in [Rules and the Target API](doc:rules-api-and-target-api), a `FieldSet` is a way to tell Pants which `Field`s you care about targets having for your plugin to work. Usually, you should add a subclass of `SourcesField` to the class property `required_fields`, such as `ShellSourceField` or `PythonSourceField`. This means that your linter will run on any target with that sources field or a subclass of it. @@ -94,7 +93,7 @@ class ShfmtRequest(FmtTargetsRequest): tool_subsystem = Shfmt ``` -## 3. Create `fmt` rules +# 3. Create `fmt` rules You will need a rule for `fmt` which takes the `FmtTargetsRequest.Batch` from step 3 (e.g. `ShfmtRequest`) as a parameter and returns a `FmtResult`. @@ -165,7 +164,7 @@ def rules(): Finally, update your plugin's `register.py` to activate this file's rules. Note that we must register the rules added in Step 2, as well. -```python title="pants-plugins/shell/register.py" +```python pants-plugins/shell/register.py from shell import shfmt @@ -175,6 +174,6 @@ def rules(): Now, when you run `pants fmt ::` or `pants lint ::`, your new formatter should run. -## 4. Add tests (optional) +# 4. Add tests (optional) -Refer to [Testing rules](../the-rules-api/testing-plugins.mdx). +Refer to [Testing rules](doc:rules-api-testing). diff --git a/versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/add-a-linter.mdx b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-lint-goal.md similarity index 84% rename from versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/add-a-linter.mdx rename to versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-lint-goal.md index 4fff13bcd..bc37f57aa 100644 --- a/versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/add-a-linter.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-lint-goal.md @@ -1,21 +1,20 @@ --- - title: Add a linter - sidebar_position: 0 ---- - -How to add a new linter to the `lint` goal. - +title: "Add a linter" +slug: "plugins-lint-goal" +excerpt: "How to add a new linter to the `lint` goal." +hidden: false +createdAt: "2020-07-01T04:51:55.583Z" --- This guide assumes that you are running a linter that already exists outside of Pants as a stand-alone binary, such as running Shellcheck, Pylint, Checkstyle, or ESLint. If you are instead writing your own linting logic inline, you can skip Step 1. In Step 3, you will not need to use `Process`. You may find Pants's [`regex-lint` implementation](https://github.com/pantsbuild/pants/blob/main/src/python/pants/backend/project_info/regex_lint.py) helpful for how to integrate custom linting logic into Pants. -## 1. Install your linter +# 1. Install your linter -There are several ways for Pants to install your linter. See [Installing tools](../the-rules-api/installing-tools.mdx). This example will use `ExternalTool` because there is already a pre-compiled binary for Shellcheck. +There are several ways for Pants to install your linter. See [Installing tools](doc:rules-api-installing-tools). This example will use `ExternalTool` because there is already a pre-compiled binary for Shellcheck. -You will also likely want to register some options, like `--config`, `--skip`, and `--args`. Options are registered through a [`Subsystem`](../the-rules-api/options-and-subsystems.mdx). If you are using `ExternalTool`, this is already a subclass of `Subsystem`. Otherwise, create a subclass of `Subsystem`. Then, set the class property `options_scope` to the name of the tool, e.g. `"shellcheck"` or `"eslint"`. Finally, add options from `pants.option.option_types`. +You will also likely want to register some options, like `--config`, `--skip`, and `--args`. Options are registered through a [`Subsystem`](doc:rules-api-subsystems). If you are using `ExternalTool`, this is already a subclass of `Subsystem`. Otherwise, create a subclass of `Subsystem`. Then, set the class property `options_scope` to the name of the tool, e.g. `"shellcheck"` or `"eslint"`. Finally, add options from `pants.option.option_types`. ```python from pants.core.util_rules.external_tool import ExternalTool @@ -56,9 +55,9 @@ class Shellcheck(ExternalTool): ``` -## Set up a `FieldSet` and `LintTargetsRequest` +# Set up a `FieldSet` and `LintTargetsRequest` -As described in [Rules and the Target API](../the-rules-api/rules-and-the-target-api.mdx), a `FieldSet` is a way to tell Pants which `Field`s you care about targets having for your plugin to work. +As described in [Rules and the Target API](doc:rules-api-and-target-api), a `FieldSet` is a way to tell Pants which `Field`s you care about targets having for your plugin to work. Usually, you should add a subclass of the `Sources` field to the class property `required_fields`, such as `BashSources` or `PythonSources`. This means that your linter will run on any target with that sources field or a subclass of it. @@ -91,7 +90,7 @@ class ShellcheckRequest(LintTargetsRequest): tool_subsystem = Shellcheck ``` -## 3. Create a rule for your linter logic +# 3. Create a rule for your linter logic Your rule should take as a parameter `ShellcheckRequest.Batch` and the `Subsystem` (or `ExternalTool`) from step 1 (a `Batch` is an object containing a subset of all the matched field sets for your tool). It should return a `LintResult`: @@ -118,7 +117,7 @@ If you have a `--config` option, you should use `Get(Digest, PathGlobs)` to find Use `Get(Digest, MergeDigests)` to combine the different inputs together, such as merging the source files, config file, and downloaded tool. -Usually, you will use `Get(FallibleProcessResult, Process)` to run a subprocess (see [Processes](../the-rules-api/processes.mdx)). We use `Fallible` because Pants should not throw an exception if the linter returns a non-zero exit code. Then, you can use `LintResult.from_fallible_process_result()` to convert this into a `LintResult`. +Usually, you will use `Get(FallibleProcessResult, Process)` to run a subprocess (see [Processes](doc:rules-api-process)). We use `Fallible` because Pants should not throw an exception if the linter returns a non-zero exit code. Then, you can use `LintResult.from_fallible_process_result()` to convert this into a `LintResult`. ```python from pants.core.goals.lint import LintTargetsRequest, LintResult, LintResults @@ -216,7 +215,7 @@ def rules(): Finally, update your plugin's `register.py` to activate this file's rules. -```python title="pants-plugins/bash/register.py" +```python pants-plugins/bash/register.py from bash import shellcheck @@ -226,6 +225,6 @@ def rules(): Now, when you run `pants lint ::`, your new linter should run. -## 4. Add tests (optional) +# 4. Add tests (optional) -Refer to [Testing rules](../the-rules-api/testing-plugins.mdx). +Refer to [Testing rules](doc:rules-api-testing). diff --git a/versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-package-goal.md b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-package-goal.md new file mode 100644 index 000000000..224c94b22 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-package-goal.md @@ -0,0 +1,189 @@ +--- +title: "Package code" +slug: "plugins-package-goal" +excerpt: "How to add a new implementation to the `package` goal." +hidden: true +createdAt: "2020-07-01T04:54:11.398Z" +--- + +The `package` goal bundles all the relevant code and third-party dependencies into a single asset, such as a JAR, PEX, or zip file. + +Often, the asset is executable, but it need not be. + +> 📘 Example repository +> +> This guide walks through adding a simple `package` implementation for Bash that simply puts all the relevant source files into a `.zip` file. +> +> This duplicates the `archive` target type, and is solely implemented for instructional purposes. See [here](https://github.com/pantsbuild/example-plugin/blob/main/pants-plugins/examples/bash/package_bash_binary.py) for the final implementation. + +1. Set up a package target type (recommended) + +--- + +Usually, you will want to add a new target type for your implementation, such as `pex_binary` or `python_distribution`. + +The fields depend on what makes sense for the package format you're adding support for. For example, when wrapping a binary format like Pex or PyInstaller, you may want a field corresponding to each of the tool's option, like `zip_safe` and `ignore_errors`. Often, you will want a field for the entry point. + +Usually, you should include `OutputPathField` from `pants.core.goals.package` in your target's fields, which will allow the user to change where the package is built to. + +See [Creating new targets](doc:target-api-new-targets) for a guide on how to define new target types. + +```python +from pants.core.goals.package import OutputPathField +from pants.engine.target import COMMON_TARGET_FIELDS, Dependencies, Sources, Target + +class BashSources(Sources): + expected_file_extensions = (".sh",) + + +class BashBinarySources(BashSources): + required = True + expected_num_files = 1 + + + class BashBinary(Target): + """A Bash file that may be directly run.""" + + alias = "bash_binary" + core_fields = (*COMMON_TARGET_FIELDS, OutputPathField, Dependencies, BashBinarySources) +``` + +> 🚧 Binary targets and the `sources` field +> +> We've found that it often works best for targets used by the `package` goal to not have a `sources` field. Instead, use a "library" target to describe the source code, and add the library as a dependency of the binary target. For example, a `pex_binary` target may depend on some `python_library` targets. +> +> Why do we recommend not having a `sources` field? It can be helpful with modeling to have a clear separation between targets describing first-party code vs. artifacts you want to build. For example, this allows you to use a default value for the `sources` field of your library target without worrying that a user unintentionally set their binary's `sources` to overlap with the library's (things like dependency inference do not work as well when >1 target refer to the same source file.) +> +> However, sometimes it does make sense to have a `sources` field, such as a `dockerfile` target type. Likewise, this guide uses a `sources` field for simplicity. +> +> Warning: If you do have a `sources` field, set `expected_num_files` to `1` or `range(0, 2)`. Because Pants operates on a file-level, it would try to create one distinct package for each source file belonging to your target, even though you probably only wanted a single package built. + +2. Set up a subclass of `PackageFieldSet` + +--- + +As described in [Rules and the Target API](doc:rules-api-and-target-api), a `FieldSet` is a way to tell Pants which `Field`s you care about targets having for your plugin to work. + +Create a new dataclass that subclasses `PackageFieldSet`. Set the class property `required_fields` to the fields your target must have registered to work. Usually, this is a field like `BashBinarySources` or `BashBinaryEntryPoint`. + +```python +from dataclasses import dataclass + +from pants.core.goals.package import OutputPathField, PackageFieldSet + +@dataclass(frozen=True) +class BashBinaryFieldSet(PackageFieldSet): + required_fields = (BashBinarySources,) + + sources: BashBinarySources + output_path: OutputPathField +``` + +Then, register your new `PackageFieldSet` with a [`UnionRule`](doc:rules-api-unions) so that Pants knows your binary implementation exists: + +```python +from pants.engine.rules import collect_rules +from pants.engine.unions import UnionRule + +... + +def rules(): + return [ + *collect_rules(), + UnionRule(PackageFieldSet, BashBinaryFieldSet), + ] +``` + +3. Create a rule for your logic + +--- + +Your rule should take as a parameter the `PackageFieldSet` from Step 2. It should return `BuiltPackage`, which has the fields `digest: Digest` and `artifacts: Tuple[BuiltPackageArtifact, ...]`, where each `BuiltPackageArtifact` has the field `relpath: str` and optional `extra_log_lines: Tuple[str, ...]`. + +Your package rule can have whatever logic you'd like to create a package. All that Pants cares about is that you return a valid `BuiltPackage` object. + +In this example, we simply create a `.zip` file with the `bash_binary` and all of its dependencies. + +```python +from dataclasses import dataclass + +from pants.core.goals.package import ( + BuiltPackage, + BuiltPackageArtifact, + OutputPathField, + PackageFieldSet, +) +from pants.core.util_rules.source_files import SourceFiles, SourceFilesRequest +from pants.engine.addresses import Addresses +from pants.engine.process import BinaryPathRequest, BinaryPaths, Process, ProcessResult +from pants.engine.rules import Get, rule +from pants.engine.target import TransitiveTargets +from pants.util.logging import LogLevel + +from examples.bash.target_types import BashBinarySources, BashSources + +... + +@rule(level=LogLevel.DEBUG) +async def package_bash_binary(field_set: BashBinaryFieldSet) -> BuiltPckage: + zip_program_paths = await Get( + BinaryPaths, + BinaryPathRequest(binary_name="zip", search_path=["/bin", "/usr/bin"]), + ) + if not zip_program_paths.first_path: + raise ValueError( + "Could not find the `zip` program on `/bin` or `/usr/bin`, so cannot create a package " + f"for {field_set.address}." + ) + + transitive_targets = await Get(TransitiveTargets, Addresses([field_set.address])) + sources = await Get( + SourceFiles, + SourceFilesRequest( + tgt[BashSources] + for tgt in transitive_targets.closure + if tgt.has_field(BashSources) + ), + ) + + output_filename = field_set.output_path.value_or_default( + field_set.address, file_ending="zip" + ) + result = await Get( + ProcessResult, + Process( + argv=( + zip_program_paths.first_path, + output_filename, + *sources.snapshot.files, + ), + input_digest=sources.snapshot.digest, + description=f"Zip {field_set.address} and its dependencies.", + output_files=(output_filename,), + ), + ) + return BuiltPackage( + result.output_digest, artifacts=(BuiltPackageArtifact(output_filename),) + ) + +``` + +Note that we use `field_set.output_path.value_or_default` to determine the output filename, which will use the `output_path` field if defined, and will default to an unambiguous value otherwise. + +Finally, update your plugin's `register.py` to activate this file's rules. + +```python pants-plugins/bash/register.py +from bash import package_binary + + +def rules(): + return [*package_binary.rules()] +``` + +Now, when you run `pants package ::`, Pants should create packages for all your package target types in the `--pants-distdir` (defaults to `dist/`). + +4. Add tests (optional) + +--- + +Refer to [Testing rules](doc:rules-api-testing). diff --git a/versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/add-a-repl.mdx b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-repl-goal.md similarity index 91% rename from versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/add-a-repl.mdx rename to versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-repl-goal.md index 03cce0c96..be1bcffbc 100644 --- a/versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/add-a-repl.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-repl-goal.md @@ -1,10 +1,9 @@ --- - title: Add a REPL - sidebar_position: 6 ---- - -How to add a new implementation to the `repl` goal. - +title: "Add a REPL" +slug: "plugins-repl-goal" +excerpt: "How to add a new implementation to the `repl` goal." +hidden: false +createdAt: "2020-08-22T05:58:07.646Z" --- The `repl` goal opens up an interactive Read-Eval-Print Loop that runs in the foreground. @@ -15,11 +14,11 @@ Typically, the REPL is loaded with the transitive closure of the files and targe --- -There are several ways for Pants to install your REPL. See [Installing tools](../the-rules-api/installing-tools.mdx). +There are several ways for Pants to install your REPL. See [Installing tools](doc:rules-api-installing-tools). In this example, we simply find the program `bash` on the user's machine, but often you will want to install a tool like Ammonite or iPython instead. -You may want to also add options for your REPL implementation, such as allowing users to change the version of the tool. See [Options and subsystems](../the-rules-api/options-and-subsystems.mdx). +You may want to also add options for your REPL implementation, such as allowing users to change the version of the tool. See [Options and subsystems](doc:rules-api-subsystems). 2. Set up a subclass of `ReplImplementation` @@ -34,7 +33,7 @@ class BashRepl(ReplImplementation): name = "bash" ``` -Then, register your new `ReplImplementation` with a [`UnionRule`](../the-rules-api/union-rules-advanced.mdx) so that Pants knows your REPL implementation exists: +Then, register your new `ReplImplementation` with a [`UnionRule`](doc:rules-api-unions) so that Pants knows your REPL implementation exists: ```python from pants.engine.rules import collect_rules @@ -103,7 +102,7 @@ If you use any relative paths in `args` or `extra_env`, you should call `repl.in Finally, update your plugin's `register.py` to activate this file's rules. -```python title="pants-plugins/bash/register.py" +```python pants-plugins/bash/register.py from bash import repl diff --git a/versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-run-goal.md b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-run-goal.md new file mode 100644 index 000000000..305f9b260 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-run-goal.md @@ -0,0 +1,192 @@ +--- +title: "Run programs" +slug: "plugins-run-goal" +excerpt: "How to add a new implementation to the `run` goal." +hidden: true +createdAt: "2020-07-01T04:55:11.390Z" +--- + +The `run` goal runs a single interactive process in the foreground, such as running a script or a program. + +> 📘 Example repository +> +> This guide walks through adding a simple `run` implementation for Bash that runs the equivalent `/bin/bash ./script.sh`. See [here](https://github.com/pantsbuild/example-plugin/blob/main/pants-plugins/examples/bash/run_binary.py) for the final implementation. + +1. Set up a binary target type + +--- + +Usually, you will want to add a "binary" target type for your language, such as `bash_binary` or `python_binary`. Typically, both the `run` and `package` goals operate on binary target types. + +When creating a binary target, you should usually subclass the `Sources` field and set the class property `expected_num_files = 1`. + +See [Creating new targets](doc:target-api-new-targets) for a guide on how to define new target types. + +```python +from pants.engine.target import COMMON_TARGET_FIELDS, Dependencies, Sources, Target + +class BashSources(Sources): + expected_file_extensions = (".sh",) + + +class BashBinarySources(BashSources): + required = True + expected_num_files = 1 + + + class BashBinary(Target): + """A Bash file that may be directly run.""" + + alias = "bash_binary" + core_fields = (*COMMON_TARGET_FIELDS, Dependencies, BashBinarySources) +``` + +2. Set up a subclass of `RunFieldSet` + +--- + +As described in [Rules and the Target API](doc:rules-api-and-target-api), a `FieldSet` is a way to tell Pants which `Field`s you care about targets having for your plugin to work. + +Usually, you will require the binary target's `Sources` subclass from Step 1, such as `BashBinarySources` or `PythonBinarySources`. Add this `Sources` subclass to the class property `required_fields` of your new `FieldSet`. This means that your binary implementation will run on any target with that sources field or a subclass of it. + +Create a new dataclass that subclasses `RunFieldSet`: + +```python +from dataclasses import dataclass + +from pants.core.goals.run import RunFieldSet + +@dataclass(frozen=True) +class BashRunFieldSet(RunFieldSet): + required_fields = (BashBinarySources,) + + sources: BashBinarySources +``` + +Then, register your new `BashRunFieldSet` with a [`UnionRule`](doc:rules-api-unions) so that Pants knows your binary implementation exists: + +```python +from pants.engine.rules import collect_rules +from pants.engine.unions import UnionRule + +... + +def rules(): + return [ + *collect_rules(), + *BashRunFieldSet.rules(), + ] +``` + +3. Create a rule for your logic + +--- + +Your rule should take as a parameter the `BashRunFieldSet` from Step 2. It should return `RunRequest`, which has the fields `digest: Digest`, `args: Iterable[str]`, and `extra_env: Optional[Mapping[str, str]]`. + +The `RunRequest` will get converted into an `InteractiveProcess` that will run in the foreground. + +The process will run in a temporary directory in the build root, which means that the script/program can access files that would normally need to be declared by adding a `files` or `resources` target to the `dependencies` field. + +The process will not be hermetic, meaning that it will inherit the environment variables used by the `pants` process. Any values you set in `extra_env` will add or update the specified environment variables. + +```python +from dataclasses import dataclass + +from pants.core.goals.run import RunFieldSet, RunRequest +from pants.core.target_types import FilesSources, ResourcesSources +from pants.core.util_rules.source_files import SourceFiles, SourceFilesRequest +from pants.engine.addresses import Addresses +from pants.engine.rules import Get, MultiGet, rule +from pants.engine.target import Sources, TransitiveTargets +from pants.util.logging import LogLevel + +from examples.bash.target_types import BashBinarySources, BashSources + +... + +@rule(level=LogLevel.DEBUG) +async def run_bash_binary(field_set: BashRunFieldSet) -> RunRequest: + # First, we find the `bash` program. + bash_program_paths = await Get( + BinaryPaths, BinaryPathRequest(binary_name="bash", search_path=("/bin", "/usr/bin")), + ) + if not bash_program_paths.first_path: + raise EnvironmentError("Could not find the `bash` program on /bin or /usr/bin.") + bash_program = bash_program_paths.first_path + + # We need to include all relevant transitive dependencies in the environment. We also get the + # binary's sources so that we know the script name. + transitive_targets = await Get(TransitiveTargets, Addresses([field_set.address])) + binary_sources_request = Get(SourceFiles, SourceFilesRequest([field_set.sources])) + all_sources_request = Get( + SourceFiles, + SourceFilesRequest( + (tgt.get(Sources) for tgt in transitive_targets.closure), + for_sources_types=(BashSources, FilesSources, ResourcesSources), + ), + ) + binary_sources, all_sources = await MultiGet( + binary_sources_request, all_sources_request + ) + + # We join the relative path to our program with the template string "{chroot}", which will get + # substituted with the path to the temporary directory where our program runs. This ensures + # that we run the correct file. + # Note that `BashBinarySources` will have already validated that there is exactly one file in + # the sources field. + script_name = os.path.join("{chroot}", binary_sources.files[0]) + + return RunRequest( + digest=all_sources.snapshot.digest, + args=[bash_program.exe, script_name], + ) +``` + +In this example, we run the equivalent of `/bin/bash ./my_script.sh`. Typically, your `args` will include the program you're running, like `/bin/bash`, and the relative path to the binary file. For some languages, you may use values other than the file name; for example, Pants's `python_binary` target has an `entry_point` field, and the `run` implementation sets `args` to the equivalent of `python -m entry_point`. + +When using relative paths in `args` or `extra_env`, you should join the values with the template string `"{chroot}"`, e.g. `os.path.join("{chroot}", binary_sources.files[0])`. This ensures that you run on the correct file in the temporary directory created by Pants. + +Finally, update your plugin's `register.py` to activate this file's rules. + +```python pants-plugins/bash/register.py +from bash import run_binary + + +def rules(): + return [*run_binary.rules()] +``` + +Now, when you run `pants run path/to/binary.sh`, Pants should run the program. + +4. Define `@rule`s for debugging + +--- + +`pants run` exposes `--debug-adapter` options for debugging code. To hook into this behavior, opt-in in your `RunRequest` subclass and define an additional rule: + +```python +from pants.core.goals.run import RunDebugAdapterRequest +from pants.core.subsystems.debug_adapter import DebugAdapterSubsystem + +@dataclass(frozen=True) +class BashRunFieldSet(RunFieldSet): + ... # Fields from earlier + supports_debug_adapter = True # Supports --debug-adapter + + +@rule +async def run_bash_binary_debug_adapter( + field_set: BashRunFieldSet, + debug_adapter: DebugAdapterSubsystem, +) -> RunDebugAdapterRequest: + ... +``` + +Your rule should be configured to wait for client connection before continuing. + +5. Add tests (optional) + +--- + +Refer to [Testing rules](doc:rules-api-testing). TODO diff --git a/versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/custom-python-artifact-kwargs.mdx b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-setup-py.md similarity index 70% rename from versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/custom-python-artifact-kwargs.mdx rename to versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-setup-py.md index 4361f7537..eefcab54e 100644 --- a/versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/custom-python-artifact-kwargs.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-setup-py.md @@ -1,13 +1,12 @@ --- - title: Custom `python_artifact()` kwargs - sidebar_position: 8 +title: "Custom `python_artifact()` kwargs" +slug: "plugins-setup-py" +excerpt: "How to add your own logic to `python_artifact()`." +hidden: false +createdAt: "2020-09-02T00:21:52.821Z" --- -How to add your own logic to `python_artifact()`. - ---- - -Pants can build [Python distributions](../../python/python-overview/building-distributions.mdx), such as wheels and sdists, from information you provide in a [`python_distribution`](../../../reference/targets/python_distribution.mdx) target. +Pants can build [Python distributions](doc:python-distributions), such as wheels and sdists, from information you provide in a [`python_distribution`](doc:reference-python_distribution) target. When doing so, and if you don't provide your own `setup.py` file, Pants generates one and passes it the kwargs provided in the `provides=python_artifact(...)` field to the `setup(...)` call (Pants also generates some of the kwargs, such as `install_requires` and `namespace_packages` by analyzing your code). @@ -21,9 +20,9 @@ You can write a plugin to add custom kwarg generation logic. Note: there may only be at most one applicable plugin per target customizing the kwargs for the `setup()` function. -:::note Example -See [here](https://github.com/pantsbuild/pants/blob/master/pants-plugins/internal_plugins/releases/register.py) for an example that Pants uses internally for its `python_distribution` targets. This plugin demonstrates reading from the file system to set the `version` and `long_description` kwargs, along with adding hardcoded kwargs. -::: +> 📘 Example +> +> See [here](https://github.com/pantsbuild/pants/blob/master/pants-plugins/internal_plugins/releases/register.py) for an example that Pants uses internally for its `python_distribution` targets. This plugin demonstrates reading from the file system to set the `version` and `long_description` kwargs, along with adding hardcoded kwargs. 1. Set up a subclass of `SetupKwargsRequest` @@ -52,7 +51,7 @@ class CustomSetupKwargsRequest(SetupKwargsRequest): return target.address.spec.startswith("src/python/project1") ``` -Then, register your new `SetupKwargsRequest ` with a [`UnionRule`](../the-rules-api/union-rules-advanced.mdx) so that Pants knows your implementation exists: +Then, register your new `SetupKwargsRequest ` with a [`UnionRule`](doc:rules-api-unions) so that Pants knows your implementation exists: ```python from pants.engine.rules import collect_rules @@ -67,47 +66,46 @@ def rules(): ] ``` -:::note Consider defining custom `python_distribution` target types -If you don't want to always use a single custom implementation, an effective approach could be to create custom `python_distribution` target types so that your users decide which implementation they want to use in their BUILD files. - -For example, a user could do this: - -```python -pants_python_distribution( -name="my-dist", -dependencies=[...], -provides=python_artifact(...) -) - -pants_contrib_python_distribution( -name="my-dist", -dependencies=[...], -provides=python_artifact(...) -) -``` - -To support this workflow, [create new target types](../the-target-api/creating-new-targets.mdx). - -```python -class PantsPythonDistribution(Target): -alias = "pants_python_distribution" -core_fields = PythonDistribution.core_fields - -class PantsContribPythonDistribution(Target): -alias = "pants_contrib_python_distribution" -core_fields = PythonDistribution.core_fields -``` - -Then, for each `SetupKwargsRequest` subclass, check which target type was used: - -```python -class PantsSetupKwargsRequest(SetupKwargsRequest): -@classmethod -def is_applicable(cls, target: Target) -> bool: -return isinstance(target, PantsPythonDistribution) -``` - -::: +> 📘 Consider defining custom `python_distribution` target types +> +> If you don't want to always use a single custom implementation, an effective approach could be to create custom `python_distribution` target types so that your users decide which implementation they want to use in their BUILD files. +> +> For example, a user could do this: +> +> ```python +> pants_python_distribution( +> name="my-dist", +> dependencies=[...], +> provides=python_artifact(...) +> ) +> +> pants_contrib_python_distribution( +> name="my-dist", +> dependencies=[...], +> provides=python_artifact(...) +> ) +> ``` +> +> To support this workflow, [create new target types](doc:target-api-new-targets). +> +> ```python +> class PantsPythonDistribution(Target): +> alias = "pants_python_distribution" +> core_fields = PythonDistribution.core_fields +> +> class PantsContribPythonDistribution(Target): +> alias = "pants_contrib_python_distribution" +> core_fields = PythonDistribution.core_fields +> ``` +> +> Then, for each `SetupKwargsRequest` subclass, check which target type was used: +> +> ```python +> class PantsSetupKwargsRequest(SetupKwargsRequest): +> @classmethod +> def is_applicable(cls, target: Target) -> bool: +> return isinstance(target, PantsPythonDistribution) +> ``` 2. Create a rule with your logic @@ -132,7 +130,7 @@ async def setup_kwargs_plugin(request: CustomSetupKwargsRequest) -> SetupKwargs: Update your plugin's `register.py` to activate this file's rules. -```python title="pants-plugins/python_plugins/register.py" +```python pants-plugins/python_plugins/register.py from python_plugins import custom_python_artifact def rules(): @@ -141,7 +139,7 @@ def rules(): Then, run `pants package path/to:python_distribution` and inspect the generated `setup.py`to confirm that your plugin worked correctly. -Often, you will want to read from a file in your project to set kwargs like `version` or `long_description`. Use `await Get(DigestContents, PathGlobs)` to do this (see [File system](../the-rules-api/file-system.mdx)): +Often, you will want to read from a file in your project to set kwargs like `version` or `long_description`. Use `await Get(DigestContents, PathGlobs)` to do this (see [File system](doc:rules-api-file-system)): ```python from pants.backend.python.util_rules.package_dists import SetupKwargs @@ -218,6 +216,6 @@ async def setup_kwargs_plugin(request: CustomSetupKwargsRequest) -> SetupKwargs: Refer to these guides for additional things you may want to do in your plugin: -- [Read from options](../the-rules-api/options-and-subsystems.mdx). Also see [here](https://github.com/pantsbuild/pants/blob/master/pants-plugins/internal_plugins/releases/register.py) for an example. -- [Read values from the target](../the-rules-api/rules-and-the-target-api.mdx) using the Target API. -- [Run a `Process`](../the-rules-api/processes.mdx), such as `git`. Also see [Installing tools](../the-rules-api/installing-tools.mdx). +- [Read from options](doc:rules-api-subsystems). Also see [here](https://github.com/pantsbuild/pants/blob/master/pants-plugins/internal_plugins/releases/register.py) for an example. +- [Read values from the target](doc:rules-api-and-target-api) using the Target API. +- [Run a `Process`](doc:rules-api-process), such as `git`. Also see [Installing tools](doc:rules-api-installing-tools). diff --git a/versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/run-tests.mdx b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-test-goal.md similarity index 88% rename from versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/run-tests.mdx rename to versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-test-goal.md index 9372acb87..06c542494 100644 --- a/versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/run-tests.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-test-goal.md @@ -1,10 +1,9 @@ --- - title: Run tests - sidebar_position: 7 ---- - -How to add a new test runner to the `test` goal. - +title: "Run tests" +slug: "plugins-test-goal" +excerpt: "How to add a new test runner to the `test` goal." +hidden: false +createdAt: "2020-07-23T23:20:54.816Z" --- 1. Set up a test target type @@ -15,7 +14,7 @@ Usually, you will want to add a "test" target type for your language, such as `s When creating a test target, you should usually subclass `SingleSourceField`. You may also want to create `TimeoutField` (which should subclass `IntField`) and a `SkipField` (which should subclass `BoolField`). -See [Creating new targets](../the-target-api/creating-new-targets.mdx) for a guide on how to define new target types. +See [Creating new targets](doc:target-api-new-targets) for a guide on how to define new target types. ```python from pants.engine.target import ( @@ -95,7 +94,7 @@ class ExampleTestSubsystem(Subsystem): skip = SkipOption("test") ``` -See [Options and subsystems](../the-rules-api/options-and-subsystems.mdx) for more information about defining new subsystems. +See [Options and subsystems](doc:rules-api-subsystems) for more information about defining new subsystems. 4. Set up a subclass of `TestRequest` @@ -141,10 +140,9 @@ This will prevent generation of the "default" partitioning rule, allowing you to --- -:::caution This step is optional -Defining a partitioning rule is only required if you overrode the `partitioner_type` field in your `TestRequest` subclass to be `PartitionerType.CUSTOM`. Skip to the next section if your subclass is using the default `partitioner_type`. -::: -Pants can run tests from multiple targets/files within the same process (for example, to share expensive setup/teardown logic across multiple files). Since it's not always safe/possible to batch test files together, each plugin defining a `test` implementation is expected to define a `@rule` for splitting field-sets into appropriate batches: +> 🚧 This step is optional +> Defining a partitioning rule is only required if you overrode the `partitioner_type` field in your `TestRequest` subclass to be `PartitionerType.CUSTOM`. Skip to the next section if your subclass is using the default `partitioner_type`. +> Pants can run tests from multiple targets/files within the same process (for example, to share expensive setup/teardown logic across multiple files). Since it's not always safe/possible to batch test files together, each plugin defining a `test` implementation is expected to define a `@rule` for splitting field-sets into appropriate batches: ```python from pants.core.goals.test import Partitions diff --git a/versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/add-a-typechecker.mdx b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-typecheck-goal.md similarity index 71% rename from versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/add-a-typechecker.mdx rename to versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-typecheck-goal.md index 26df80e04..f41730c41 100644 --- a/versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/add-a-typechecker.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/common-plugin-tasks/plugins-typecheck-goal.md @@ -1,13 +1,12 @@ --- - title: Add a typechecker - sidebar_position: 2 +title: "Add a typechecker" +slug: "plugins-typecheck-goal" +excerpt: "How to add a new typechecker to the `check` goal." +hidden: false +createdAt: "2020-08-19T21:55:10.667Z" --- -How to add a new typechecker to the `check` goal. - ---- - -Adding a typechecker is almost identical to [adding a linter](./add-a-linter.mdx), except for these differences: +Adding a typechecker is almost identical to [adding a linter](doc:plugins-lint-goal), except for these differences: 1. Subclass `CheckRequest` from `pants.core.goals.check`, rather than `LintTargetsRequest`. 2. Register a `UnionRule(CheckRequest, CustomCheckRequest)` in your `rules()` instead of unpacking `.rules(...)`. @@ -50,4 +49,4 @@ def rules(): return [*collect_rules(), UnionRule(CheckRequest, MyPyRequest)] ``` -Refer to [Add a linter](./add-a-linter.mdx). See [`pants/backend/python/typecheck/mypy/rules.py`](https://github.com/pantsbuild/pants/blob/master/src/python/pants/backend/python/typecheck/mypy/rules.py) for an example of MyPy. +Refer to [Add a linter](doc:plugins-lint-goal). See [`pants/backend/python/typecheck/mypy/rules.py`](https://github.com/pantsbuild/pants/blob/master/src/python/pants/backend/python/typecheck/mypy/rules.py) for an example of MyPy. diff --git a/versioned_docs/version-2.18/docs/writing-plugins/macros.mdx b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/macros.md similarity index 79% rename from versioned_docs/version-2.18/docs/writing-plugins/macros.mdx rename to versioned_docs/version-2.18/docs/markdown/Writing Plugins/macros.md index 26abda74b..e5caee0c9 100644 --- a/versioned_docs/version-2.18/docs/writing-plugins/macros.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/macros.md @@ -1,10 +1,9 @@ --- - title: Macros - sidebar_position: 1 ---- - -Reducing boilerplate in BUILD files. - +title: "Macros" +slug: "macros" +excerpt: "Reducing boilerplate in BUILD files." +hidden: false +createdAt: "2020-05-08T04:15:04.126Z" --- ## When to use a macro @@ -13,18 +12,18 @@ Macros are useful to reduce boilerplate in BUILD files. For example, if you keep However, also consider that introducing new symbols to BUILD files adds some indirection to your codebase, such as making it harder to follow along with the Pants docs. As with any tool, macros should be used judiciously. -Often, you can instead use the [`parametrize`](../using-pants/key-concepts/targets-and-build-files.mdx) mechanism: +Often, you can instead use the [`parametrize`](doc:targets) mechanism: -```python title="BUILD" +```python BUILD shell_tests( name="tests", shell=parametrize("bash", "zsh"), ) ``` -If you instead want to add support for a new language, or do something more complex than a macro allows, create a new [target type](./the-target-api/creating-new-targets.mdx). +If you instead want to add support for a new language, or do something more complex than a macro allows, create a new [target type](doc:target-api-new-targets). -If you are already using a target type, but need to store additional metadata for your plugin, [add a new field to the target type](./the-target-api/extending-existing-targets.mdx). +If you are already using a target type, but need to store additional metadata for your plugin, [add a new field to the target type](doc:target-api-extending-targets). ## How to add a macro @@ -34,7 +33,7 @@ Macros cannot import other modules, just like BUILD files cannot have import sta To define a new macro, add a function with `def` and the name of the new symbol. Usually, the last line of the macro will create a new target, like this: -```python title="pants-plugins/macros.py" +```python pants-plugins/macros.py def python2_sources(**kwargs): kwargs["interpreter_constraints"] = ["==2.7.*"] python_sources(**kwargs) @@ -46,14 +45,14 @@ def python3_sources(**kwargs): Then, add this file to the option `[GLOBAL].build_file_prelude_globs`: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] build_file_prelude_globs = ["pants-plugins/macros.py"] ``` Now, in BUILD files, you can use the new macros: -```python title="project/BUILD" +```python project/BUILD python2_sources( name="app_py2", sources=["app_py2.py"], @@ -65,9 +64,9 @@ python3_sources( ) ``` -A macro can create multiple targets—although often it's better to use [`parametrize`](../using-pants/key-concepts/targets-and-build-files.mdx): +A macro can create multiple targets—although often it's better to use [`parametrize`](doc:targets): -```python title="pants-plugins/macros.py" +```python pants-plugins/macros.py def python23_tests(name, **kwargs): kwargs.pop("interpreter_constraints", None) @@ -86,7 +85,7 @@ def python23_tests(name, **kwargs): A macro can perform validation: -```python title="pants-plugins/macros.py" +```python pants-plugins/macros.py def custom_python_sources(**kwargs): if "2.7" in kwargs.get("interpreter_constraints", ""): raise ValueError("Python 2.7 is banned!") @@ -95,14 +94,14 @@ def custom_python_sources(**kwargs): A macro can take new parameters to generate the target dynamically. For example: -```python title="pants-plugins/macros.py" +```python pants-plugins/macros.py def custom_python_sources(has_type_hints: bool = True, **kwargs): if has_type_hints: kwargs["tags"] = kwargs.get("tags", []) + ["type_checked"] python_sources(**kwargs) ``` -```python title="project/BUILD" +```python project/BUILD custom_python_sources( has_type_hints=False, ) diff --git a/versioned_docs/version-2.18/docs/writing-plugins/plugins-overview.mdx b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/plugins-overview.md similarity index 68% rename from versioned_docs/version-2.18/docs/writing-plugins/plugins-overview.mdx rename to versioned_docs/version-2.18/docs/markdown/Writing Plugins/plugins-overview.md index 385b59ffe..4935ba135 100644 --- a/versioned_docs/version-2.18/docs/writing-plugins/plugins-overview.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/plugins-overview.md @@ -1,10 +1,9 @@ --- - title: Plugins overview - sidebar_position: 0 ---- - -An intro to the Pants engine's core concepts. - +title: "Plugins overview" +slug: "plugins-overview" +excerpt: "An intro to the Pants engine's core concepts." +hidden: false +createdAt: "2020-05-07T22:38:39.922Z" --- Pants is designed for extensibility: you can extend Pants by writing custom _plugins_, using a standard Plugin API. In fact, all of Pants's built-in functionality uses the same API! @@ -25,18 +24,18 @@ Thanks to Pants's execution engine, your plugins will automatically bring you th - Concurrent execution. - Remote execution. -:::danger The Plugin API is not yet stable -While we'll try our best to limit changes, the Plugin API does not yet follow the [Deprecation Policy](../releases/deprecation-policy.mdx). Components of the API may change between minor versions—e.g. 2.7 to 2.8—without a deprecation. - -We will document changes at [Plugin upgrade guide](./common-plugin-tasks/plugin-upgrade-guide.mdx). -::: +> ❗️ The Plugin API is not yet stable +> +> While we'll try our best to limit changes, the Plugin API does not yet follow the [Deprecation Policy](doc:deprecation-policy). Components of the API may change between minor versions—e.g. 2.7 to 2.8—without a deprecation. +> +> We will document changes at [Plugin upgrade guide](doc:plugin-upgrade-guide). ## Core concepts The plugin API is split into two main interfaces: -1. [The Target API](./the-target-api/concepts.mdx): a declarative interface for creating new target types and extending existing targets. -2. [The Rules API](./the-rules-api/concepts.mdx): where you define your logic and model each step of your build. +1. [The Target API](doc:target-api-concepts): a declarative interface for creating new target types and extending existing targets. +2. [The Rules API](doc:rules-api-concepts): where you define your logic and model each step of your build. Plugins are written in typed Python 3 code. You write your logic in Python, and then Pants will run your plugin in the Rust engine. @@ -53,7 +52,7 @@ It's often convenient to use in-repo plugins, particularly when the plugin is on You consume published plugins by adding them to the `plugins` option: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] plugins = ["my.plugin==2.3.4"] ``` @@ -64,14 +63,14 @@ Conventionally, in-repo plugins live in a folder called `pants-plugins`, althoug You must specify the path to your plugin's top-level folder using the `pythonpath` option: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] pythonpath = ["%(buildroot)s/pants-plugins"] ``` -:::caution In-repo dependencies -In-repo plugin code should not depend on other in-repo code outside of the `pants-plugins` folder. The `pants-plugins` folder helps isolate plugins from regular code, which is necessary due to how Pants's startup sequence works. -::: +> 🚧 In-repo dependencies +> +> In-repo plugin code should not depend on other in-repo code outside of the `pants-plugins` folder. The `pants-plugins` folder helps isolate plugins from regular code, which is necessary due to how Pants's startup sequence works. You can depend on third-party dependencies in your in-repo plugin by adding a `requirements.txt` file next to the plugin `register.py` module: @@ -82,7 +81,7 @@ ansicolors==1.18.0 Or, although less recommended, you can add them to the `plugins` option: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] plugins = ["ansicolors==1.18.0"] ``` @@ -91,11 +90,11 @@ However, be careful adding third-party dependencies that perform side-effects li ## Enabling Plugins with `register.py` -A Pants [_backend_](../using-pants/key-concepts/backends.mdx) is a Python package that implements some required functionality and uses hooks to register itself with Pants. +A Pants [_backend_](doc:enabling-backends) is a Python package that implements some required functionality and uses hooks to register itself with Pants. A plugin will contain one or more backends, with the hooks for each one defined in a file called `register.py`. To enable a custom plugin you add its backends to your `backend_packages` configuration: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] pythonpath = ["%(buildroot)s/pants-plugins"] backend_packages.add = [ @@ -106,7 +105,7 @@ backend_packages.add = [ ] ``` -```python title="pants-plugins/plugin1/register.py" +```python pants-plugins/plugin1/register.py from plugin1.lib import CustomTargetType, rule1, rule2 @@ -120,11 +119,11 @@ def target_types(): ## Building in-repo plugins with Pants -Because plugin code is written in Python, you can optionally use Pants's [Python backend](../python/python-overview/enabling-python-support.mdx) to build your plugin code. For example, you can use Pants to lint, format, and test your plugin code. This is not required, but it's usually a good idea to improve the quality of your plugin. +Because plugin code is written in Python, you can optionally use Pants's [Python backend](doc:python-backend) to build your plugin code. For example, you can use Pants to lint, format, and test your plugin code. This is not required, but it's usually a good idea to improve the quality of your plugin. -To do so, activate the [Python backend](../python/python-overview/index.mdx) and `plugin_development` backend, which adds the `pants_requirements` target type. Also add your `pants-plugins` directory as a source root: +To do so, activate the [Python backend](doc:python) and `plugin_development` backend, which adds the `pants_requirements` target type. Also add your `pants-plugins` directory as a source root: -```toml title="pants.toml" +```toml pants.toml [GLOBAL] backend_packages = [ "pants.backend.python", @@ -140,17 +139,17 @@ root_patterns = [ Then, add the `pants_requirements` target generator. -```python title="pants-plugins/BUILD" +```python pants-plugins/BUILD pants_requirements(name="pants") ``` -This will generate [`python_requirement` targets](../python/python-overview/third-party-dependencies.mdx) for the `pantsbuild.pants` and `pantsbuild.pants.testutil` distributions, so that when you build your code—like running MyPy or Pytest on your plugin—the dependency on Pants itself is properly resolved. This isn't used for your plugin to work, only for Pants goals like `test` and `check` to understand how to resolve the dependency. +This will generate [`python_requirement` targets](doc:python-third-party-dependencies) for the `pantsbuild.pants` and `pantsbuild.pants.testutil` distributions, so that when you build your code—like running MyPy or Pytest on your plugin—the dependency on Pants itself is properly resolved. This isn't used for your plugin to work, only for Pants goals like `test` and `check` to understand how to resolve the dependency. -The target generator dynamically sets the version downloaded to match your current `pants_version` set in `pants.toml`. Pants's [dependency inference](../using-pants/key-concepts/targets-and-build-files.mdx) understands imports of the `pants` module and will automatically add dependencies on the generated `python_requirement` targets where relevant. +The target generator dynamically sets the version downloaded to match your current `pants_version` set in `pants.toml`. Pants's [dependency inference](doc:targets) understands imports of the `pants` module and will automatically add dependencies on the generated `python_requirement` targets where relevant. -If you do not want your plugin requirements to mix with your normal requirements, it's often a good idea to set up a dedicated "resolve" (lockfile) for your plugins. See [Third-party dependencies](../python/python-overview/third-party-dependencies.mdx) for more information. For example: +If you do not want your plugin requirements to mix with your normal requirements, it's often a good idea to set up a dedicated "resolve" (lockfile) for your plugins. See [Third-party dependencies](doc:python-third-party-dependencies) for more information. For example: -```python title="pants.toml" +```python pants.toml [python] enable_resolves = true # The repository's own constraints. @@ -181,7 +180,7 @@ As mentioned above: the plugin API is still unstable, and so supporting multiple ### Thirdparty dependencies -When publishing a plugin, ensure that any [`python_requirement` targets](../python/python-overview/third-party-dependencies.mdx) that the plugin depends on either: +When publishing a plugin, ensure that any [`python_requirement` targets](doc:python-third-party-dependencies) that the plugin depends on either: 1. Do not overlap with [the requirements of Pants itself](https://github.com/pantsbuild/pants/blob/aa0932a54e8c1b6ed6f3be8e084a11b2f6c808e5/3rdparty/python/requirements.txt), or 2. Use range requirements that are compatible with Pants' own requirements. diff --git a/versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api.md b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api.md new file mode 100644 index 000000000..dc82e60bf --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api.md @@ -0,0 +1,19 @@ +--- +title: "The Rules API" +slug: "rules-api" +excerpt: "Adding logic to your plugin." +hidden: false +createdAt: "2020-05-07T22:38:41.380Z" +--- + +- [Concepts](doc:rules-api-concepts) +- [Goal rules](doc:rules-api-goal-rules) +- [Options and subsystems](doc:rules-api-subsystems) +- [File system](doc:rules-api-file-system) +- [Processes](doc:rules-api-process) +- [Installing tools](doc:rules-api-installing-tools) +- [Rules and the Target API](doc:rules-api-and-target-api) +- [Union rules (advanced)](doc:rules-api-unions) +- [Logging and dynamic output](doc:rules-api-logging) +- [Testing rules](doc:rules-api-testing) +- [Tips and debugging](doc:rules-api-tips) diff --git a/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/rules-and-the-target-api.mdx b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-and-target-api.md similarity index 91% rename from versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/rules-and-the-target-api.mdx rename to versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-and-target-api.md index 96bb8467b..ecd70bb6d 100644 --- a/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/rules-and-the-target-api.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-and-target-api.md @@ -1,19 +1,18 @@ --- - title: Rules and the Target API - sidebar_position: 6 +title: "Rules and the Target API" +slug: "rules-api-and-target-api" +excerpt: "How to use the Target API in rules." +hidden: false +createdAt: "2020-05-07T22:38:40.217Z" --- -How to use the Target API in rules. - ---- - -Start by reading the [Concepts](../the-target-api/concepts.mdx) of the Target API. +Start by reading the [Concepts](doc:target-api-concepts) of the Target API. Note that the engine does not have special knowledge about `Target`s and `Field`s. To the engine, these are like any other types you'd use, and the `@rule`s to work with targets are like any other `@rule`. ## How to read values from a `Target` -As explained in [Concepts](../the-target-api/concepts.mdx), a `Target` is an addressable combination of fields, where each field gives some metadata about your code. +As explained in [Concepts](doc:target-api-concepts), a `Target` is an addressable combination of fields, where each field gives some metadata about your code. To read a particular `Field` for a `Target`, look it up with the `Field`'s class in square brackets, like you would look up a normal Python dictionary: @@ -51,7 +50,7 @@ if target.has_fields([PythonSourceField, PythonTestsTimeoutField]): ### `Field` subclasses -As explained in [Concepts](../the-target-api/concepts.mdx), subclassing `Field`s is key to how the Target API works. +As explained in [Concepts](doc:target-api-concepts), subclassing `Field`s is key to how the Target API works. The `Target` methods `[MyField]`, `.has_field()` and `.get()` understand when a `Field` is subclassed, as follows: @@ -89,7 +88,7 @@ You can use `str(address)` or `address.spec` to get the normalized string repres How do you get `Target`s in the first place in your plugin? -As explained in [Goal rules](./goal-rules.mdx), to get all the targets specified on the command line by a user, you can request the type `Targets` as a parameter to your `@rule` or `@goal_rule`. From there, you can optionally filter out the targets you want, such as by using `target.has_field()`. +As explained in [Goal rules](doc:rules-api-goal-rules), to get all the targets specified on the command line by a user, you can request the type `Targets` as a parameter to your `@rule` or `@goal_rule`. From there, you can optionally filter out the targets you want, such as by using `target.has_field()`. ```python from pants.engine.target import Targets @@ -113,7 +112,7 @@ async def example(targets: AllTargets) -> Foo: ... ``` -For most [Common plugin tasks](../common-plugin-tasks/index.mdx), like adding a linter, Pants will have already filtered out the relevant targets for you and will pass you only the targets you care about. +For most [Common plugin tasks](doc:common-plugin-tasks), like adding a linter, Pants will have already filtered out the relevant targets for you and will pass you only the targets you care about. Given targets, you can find their direct and transitive dependencies. See the below section "The Dependencies field". @@ -141,7 +140,7 @@ await Get( ) ``` -Finally, you can look up an `Address` given a raw address string, using `AddressInput`. This is often useful to allow a user to refer to targets in [Options](./options-and-subsystems.mdx) and in `Field`s in your `Target`. For example, this mechanism is how the `dependencies` field works. This will error if the address does not exist. +Finally, you can look up an `Address` given a raw address string, using `AddressInput`. This is often useful to allow a user to refer to targets in [Options](doc:rules-api-subsystems) and in `Field`s in your `Target`. For example, this mechanism is how the `dependencies` field works. This will error if the address does not exist. ```python from pants.engine.addresses import AddressInput, Address @@ -274,7 +273,7 @@ async def demo(...) -> Foo: `HydrateSourcesRequest` expects a `SourcesField` object. This can be a subclass, such as `PythonSourceField` or `GoPackageSourcesField`. -`HydratedSources` has a field called `snapshot: Snapshot`, which allows you to see what files were resolved by calling `hydrated_sources.snapshot.files` and to use the resulting [`Digest`](./file-system.mdx) in your plugin with `hydrated_sources.snapshot.digest`. +`HydratedSources` has a field called `snapshot: Snapshot`, which allows you to see what files were resolved by calling `hydrated_sources.snapshot.files` and to use the resulting [`Digest`](doc:rules-api-file-system) in your plugin with `hydrated_sources.snapshot.digest`. Typically, you will want to use the higher-level `Get(SourceFiles, SourceFilesRequest)` utility instead of `Get(HydrateSources, HydrateSourcesRequest)`. This allows you to ergonomically hydrate multiple `SourcesField`s objects in the same call, resulting in a single merged snapshot of all the input source fields. @@ -365,9 +364,9 @@ You can also use `Get(StrippedSourceFiles, SourceFilesRequest)`, and the engine A `FieldSet` is a way to specify which Fields your rule needs to use in a typed way that is understood by the engine. -Normally, your rule should simply use `tgt.get()` and `tgt.has_field()` instead of a `FieldSet`. However, for several of the [Common plugin tasks](../common-plugin-tasks/index.mdx), you will instead need to create a `FieldSet` so that the combination of fields you use can be represented by a type understood by the engine. +Normally, your rule should simply use `tgt.get()` and `tgt.has_field()` instead of a `FieldSet`. However, for several of the [Common plugin tasks](doc:common-plugin-tasks), you will instead need to create a `FieldSet` so that the combination of fields you use can be represented by a type understood by the engine. -To create a `FieldSet`, create a new dataclass with `@dataclass(frozen=True)`. You will sometimes directly subclass `FieldSet`, but will often subclass something like `BinaryFieldSet` or `TestFieldSet`. Refer to the instructions in [Common plugin tasks](../common-plugin-tasks/index.mdx). +To create a `FieldSet`, create a new dataclass with `@dataclass(frozen=True)`. You will sometimes directly subclass `FieldSet`, but will often subclass something like `BinaryFieldSet` or `TestFieldSet`. Refer to the instructions in [Common plugin tasks](doc:common-plugin-tasks). List every `Field` that your plugin will use as a field of your dataclass. The type hints you specify will be used by Pants to identify what `Field`s to use, e.g. `PythonSourceField` or `Dependencies`. diff --git a/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/concepts.mdx b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-concepts.md similarity index 78% rename from versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/concepts.mdx rename to versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-concepts.md index 8bc0202c6..6d30832cc 100644 --- a/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/concepts.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-concepts.md @@ -1,10 +1,9 @@ --- - title: Concepts - sidebar_position: 0 ---- - -The core concepts of the Rules API. - +title: "Concepts" +slug: "rules-api-concepts" +excerpt: "The core concepts of the Rules API." +hidden: false +createdAt: "2020-05-07T22:38:44.027Z" --- ## Rules @@ -55,7 +54,7 @@ async def list_targets( ![](https://files.readme.io/7d5163f-Rule_graph_example-2.png) -At the top of the graph will always be the goals that Pants runs, such as `list` and `test`. These goals are the entry-point into the graph. When a user runs `pants list`, the engine looks for a special type of rule, called a `@goal_rule`, that implements the respective goal. From there, the `@goal_rule` might request certain types like `Console` and `Addresses`, which will cause other helper `@rule`s to be used. To view the graph for a goal, see: [Visualize the rule graph](./tips-and-debugging.mdx#debugging-visualize-the-rule-graph). +At the top of the graph will always be the goals that Pants runs, such as `list` and `test`. These goals are the entry-point into the graph. When a user runs `pants list`, the engine looks for a special type of rule, called a `@goal_rule`, that implements the respective goal. From there, the `@goal_rule` might request certain types like `Console` and `Addresses`, which will cause other helper `@rule`s to be used. To view the graph for a goal, see: [Visualize the rule graph](doc:rules-api-tips#debugging-visualize-the-rule-graph). The graph also has several "roots", such as `Console`, `Specs`, and `OptionsBootstrapper` in this example. Those roots are injected into the graph as the initial input, whereas all other types are derived from those roots. @@ -63,11 +62,11 @@ The engine will find a path through the rules to satisfy the types that you are If the engine cannot find a path, or if there is ambiguity due to multiple possible paths, the rule graph will fail to compile. This ensures that the rule graph is always unambiguous. -:::caution Rule graph errors can be confusing -We know that rule graph errors can be intimidating and confusing to understand. We are planning to improve them. In the meantime, please do not hesitate to ask for help in the #plugins channel on [Slack](/community/getting-help). - -Also see [Tips and debugging](./tips-and-debugging.mdx#debugging-rule-graph-issues) for some tips for how to approach these errors. -::: +> 🚧 Rule graph errors can be confusing +> +> We know that rule graph errors can be intimidating and confusing to understand. We are planning to improve them. In the meantime, please do not hesitate to ask for help in the #plugins channel on [Slack](doc:getting-help). +> +> Also see [Tips and debugging](doc:rules-api-tips#debugging-rule-graph-issues) for some tips for how to approach these errors. ## `await Get` - awaiting results in a rule body @@ -118,30 +117,29 @@ async def call_fibonacci(...) -> Foo: ... ``` -:::note `Get` constructor shorthand -The verbose constructor for a `Get` object takes three parameters: `Get(OutputType, InputType, input)`, where `OutputType` and `InputType` are both types, and `input` is an instance of `InputType`. - -Instead, you can use `Get(OutputType, InputType(constructor arguments))`. These two are equivalent: - -- `Get(ProcessResult, Process, Process(["/bin/echo"]))` -- `Get(ProcessResult, Process(["/bin/echo"]))` - -However, the below is invalid because Pants's AST parser will not be able to see what the `InputType` is: - -```python -process = Process(["/bin/echo"]) -Get(ProcessResult, process) -``` - -::: - -:::note Why only one input? -Currently, you can only give a single input. It is not possible to do something like `Get(OutputType, InputType1(...), InputType2(...))`. - -Instead, it's common for rules to create a "Request" data class, such as `PexRequest` or `SourceFilesRequest`. This request centralizes all the data it needs to operate into one data structure, which allows for call sites to say `await Get(SourceFiles, SourceFilesRequest, my_request)`, for example. - -See [https://github.com/pantsbuild/pants/issues/7490](https://github.com/pantsbuild/pants/issues/7490) for the tracking issue. -::: +> 📘 `Get` constructor shorthand +> +> The verbose constructor for a `Get` object takes three parameters: `Get(OutputType, InputType, input)`, where `OutputType` and `InputType` are both types, and `input` is an instance of `InputType`. +> +> Instead, you can use `Get(OutputType, InputType(constructor arguments))`. These two are equivalent: +> +> - `Get(ProcessResult, Process, Process(["/bin/echo"]))` +> - `Get(ProcessResult, Process(["/bin/echo"]))` +> +> However, the below is invalid because Pants's AST parser will not be able to see what the `InputType` is: +> +> ```python +> process = Process(["/bin/echo"]) +> Get(ProcessResult, process) +> ``` + +> 📘 Why only one input? +> +> Currently, you can only give a single input. It is not possible to do something like `Get(OutputType, InputType1(...), InputType2(...))`. +> +> Instead, it's common for rules to create a "Request" data class, such as `PexRequest` or `SourceFilesRequest`. This request centralizes all the data it needs to operate into one data structure, which allows for call sites to say `await Get(SourceFiles, SourceFilesRequest, my_request)`, for example. +> +> See for the tracking issue. ### `MultiGet` for concurrency @@ -221,30 +219,29 @@ async def demo(name: Name) -> Foo: ... ``` -:::caution Don't use `NamedTuple` -`NamedTuple` behaves similarly to dataclasses, but it should not be used because the `__eq__()` implementation uses structural equality, rather than the nominal equality used by the engine. -::: - -:::note Custom dataclass `__init__()` -Sometimes, you may want to have a custom `__init__()` constructor. For example, you may want your dataclass to store a `tuple[str, ...]`, but for your constructor to take the more flexible `Iterable[str]` which you then convert to an immutable tuple sequence. - -The Python docs suggest using `object.__setattr__` to set attributes in your `__init__` for frozen dataclasses. - -```python -from __future__ import annotations - -from dataclasses import dataclass -from typing import Iterable - -@dataclass(frozen=True) -class Example: -args: tuple[str, ...] - -def __init__(self, args: Iterable[str]) -> None: -object.__setattr__(self, "args", tuple(args)) -``` - -::: +> 🚧 Don't use `NamedTuple` +> +> `NamedTuple` behaves similarly to dataclasses, but it should not be used because the `__eq__()` implementation uses structural equality, rather than the nominal equality used by the engine. + +> 📘 Custom dataclass `__init__()` +> +> Sometimes, you may want to have a custom `__init__()` constructor. For example, you may want your dataclass to store a `tuple[str, ...]`, but for your constructor to take the more flexible `Iterable[str]` which you then convert to an immutable tuple sequence. +> +> The Python docs suggest using `object.__setattr__` to set attributes in your `__init__` for frozen dataclasses. +> +> ```python +> from __future__ import annotations +> +> from dataclasses import dataclass +> from typing import Iterable +> +> @dataclass(frozen=True) +> class Example: +> args: tuple[str, ...] +> +> def __init__(self, args: Iterable[str]) -> None: +> object.__setattr__(self, "args", tuple(args)) +> ``` ### `Collection`: a newtype for `tuple` @@ -293,23 +290,23 @@ You can optionally set the class property `sort_input`, which will often result ## Registering rules in `register.py` -To register a new rule, use the `rules()` hook in your [`register.py` file](../plugins-overview.mdx). This function expects a list of functions annotated with `@rule`. +To register a new rule, use the `rules()` hook in your [`register.py` file](doc:plugins-overview). This function expects a list of functions annotated with `@rule`. -```python title="pants-plugins/plugin1/register.py" +```python pants-plugins/plugin1/register.py def rules(): return [rule1, rule2] ``` Conventionally, each file will have a function called `rules()` and then `register.py` will re-export them. This is meant to make imports more organized. Within each file, you can use `collect_rules()` to automatically find the rules in the file. -```python title="pants-plugins/fortran/register.py" +```python pants-plugins/fortran/register.py from fortran import fmt, test def rules(): return [*fmt.rules(), *test.rules()] ``` -```python title="pants-plugins/fortran/fmt.py" +```python pants-plugins/fortran/fmt.py from pants.engine.rules import collect_rules, rule @rule @@ -324,7 +321,7 @@ def rules(): return collect_rules() ``` -```python title="pants-plugins/fortran/test.py" +```python pants-plugins/fortran/test.py from pants.engine.rules import collect_rules, rule @rule diff --git a/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/file-system.mdx b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-file-system.md similarity index 86% rename from versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/file-system.mdx rename to versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-file-system.md index 3278d214c..cd0892745 100644 --- a/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/file-system.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-file-system.md @@ -1,19 +1,18 @@ --- - title: File system - sidebar_position: 3 ---- - -How to safely interact with the file system in your plugin. - +title: "File system" +slug: "rules-api-file-system" +excerpt: "How to safely interact with the file system in your plugin." +hidden: false +createdAt: "2020-07-01T04:40:26.783Z" --- It is not safe to use functions like `open` or the non-pure operations of `pathlib.Path` like you normally might: this will break caching because they do not hook up to Pants's file watcher. Instead, Pants has several mechanisms to work with the file system in a safe and concurrent way. -:::caution Missing certain file operations? -If it would help you to have a certain file operation, please let us know by either opening a new [GitHub issue](https://github.com/pantsbuild/pants/issues) or by messaging us on [Slack](/community/members) in the #plugins room. -::: +> 🚧 Missing certain file operations? +> +> If it would help you to have a certain file operation, please let us know by either opening a new [GitHub issue](https://github.com/pantsbuild/pants/issues) or by messaging us on [Slack](doc:the-pants-community) in the #plugins room. ## Core abstractions: `Digest` and `Snapshot` @@ -152,18 +151,16 @@ async def demo(...) -> Foo: The result will be a sequence of `FileContent` objects, which each have a property `path: str` and a property `content: bytes`. You may want to call `content.decode()` to convert to `str`. -:::caution You may not need `DigestContents` -Only use `DigestContents` if you need to read and operate on the content of files directly in your rule. - -- If you are running a `Process`, you only need to pass the `Digest` as input and that process will be able to read all the files in its environment. If you only need a list of files included in the digest, use `Get(Snapshot, Digest)`. +> 🚧 You may not need `DigestContents` +> +> Only use `DigestContents` if you need to read and operate on the content of files directly in your rule. +> +> - If you are running a `Process`, you only need to pass the `Digest` as input and that process will be able to read all the files in its environment. If you only need a list of files included in the digest, use `Get(Snapshot, Digest)`. +> - If you just need to manipulate the directory structure of a `Digest`, such as renaming files, use `DigestEntries` with `CreateDigest` or use `AddPrefix` and `RemovePrefix`. These avoid reading the file content into memory. -- If you just need to manipulate the directory structure of a `Digest`, such as renaming files, use `DigestEntries` with `CreateDigest` or use `AddPrefix` and `RemovePrefix`. These avoid reading the file content into memory. - -::: - -:::caution Does not handle empty directories in a `Digest` -`DigestContents` does not have a way to represent empty directories in a `Digest` since it is only a sequence of `FileContent` objects. That is, passing the `FileContent` objects to `CreateDigest` will not result in the original `Digest` if there were empty directories in that original `Digest`. Use `DigestEntries` instead if your rule needs to handle empty directories in a `Digest`. -::: +> 🚧 Does not handle empty directories in a `Digest` +> +> `DigestContents` does not have a way to represent empty directories in a `Digest` since it is only a sequence of `FileContent` objects. That is, passing the `FileContent` objects to `CreateDigest` will not result in the original `Digest` if there were empty directories in that original `Digest`. Use `DigestEntries` instead if your rule needs to handle empty directories in a `Digest`. ## `DigestEntries`: light-weight handles to files @@ -302,10 +299,10 @@ async def demo(...) -> Foo: `DownloadFile` expects a `url: str` parameter pointing to a stable URL for the asset, along with an `expected_digest: FileDigest` parameter. A `FileDigest` is like a normal `Digest`, but represents a single file, rather than a set of files/directories. To determine the `expected_digest`, manually download the file, then run `shasum -a 256` to compute the fingerprint and `wc -c` to compute the expected length of the downloaded file in bytes. -Often, you will want to download a pre-compiled binary for a tool. When doing this, use `ExternalTool` instead for help with extracting the binary from the download. See [Installing tools](./installing-tools.mdx). - -:::caution HTTP requests without digests are unsafe -It is not safe to use `DownloadFile` for mutable HTTP requests, as it will never ping the server for updates once it is cached. It is also not safe to use the `requests` library or similar because it will not be cached safely. +Often, you will want to download a pre-compiled binary for a tool. When doing this, use `ExternalTool` instead for help with extracting the binary from the download. See [Installing tools](doc:rules-api-installing-tools). -You can use a `Process` with uniquely identifying information in its arguments to run `/usr/bin/curl`. -::: +> 🚧 HTTP requests without digests are unsafe +> +> It is not safe to use `DownloadFile` for mutable HTTP requests, as it will never ping the server for updates once it is cached. It is also not safe to use the `requests` library or similar because it will not be cached safely. +> +> You can use a `Process` with uniquely identifying information in its arguments to run `/usr/bin/curl`. diff --git a/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/goal-rules.mdx b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-goal-rules.md similarity index 64% rename from versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/goal-rules.mdx rename to versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-goal-rules.md index b580ba86f..361213d74 100644 --- a/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/goal-rules.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-goal-rules.md @@ -1,26 +1,25 @@ --- - title: Goal rules - sidebar_position: 1 +title: "Goal rules" +slug: "rules-api-goal-rules" +excerpt: "How to create new goals." +hidden: false +createdAt: "2020-05-07T22:38:43.975Z" --- -How to create new goals. +For many [plugin tasks](doc:common-plugin-tasks), you will be extending existing goals, such as adding a new linter to the `lint` goal. However, you may instead want to create a new goal, such as a `publish` goal. This page explains how to create a new goal. ---- - -For many [plugin tasks](../common-plugin-tasks/index.mdx), you will be extending existing goals, such as adding a new linter to the `lint` goal. However, you may instead want to create a new goal, such as a `publish` goal. This page explains how to create a new goal. - -As explained in [Concepts](./concepts.mdx), `@goal_rule`s are the entry-point into the rule graph. When a user runs `pants my-goal`, the Pants engine will look for the respective `@goal_rule`. That `@goal_rule` will usually request other types, either as parameters in the `@goal_rule` signature or through `await Get`. But unlike a `@rule`, a `@goal_rule` may also trigger side effects (such as running interactive processes, writing to the filesystem, etc) via `await Effect`. +As explained in [Concepts](doc:rules-api-concepts), `@goal_rule`s are the entry-point into the rule graph. When a user runs `pants my-goal`, the Pants engine will look for the respective `@goal_rule`. That `@goal_rule` will usually request other types, either as parameters in the `@goal_rule` signature or through `await Get`. But unlike a `@rule`, a `@goal_rule` may also trigger side effects (such as running interactive processes, writing to the filesystem, etc) via `await Effect`. Often, you can keep all of your logic inline in the `@goal_rule`. As your `@goal_rule` gets more complex, you may end up factoring out helper `@rule`s, but you do not need to start with writing helper `@rule`s. ## How to register a new goal -There are four steps to creating a new [goal](../../using-pants/key-concepts/goals.mdx) with Pants: +There are four steps to creating a new [goal](doc:goals) with Pants: 1. Define a subclass of `GoalSubsystem`. This is the API to your goal. 1. Set the class property `name` to the name of your goal. 2. Set the class property `help`, which is used by `pants help`. - 3. You may register options through attributes of `pants.option.option_types` types. See [Options and subsystems](./options-and-subsystems.mdx). + 3. You may register options through attributes of `pants.option.option_types` types. See [Options and subsystems](doc:rules-api-subsystems). 2. Define a subclass of `Goal`. When a user runs `pants my-goal`, the engine will request your subclass, which is what causes the `@goal_rule` to run. 1. Set the class property `subsystem_cls` to the `GoalSubsystem` from the previous step. 2. A `Goal` takes a single argument in its constructor, `exit_code: int`. Pants will use this to determine what its own exit code should be. @@ -28,7 +27,7 @@ There are four steps to creating a new [goal](../../using-pants/key-concepts/goa 1. For most goals, simply return `MyGoal(exit_code=0)`. Some goals like `lint` and `test` will instead propagate the error code from the tools they run. 4. Register the `@goal_rule` in a `register.py` file. -```python title="pants-plugins/example/hello_world.py" +```python pants-plugins/example/hello_world.py from pants.engine.goal import Goal, GoalSubsystem from pants.engine.rules import collect_rules, goal_rule @@ -52,7 +51,7 @@ def rules(): return collect_rules() ``` -```python title="pants-plugins/example/register.py" +```python pants-plugins/example/register.py from example import hello_world def rules(): @@ -154,35 +153,34 @@ helloworld/util helloworld/util:tests ``` -See [Rules and the Target API](./rules-and-the-target-api.mdx) for detailed information on how to use these targets in your rules, including accessing the metadata specified in BUILD files. - -:::caution Common mistake: requesting the type of target you want in the `@goal_rule` signature -For example, if you are writing a `publish` goal, and you expect to operate on `python_distribution` targets, you might think to request `PythonDistribution` in your `@goal_rule` signature: - -```python -@goal_rule -def publish(distribution: PythonDistributionTarget, console: Console) -> Publish: -... -``` - -This will not work because the engine has no path in the rule graph to resolve a `PythonDistribution` type given the initial input types to the rule graph (the "roots"). - -Instead, request `Targets`, which will give you all the targets that the user specified on the command line. The engine knows how to resolve this type because it can go from `Specs` -> `Addresses` -> `Targets`. - -From here, filter out the relevant targets you want using the Target API (see [Rules and the Target API](./rules-and-the-target-api.mdx)). - -```python -from pants.engine.target import Targets - -@goal_rule -def publish(targets: Targets, console: Console) -> Publish: -relevant_targets = [ -tgt for tgt in targets -if tgt.has_field(PythonPublishDestination) -] -``` - -::: +See [Rules and the Target API](doc:rules-api-and-target-api) for detailed information on how to use these targets in your rules, including accessing the metadata specified in BUILD files. + +> 🚧 Common mistake: requesting the type of target you want in the `@goal_rule` signature +> +> For example, if you are writing a `publish` goal, and you expect to operate on `python_distribution` targets, you might think to request `PythonDistribution` in your `@goal_rule` signature: +> +> ```python +> @goal_rule +> def publish(distribution: PythonDistributionTarget, console: Console) -> Publish: +> ... +> ``` +> +> This will not work because the engine has no path in the rule graph to resolve a `PythonDistribution` type given the initial input types to the rule graph (the "roots"). +> +> Instead, request `Targets`, which will give you all the targets that the user specified on the command line. The engine knows how to resolve this type because it can go from `Specs` -> `Addresses` -> `Targets`. +> +> From here, filter out the relevant targets you want using the Target API (see [Rules and the Target API](doc:rules-api-and-target-api)). +> +> ```python +> from pants.engine.target import Targets +> +> @goal_rule +> def publish(targets: Targets, console: Console) -> Publish: +> relevant_targets = [ +> tgt for tgt in targets +> if tgt.has_field(PythonPublishDestination) +> ] +> ``` ### Only care about source files? @@ -201,8 +199,8 @@ async def hello_world(console: Console, specs_paths: SpecsPaths) -> HelloWorld: `SpecsPaths.files` will list all files matched by the specs, e.g. `::` will match every file in the project (regardless of if targets own the files). -To convert `SpecsPaths` into a [`Digest`](./file-system.mdx), use `await Get(Digest, PathGlobs(globs=specs_paths.files))`. +To convert `SpecsPaths` into a [`Digest`](doc:rules-api-file-system), use `await Get(Digest, PathGlobs(globs=specs_paths.files))`. -:::note Name clashing -It is very unlikely, but is still possible that adding a custom goal with an unfortunate name may cause issues when certain existing Pants options are passed in the command line. For instance, executing a goal named `local` with a particular option (in this case, the global `local_cache` option), e.g. `pants --no-local-cache local ...` would fail since there's no `--no-cache` flag defined for the `local` goal. -::: +> 📘 Name clashing +> +> It is very unlikely, but is still possible that adding a custom goal with an unfortunate name may cause issues when certain existing Pants options are passed in the command line. For instance, executing a goal named `local` with a particular option (in this case, the global `local_cache` option), e.g. `pants --no-local-cache local ...` would fail since there's no `--no-cache` flag defined for the `local` goal. diff --git a/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/installing-tools.mdx b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-installing-tools.md similarity index 70% rename from versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/installing-tools.mdx rename to versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-installing-tools.md index 3f3cc7052..8ad291f58 100644 --- a/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/installing-tools.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-installing-tools.md @@ -1,10 +1,9 @@ --- - title: Installing tools - sidebar_position: 5 ---- - -Various methods for Pants to access the tools your plugin needs. - +title: "Installing tools" +slug: "rules-api-installing-tools" +excerpt: "Various methods for Pants to access the tools your plugin needs." +hidden: false +createdAt: "2020-07-23T20:40:30.771Z" --- ## `BinaryPaths`: Find already installed binaries @@ -42,27 +41,27 @@ async def demo(...) -> Foo: `BinaryPaths` also has a convenience property called `first_path: BinaryPath | None`, which will return the first matching path, if any. -In this example, the `search_path` is hardcoded. Instead, you may want to create a [subsystem](./options-and-subsystems.mdx) to allow users to override the search path through a dedicated option. See [pex_environment.py](https://github.com/pantsbuild/pants/blob/57a47457bda0b0dfb0882d851ccd58a7535f15c1/src/python/pants/backend/python/rules/pex_environment.py#L60-L71) for an example that allows the user to use the special string `` to read the user's `$PATH` environment variable. - -:::note Checking for valid binaries (recommended) -When setting up a `BinaryPathsRequest`, you can optionally pass the argument `test: BinaryPathTest`. When discovering a binary, Pants will run your test and only use the binary if the return code is 0. Pants will also fingerprint the output and invalidate the cache if the output changes from before, such as because the user upgraded the version of the tool. - -Why do this? This is helpful to ensure that all discovered binaries are valid and safe. This is also important for Pants to be able to detect when the user has changed the binary, such as upgrading its version. - -`BinaryPathTest` takes the argument `args: Iterable[str]`, which is the arguments that Pants should run on your binary to ensure that it's a valid program. Usually, you'll set `args=["--version"]`. - -```python -from pants.core.util_rules.system_binaries import BinaryPathRequest, BinaryPathTest - -BinaryPathRequest( -binary_name="docker", -search_path=["/usr/bin", "/bin"], -test=BinaryPathTest(args=["--version"]), -) -``` - -You can optionally set `fingerprint_stdout=False` to the `BinaryPathTest` constructor, but usually, you should keep the default of `True`. -::: +In this example, the `search_path` is hardcoded. Instead, you may want to create a [subsystem](doc:rules-api-subsystems) to allow users to override the search path through a dedicated option. See [pex_environment.py](https://github.com/pantsbuild/pants/blob/57a47457bda0b0dfb0882d851ccd58a7535f15c1/src/python/pants/backend/python/rules/pex_environment.py#L60-L71) for an example that allows the user to use the special string `` to read the user's `$PATH` environment variable. + +> 📘 Checking for valid binaries (recommended) +> +> When setting up a `BinaryPathsRequest`, you can optionally pass the argument `test: BinaryPathTest`. When discovering a binary, Pants will run your test and only use the binary if the return code is 0. Pants will also fingerprint the output and invalidate the cache if the output changes from before, such as because the user upgraded the version of the tool. +> +> Why do this? This is helpful to ensure that all discovered binaries are valid and safe. This is also important for Pants to be able to detect when the user has changed the binary, such as upgrading its version. +> +> `BinaryPathTest` takes the argument `args: Iterable[str]`, which is the arguments that Pants should run on your binary to ensure that it's a valid program. Usually, you'll set `args=["--version"]`. +> +> ```python +> from pants.core.util_rules.system_binaries import BinaryPathRequest, BinaryPathTest +> +> BinaryPathRequest( +> binary_name="docker", +> search_path=["/usr/bin", "/bin"], +> test=BinaryPathTest(args=["--version"]), +> ) +> ``` +> +> You can optionally set `fingerprint_stdout=False` to the `BinaryPathTest` constructor, but usually, you should keep the default of `True`. ## `ExternalTool`: Install pre-compiled binaries @@ -111,7 +110,7 @@ You must define the class properties `default_version` and `default_known_versio You must also define the methods `generate_url`, which is the URL to make a GET request to download the file, and `generate_exe`, which is the relative path to the binary in the downloaded digest. Both methods take `plat: Platform` as a parameter. -Because an `ExternalTool` is a subclass of [`Subsystem`](./options-and-subsystems.mdx), you must also define an `options_scope`. You may optionally register additional options from `pants.option.option_types`. +Because an `ExternalTool` is a subclass of [`Subsystem`](doc:rules-api-subsystems), you must also define an `options_scope`. You may optionally register additional options from `pants.option.option_types`. In your rules, include the `ExternalTool` as a parameter of the rule, then use `Get(DownloadedExternalTool, ExternalToolRequest)` to download and extract the tool. @@ -185,43 +184,42 @@ Instead of the normal `Get(ProcessResult, Process)`, you should use `Get(Process `PexProcess` requires arguments for `pex: Pex`, `argv: Iterable[str]`, and `description: str`. It has several optional parameters that mirror the arguments to `Process`. If you specify `input_digest`, be careful to first use `Get(Digest, MergeDigests)` on the `pex.digest` and any of the other input digests. -:::note Use `PythonToolBase` when you need a Subsystem -Often, you will want to create a [`Subsystem`](./options-and-subsystems.mdx) for your Python tool -to allow users to set options to configure the tool. You can subclass `PythonToolBase`, which -subclasses `Subsystem`, to do this: - -```python -from pants.backend.python.subsystems.python_tool_base import PythonToolBase -from pants.backend.python.target_types import ConsoleScript -from pants.option.option_types import StrOption - -class Black(PythonToolBase): -options_scope = "black" -help = "The Black Python code formatter (https://black.readthedocs.io/)." - -default_main = ConsoleScript("black") - -register_interpreter_constraints = True -default_interpreter_constraints = ["CPython>=3.8,<3.9"] - -default_lockfile_resource = ("pants.backend.python.lint.black", "black.lock") - -config = StrOption( -default=None, -advanced=True, -help="Path to Black's pyproject.toml config file", -) -``` - -You must define the class properties `options_scope` and `default_main`, and a -default lockfile at the location referenced by default_lockfile_resource. - -Then, you can set up your `Pex` like this: - -```python -@rule -async def demo(black: Black, ...) -> Foo: -pex = await Get(Pex, PexRequest, black.to_pex_request()) -``` - -::: +> 📘 Use `PythonToolBase` when you need a Subsystem +> +> Often, you will want to create a [`Subsystem`](doc:rules-api-subsystems) for your Python tool +> to allow users to set options to configure the tool. You can subclass `PythonToolBase`, which +> subclasses `Subsystem`, to do this: +> +> ```python +> from pants.backend.python.subsystems.python_tool_base import PythonToolBase +> from pants.backend.python.target_types import ConsoleScript +> from pants.option.option_types import StrOption +> +> class Black(PythonToolBase): +> options_scope = "black" +> help = "The Black Python code formatter (https://black.readthedocs.io/)." +> +> default_main = ConsoleScript("black") +> +> register_interpreter_constraints = True +> default_interpreter_constraints = ["CPython>=3.8,<3.9"] +> +> default_lockfile_resource = ("pants.backend.python.lint.black", "black.lock") +> +> config = StrOption( +> default=None, +> advanced=True, +> help="Path to Black's pyproject.toml config file", +> ) +> ``` +> +> You must define the class properties `options_scope` and `default_main`, and a +> default lockfile at the location referenced by default_lockfile_resource. +> +> Then, you can set up your `Pex` like this: +> +> ```python +> @rule +> async def demo(black: Black, ...) -> Foo: +> pex = await Get(Pex, PexRequest, black.to_pex_request()) +> ``` diff --git a/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/logging-and-dynamic-output.mdx b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-logging.md similarity index 70% rename from versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/logging-and-dynamic-output.mdx rename to versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-logging.md index 0a6b73563..98bf25baa 100644 --- a/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/logging-and-dynamic-output.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-logging.md @@ -1,13 +1,12 @@ --- - title: Logging and dynamic output - sidebar_position: 8 +title: "Logging and dynamic output" +slug: "rules-api-logging" +excerpt: "How to add logging and influence the dynamic UI." +hidden: false +createdAt: "2020-09-12T03:38:10.345Z" --- -How to add logging and influence the dynamic UI. - ---- - -Even though a [`@goal_rule`](./goal-rules.mdx) is the only type of rule that can print to `stdout` (via the special `Console` type), any rule can log to stderr and change how the rule appears in the dynamic UI. +Even though a [`@goal_rule`](doc:rules-api-goal-rules) is the only type of rule that can print to `stdout` (via the special `Console` type), any rule can log to stderr and change how the rule appears in the dynamic UI. ## Adding logging diff --git a/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/processes.mdx b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-process.md similarity index 72% rename from versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/processes.mdx rename to versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-process.md index 9491b2e53..cacb354a0 100644 --- a/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/processes.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-process.md @@ -1,10 +1,9 @@ --- - title: Processes - sidebar_position: 4 ---- - -How to safely run subprocesses in your plugin. - +title: "Processes" +slug: "rules-api-process" +excerpt: "How to safely run subprocesses in your plugin." +hidden: false +createdAt: "2020-05-07T22:38:44.131Z" --- It is not safe to use `subprocess.run()` like you normally would because this can break caching and will not leverage Pants's parallelism. Instead, Pants has safe alternatives with `Process` and `InteractiveProcess`. @@ -36,19 +35,19 @@ This will return a `ProcessResult` object, which has the fields `stdout: bytes`, The process will run in a temporary directory and is hermetic, meaning that it cannot read any arbitrary file from your project and that it will be stripped of environment variables. This sandbox is important for reproducibility and to allow running your `Process` anywhere, such as through remote execution. -:::note Debugging a `Process` -Setting the [`--keep-sandboxes=always`](./tips-and-debugging.mdx#debugging-look-inside-the-chroot) flag will cause the sandboxes of `Process`es to be preserved and logged to the console for inspection. - -It can be very helpful while editing `Process` definitions! -::: +> 📘 Debugging a `Process` +> +> Setting the [`--keep-sandboxes=always`](doc:rules-api-tips#debugging-look-inside-the-chroot) flag will cause the sandboxes of `Process`es to be preserved and logged to the console for inspection. +> +> It can be very helpful while editing `Process` definitions! ### Input Files -To populate the temporary directory with files, use the parameter `input_digest: Digest`. It's common to use [`MergeDigests`](./file-system.mdx) to combine multiple `Digest`s into one single `input_digest`. +To populate the temporary directory with files, use the parameter `input_digest: Digest`. It's common to use [`MergeDigests`](doc:rules-api-file-system) to combine multiple `Digest`s into one single `input_digest`. ### Environment Variables -To set environment variables, use the parameter `env: Mapping[str, str]`. `@rules` are prevented from accessing `os.environ` (it will always be empty) because this reduces reproducibility and breaks caching. Instead, either hardcode the value or add a [`Subsystem` option](./options-and-subsystems.mdx) for the environment variable in question, or request the `Environment` type in your `@rule`. +To set environment variables, use the parameter `env: Mapping[str, str]`. `@rules` are prevented from accessing `os.environ` (it will always be empty) because this reduces reproducibility and breaks caching. Instead, either hardcode the value or add a [`Subsystem` option](doc:rules-api-subsystems) for the environment variable in question, or request the `Environment` type in your `@rule`. The `EnvironmentVars` type contains a subset of the environment that Pants was run in, and is requested via a `EnvironmentVarsRequest` that lists the variables to consume. @@ -66,7 +65,7 @@ async def partial_env(...) -> Foo: ### Output Files -To capture output files from the process, set `output_files: Iterable[str]` and/or `output_directories: Iterable[str]`. Then, you can use the `ProcessResult.output_digest` field to get a [`Digest`](./file-system.mdx) of the result. +To capture output files from the process, set `output_files: Iterable[str]` and/or `output_directories: Iterable[str]`. Then, you can use the `ProcessResult.output_digest` field to get a [`Digest`](doc:rules-api-file-system) of the result. `output_directores` captures that directory and everything below it. @@ -74,26 +73,26 @@ To capture output files from the process, set `output_files: Iterable[str]` and/ To use a timeout, set the `timeout_seconds: int` field. Otherwise, the process will never time out, unless the user cancels Pants. -:::note `Process` caching -By default, a `Process` will be cached to `~/.cache/pants/lmdb_store` if the `exit_code` is `0`. - -If it's not safe to cache your `Process` -- usually the case when you know that a process accesses files outside its sandbox -- you can change the cacheability of your `Process` using the `ProcessCacheScope` parameter: - -```python -from pants.engine.process import Process, ProcessCacheScope, ProcessResult - -@rule -async def demo(...) -> Foo: -process = Process( -argv=["/bin/echo", "hello world"], -description="Not persisted between Pants runs ('sessions').", -cache_scope=ProcessCacheScope.PER_SESSION, -) -... -``` - -`ProcessCacheScope` supports other options as well, including `ALWAYS`. -::: +> 📘 `Process` caching +> +> By default, a `Process` will be cached to `~/.cache/pants/lmdb_store` if the `exit_code` is `0`. +> +> If it's not safe to cache your `Process` -- usually the case when you know that a process accesses files outside its sandbox -- you can change the cacheability of your `Process` using the `ProcessCacheScope` parameter: +> +> ```python +> from pants.engine.process import Process, ProcessCacheScope, ProcessResult +> +> @rule +> async def demo(...) -> Foo: +> process = Process( +> argv=["/bin/echo", "hello world"], +> description="Not persisted between Pants runs ('sessions').", +> cache_scope=ProcessCacheScope.PER_SESSION, +> ) +> ... +> ``` +> +> `ProcessCacheScope` supports other options as well, including `ALWAYS`. ### FallibleProcessResult @@ -107,7 +106,7 @@ Like `ProcessResult`, `FallibleProcessResult` has the attributes `stdout: bytes` `InteractiveProcess` is similar to Python's `subprocess.run()`. The process will run in the foreground, optionally with access to the workspace. -Because the process is potentially side-effecting, you may only run an `InteractiveProcess` in an [`@goal_rule`](./goal-rules.mdx) as an `Effect`. +Because the process is potentially side-effecting, you may only run an `InteractiveProcess` in an [`@goal_rule`](doc:rules-api-goal-rules) as an `Effect`. ```python from pants.engine.rules import Effect, goal_rule diff --git a/versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-subsystems.md b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-subsystems.md new file mode 100644 index 000000000..58636fd20 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-subsystems.md @@ -0,0 +1,119 @@ +--- +title: "Options and subsystems" +slug: "rules-api-subsystems" +excerpt: "How to add options to your plugin." +hidden: false +createdAt: "2020-07-01T04:55:36.180Z" +--- + +## Defining options + +As explained in [Options](doc:options), options are partitioned into named scopes, like `[test]` and `[isort]`. Each of these scopes corresponds to a _subsystem_. + +To add new options: + +1. Define a subclass of `Subsystem` from `pants.subsystem.subsystem`. + 1. Set the class property `options_scope` with the name of the subsystem. + - This value will be prepended to all options in the subsystem, e.g. `--skip` will become `--shellcheck-skip`. + 2. Set the class property `help`, which is used by `pants help`. +2. Add new options through `pants.options.option_types` class attributes. +3. Register the `Subsystem` with `Subsystem.rules()` and `register.py`. + - You don't need `Subsystem.rules()` if the `Subsystem` is used in an `@rule` because `collect_rules()` will recognize it. It doesn't hurt to keep this around, though. + +```python pants-plugins/example/shellcheck.py +from pants.option.option_types import BoolOption +from pants.option.subsystem import Subsystem + + +class ShellcheckSubsystem(Subsystem): + options_scope = "shellcheck" + help = "The Shellcheck linter." + + config_discovery = BoolOption( + default=True, + advanced=True, + help="Whether Pants should...", + ) + + +def rules(): + return [*ShellcheckSubsystem.rules()] +``` + +```python pants-plugins/example/register.py +from example import shellcheck + +def rules(): + return [*shellcheck.rules()] +``` + +The subsystem should now show up when you run `pants help shellcheck`. + +> 📘 `GoalSubsystem` +> +> As explained in [Goal rules](doc:rules-api-goal-rules), goals use a subclass of `Subsystem`: `GoalSubsystem` from `pants.engine.goal`. +> +> `GoalSubsystem` behaves the same way as a normal subsystem, except that you set the class property `name` rather than `options_scope`. The `name` will auto-populate the `options_scope`. + +### Option types + +These classes correspond to the option types at [Options](doc:options). + +Every option type requires that you set the keyword argument `help`. + +Most types require that you set `default`. You can optionally set `advanced=True` with every option +for it to only show up with `help-advanced`. + +The option name will default to the class attribute name, e.g. `my_opt = StrOption()` will default to `--my-opt`. +You can instead pass a string positional argument, e.g. `my_opt = StrOption("--different-name")`. + +[block:parameters] +{ +"data": { +"h-0": "Class name", +"h-1": "Notes", +"0-0": "`StrOption`", +"0-1": "Must set `default` to a `str` or `None`.", +"1-0": "`BoolOption`", +"1-1": "Must set `default` to a `bool` or `None`. TODO \n \nReminder when choosing a flag name: Pants will recognize the command line argument `--no-my-flag-name` as equivalent to `--my-flag-name=false`.", +"2-0": "`IntOption`", +"2-1": "Must set `default` to an `int` or `None`.", +"3-0": "`FloatOption`", +"3-1": "Must set `default` to a `float` or `None`.", +"4-0": "`EnumOption`", +"4-1": "This is like `StrOption`, but with the valid choices constrained to your enum. \n \nTo use, define an `enum.Enum`. The values of your enum will be what users can type, e.g. `'kale'` and `'spinach'` below: \n \n`python\nclass LeafyGreens(Enum):\n KALE = \"kale\"\n SPINACH = \"spinach\"\n`You must either set `default` to a value from your enum or `None`. If you set `default=None`, you must set `enum_type`.", +"5-0": "List options: \n \n- `StrListOption`\n- `BoolListOption`\n- `IntListOption`\n- `FloatListOption`\n- `EnumListOption`", +"5-1": "Default is `[]` if `default` is not set. \n \nFor `EnumListOption`, you must set the keyword argument `enum_type`.", +"6-0": "`DictOption`", +"6-1": "Default is `{}` if `default` is not set. \n \nCurrently, Pants does not offer any validation of the dictionary entries, e.g. `dict[str, str]` vs `dict[str, list[str]]`. (Although per TOML specs, the key should always be `str`.) You may want to add eager validation that users are inputting options the correct way.", +"7-0": "`ArgsListOption`", +"7-1": "Adds an `--args` option, e.g. `--isort-args`. This type is extra useful because it uses a special `shell_str` that lets users type the arguments as a single string with spaces, which Pants will _shlex_ for them. That is, `--args='arg1 arg2'` gets converted to `['arg1', 'arg2']`. \n \nYou must set the keyword argument `example`, e.g. `'--arg1 arg2'`. You must also set `tool_name: str`, e.g. `'Black'`. \n \nYou can optionally set `passthrough=True` if the user should be able to use the style `pants my-goal :: -- --arg1`, i.e. arguments after `--`." +}, +"cols": 2, +"rows": 8, +"align": [ +"left", +"left" +] +} +[/block] + +## Using options in rules + +To use a `Subsystem` or `GoalSubsystem` in your rule, request it as a parameter. Then, use the class attributes to access the option value. + +```python +from pants.engine.rules import rule +... + +@rule +async def demo(shellcheck: Shellcheck) -> LintResults: + if shellcheck.skip: + return LintResults() + config_discovery = shellcheck.config_discovery + ... +``` + +> 📘 Name clashing +> +> When adding custom options, make sure their name does not start with an existing goal name. For instance, passing a boolean option named `check_foobar` as `--check-foobar` in the command line would fail since Pants would think you are trying to pass the `--foobar` flag in the built-in `check` goal scope. diff --git a/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/testing-plugins.mdx b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-testing.md similarity index 89% rename from versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/testing-plugins.mdx rename to versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-testing.md index 86b7e6b7f..005be1bd7 100644 --- a/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/testing-plugins.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-testing.md @@ -1,17 +1,16 @@ --- - title: Testing plugins - sidebar_position: 9 ---- - -How to verify your plugin works. - +title: "Testing plugins" +slug: "rules-api-testing" +excerpt: "How to verify your plugin works." +hidden: false +createdAt: "2020-07-01T17:25:36.570Z" --- There are four main approaches to testing your plugin, ranging in terms of scope (unit vs. integration test). You may mix-and-match between these approaches. All approaches use [Pytest](https://docs.pytest.org/en/latest/)-style tests, rather than [`unittest`](https://docs.python.org/3/library/unittest.html)-style tests. -You must also install the distribution `pantsbuild.pants.testutil`. We recommend using the [`pants_requirements` target to do this](../plugins-overview.mdx). +You must also install the distribution `pantsbuild.pants.testutil`. We recommend using the [`pants_requirements` target to do this](doc:plugins-overview). ## Approach 1: normal unit tests @@ -43,38 +42,38 @@ def test_timeout_validation() -> None: assert PythonTestTimeoutField(5, Address("demo")).value == 5 ``` -:::note How to create a `Target` in-memory -For Approaches #1 and #2, you will often want to pass a `Target` instance to your test, such as a `PythonTestTarget` instance. - -To create a `Target` instance, choose which subclass you want, then pass a dictionary of the values you want to use, followed by an `Address` object. The dictionary corresponds to what you'd put in the BUILD file; any values that you leave off will use their default values. - -The `Address` constructor's first argument is the path to the BUILD file; you can optionally define `target_name: str` if it is not the default `name`. - -For example, given this target definition for `project/app:tgt`: - -```python -python_test( -name="tgt", -source="app_test.py", -timeout=120, -) -``` - -We would write: - -```python -tgt = PythonTestTarget( -{"source": "app_test.py", "timeout": 120}, -Address("project/app", target_name="tgt"), -) -``` - -Note that we did not put `"name": "tgt"` in the dictionary. `name` is a special field that does not use the Target API. Instead, pass the `name` to the `target_name` argument in the `Address` constructor. - -For Approach #3, you should instead use `rule_runner.write_files()` to write a BUILD file, followed by `rule_runner.get_target()`. - -For Approach #4, you should use `setup_tmpdir()` to set up BUILD files. -::: +> 📘 How to create a `Target` in-memory +> +> For Approaches #1 and #2, you will often want to pass a `Target` instance to your test, such as a `PythonTestTarget` instance. +> +> To create a `Target` instance, choose which subclass you want, then pass a dictionary of the values you want to use, followed by an `Address` object. The dictionary corresponds to what you'd put in the BUILD file; any values that you leave off will use their default values. +> +> The `Address` constructor's first argument is the path to the BUILD file; you can optionally define `target_name: str` if it is not the default `name`. +> +> For example, given this target definition for `project/app:tgt`: +> +> ```python +> python_test( +> name="tgt", +> source="app_test.py", +> timeout=120, +> ) +> ``` +> +> We would write: +> +> ```python +> tgt = PythonTestTarget( +> {"source": "app_test.py", "timeout": 120}, +> Address("project/app", target_name="tgt"), +> ) +> ``` +> +> Note that we did not put `"name": "tgt"` in the dictionary. `name` is a special field that does not use the Target API. Instead, pass the `name` to the `target_name` argument in the `Address` constructor. +> +> For Approach #3, you should instead use `rule_runner.write_files()` to write a BUILD file, followed by `rule_runner.get_target()`. +> +> For Approach #4, you should use `setup_tmpdir()` to set up BUILD files. ## Approach 2: `run_rule_with_mocks()` (unit tests for rules) @@ -208,11 +207,11 @@ First, you must set up a `RuleRunner` instance and activate the rules and target This means that you must register the rules you directly wrote, and also any rules that they depend on. Pants will automatically register some core rules for you, but leaves off most of them for better isolation of tests. If you're missing some rules, the rule graph will fail to be built. -:::caution Confusing rule graph error? -It can be confusing figuring out what's wrong when setting up a `RuleRunner`. We know the error messages are not ideal and are working on improving them. - -Please feel free to reach out on [Slack](/community/members) for help with figuring out how to get things working. -::: +> 🚧 Confusing rule graph error? +> +> It can be confusing figuring out what's wrong when setting up a `RuleRunner`. We know the error messages are not ideal and are working on improving them. +> +> Please feel free to reach out on [Slack](doc:the-pants-community) for help with figuring out how to get things working. ```python from pants.backend.python.goals import pytest_runner @@ -359,7 +358,7 @@ Now that you have your `RuleRunner` set up, along with any options and the conte Unlike Approach #2, you will not explicitly say which `@rule` you want to run. Instead, look at the return type of your `@rule`. Use `rule_runner.request(MyOutput, [input1, ...])`, where `MyOutput` is the return type. -`rule_runner.request()` is equivalent to how you would normally use `await Get(MyOuput, Input1, input1_instance)` in a rule (See [Concepts](./concepts.mdx)). For example, if you would normally say `await Get(Digest, MergeDigests([digest1, digest2])`, you'd instead say `rule_runner.request(Digest, [MergeDigests([digest1, digest2])`. +`rule_runner.request()` is equivalent to how you would normally use `await Get(MyOuput, Input1, input1_instance)` in a rule (See [Concepts](doc:rules-api-concepts)). For example, if you would normally say `await Get(Digest, MergeDigests([digest1, digest2])`, you'd instead say `rule_runner.request(Digest, [MergeDigests([digest1, digest2])`. You will also need to add a `QueryRule` to your `RuleRunner` setup, which gives a hint to the engine for what requests you are going to make. The `QueryRule` takes the same form as your `rule_runner.request()`, except that the inputs are types, rather than instances of those types. @@ -450,9 +449,9 @@ def test_bandit(rule_runner: RuleRunner) -> None: lint_results = rule_runner.request(LintResults, [bandit_request]) ``` -Note that our `@rule` takes 3 parameters, but we only explicitly included `BanditRequest` in the inputs. This is possible because the engine knows how to compute all [Subsystems](./options-and-subsystems.mdx) based on the initial input to the graph. See [Concepts](./concepts.mdx). +Note that our `@rule` takes 3 parameters, but we only explicitly included `BanditRequest` in the inputs. This is possible because the engine knows how to compute all [Subsystems](doc:rules-api-subsystems) based on the initial input to the graph. See [Concepts](doc:rules-api-concepts). -We are happy [to help](/community/members) figure out what rules to register, and what inputs to pass to `rule_runner.request()`. It can also help to [visualize the rule graph](./tips-and-debugging.mdx) when running your code in production. If you're missing an input that you need, the engine will error explaining that there is no way to compute your `OutputType`. +We are happy [to help](doc:the-pants-community) figure out what rules to register, and what inputs to pass to `rule_runner.request()`. It can also help to [visualize the rule graph](doc:rules-api-tips) when running your code in production. If you're missing an input that you need, the engine will error explaining that there is no way to compute your `OutputType`. ### Testing `@goal_rule`s diff --git a/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/tips-and-debugging.mdx b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-tips.md similarity index 85% rename from versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/tips-and-debugging.mdx rename to versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-tips.md index 9644d9859..320993a25 100644 --- a/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/tips-and-debugging.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-tips.md @@ -1,15 +1,15 @@ --- - title: Tips and debugging - sidebar_position: 10 +title: "Tips and debugging" +slug: "rules-api-tips" +hidden: false +createdAt: "2020-05-08T04:15:06.256Z" --- ---- - -:::note Reminder: ask for help -We would love to help you with your plugin. Please reach out through [Slack](/community/members). - -We also appreciate any feedback on the Rules API. If you find certain things confusing or are looking for additional mechanisms, please let us know. -::: +> 📘 Reminder: ask for help +> +> We would love to help you with your plugin. Please reach out through [Slack](doc:the-pants-community). +> +> We also appreciate any feedback on the Rules API. If you find certain things confusing or are looking for additional mechanisms, please let us know. ## Tip: Use `MultiGet` for increased concurrency @@ -45,13 +45,13 @@ async def demo(...) -> Foo: ## Tip: Add logging -As explained in [Logging and dynamic output](./logging-and-dynamic-output.mdx), you can add logging to any `@rule` by using Python's `logging` module like you normally would. +As explained in [Logging and dynamic output](doc:rules-api-logging), you can add logging to any `@rule` by using Python's `logging` module like you normally would. ## FYI: Caching semantics There are two layers to Pants caching: in-memory memoization and caching written to disk via the [LMDB store](https://en.wikipedia.org/wiki/Lightning_Memory-Mapped_Database). -Pants will write to the LMDB store—usually at `~/.cache/pants/lmdb_store`—for any `Process` execution and when ["digesting" files](./file-system.mdx), such as downloading a file or reading from the filesystem. The cache is based on inputs; for example, if the input `Process` is identical to a previous run, then the cache will use the corresponding cached `ProcessResult`. Writing to and reading from LMDB store is very fast, and reads are concurrent. The cache will be occasionally garbage collected by Pantsd, and users may also use `--no-local-cache` or manually delete `~/.cache/pants/lmdb_store`. +Pants will write to the LMDB store—usually at `~/.cache/pants/lmdb_store`—for any `Process` execution and when ["digesting" files](doc:rules-api-file-system), such as downloading a file or reading from the filesystem. The cache is based on inputs; for example, if the input `Process` is identical to a previous run, then the cache will use the corresponding cached `ProcessResult`. Writing to and reading from LMDB store is very fast, and reads are concurrent. The cache will be occasionally garbage collected by Pantsd, and users may also use `--no-local-cache` or manually delete `~/.cache/pants/lmdb_store`. Pants will also memoize in-memory the evaluation of all `@rule`s. This means that once a rule runs, if the inputs are identical to a prior run, the cache will be used instead of re-evaluating the rule. If the user uses Pantsd (the Pants daemon), this memoization will persist across distinct Pants runs, until the daemon is shut down or restarted. This memoization happens automatically. @@ -80,13 +80,13 @@ To open up the `.dot` file, you can install the [`graphviz`](https://graphviz.or Rule graph issues can be particularly hard to figure out - the error messages are noisy and do not make clear how to fix the issue. We plan to improve this. -We encourage you to reach out in #plugins on [Slack](/community/getting-help) for help. +We encourage you to reach out in #plugins on [Slack](doc:getting-help) for help. Often the best way to debug a rule graph issue is to isolate where the problem comes from by commenting out code until the graph compiles. The rule graph is formed solely by looking at the types in the signature of your `@rule` and in any `Get` statements - none of the rest of your rules matter. To check if the rule graph can be built, simply run `pants --version`. We recommend starting by determining which backend—or combination of backends—is causing issues. You can run the below script to find this. Once you find the smallest offending combination, focus on fixing that first by removing all irrelevant backends from `backend_packages` in `pants.toml`—this reduces the surface area of where issues can come from. (You may need to use the option `--no-verify-config` so that Pants doesn't complain about unrecognized options.) -```python title="find_bad_backend_combos.py" +```python find_bad_backend_combos.py #!/usr/bin/env python3 import itertools @@ -140,4 +140,4 @@ Some common sources of rule graph failures: - Not "newtyping". - It's possible and sometimes desirable to use types already defined in your plugin or core Pants. For example, you might want to define a new rule that goes from `MyCustomClass -> Process`. However, sometimes this makes the rule graph more complicated than it needs to be. - It's often helpful to create a result and request type for each of your `@rule`s, e.g. `MyPlugin` and `MyPluginRequest`. - - See [Valid types](./concepts.mdx#valid-types) for more. + - See [Valid types](doc:rules-api-concepts#valid-types) for more. diff --git a/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/union-rules-advanced.mdx b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-unions.md similarity index 91% rename from versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/union-rules-advanced.mdx rename to versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-unions.md index 635d62972..45f9fb523 100644 --- a/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/union-rules-advanced.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/rules-api/rules-api-unions.md @@ -1,10 +1,9 @@ --- - title: Union rules (advanced) - sidebar_position: 7 ---- - -Polymorphism for the engine. - +title: "Union rules (advanced)" +slug: "rules-api-unions" +excerpt: "Polymorphism for the engine." +hidden: false +createdAt: "2020-05-08T04:15:07.104Z" --- Union rules solve the same problem that polymorphism solves in general: how to write generic code that operates on types not known about at the time of writing. @@ -13,7 +12,7 @@ For example, Pants has many generic goals like `lint` and `test`. Those `@goal_r Unions allow a specific linter to be registered with `UnionRule(LintTargetsRequest, ShellcheckRequest)`, and then for `lint.py` to access its type: -```python title="pants/core/goals/lint.py" +```python pants/core/goals/lint.py from pants.engine.rules import Get, MultiGet, goal_rule from pants.engine.target import Targets from pants.engine.unions import UnionMembership @@ -37,7 +36,7 @@ async def lint(..., targets: Targets, union_membership: UnionMembership) -> Lint ) ``` -```python title="pants-plugins/bash/shellcheck.py" +```python pants-plugins/bash/shellcheck.py from pants.core.goals.lint import LintTargetsRequest diff --git a/versioned_docs/version-2.18/docs/markdown/Writing Plugins/target-api.md b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/target-api.md new file mode 100644 index 000000000..445212941 --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/target-api.md @@ -0,0 +1,12 @@ +--- +title: "The Target API" +slug: "target-api" +excerpt: "A declarative interface for working with targets and their fields." +hidden: false +createdAt: "2020-05-07T22:38:44.131Z" +--- + +- [Concepts](doc:target-api-concepts) +- [Creating new fields](doc:target-api-new-fields) +- [Creating new targets](doc:target-api-new-targets) +- [Extending existing targets](doc:target-api-extending-targets) diff --git a/versioned_docs/version-2.18/docs/writing-plugins/the-target-api/concepts.mdx b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/target-api/target-api-concepts.md similarity index 76% rename from versioned_docs/version-2.18/docs/writing-plugins/the-target-api/concepts.mdx rename to versioned_docs/version-2.18/docs/markdown/Writing Plugins/target-api/target-api-concepts.md index 3e9505aeb..d1e2b1210 100644 --- a/versioned_docs/version-2.18/docs/writing-plugins/the-target-api/concepts.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/target-api/target-api-concepts.md @@ -1,10 +1,9 @@ --- - title: Concepts - sidebar_position: 0 ---- - -The core concepts of Targets and Fields. - +title: "Concepts" +slug: "target-api-concepts" +excerpt: "The core concepts of Targets and Fields." +hidden: false +createdAt: "2020-05-07T22:38:43.975Z" --- The Target API defines how you interact with targets in your plugin. For example, you would use the Target API to read the `source` / `sources` field of a target to know which files to run on. @@ -15,11 +14,11 @@ The Target API can also be used to add new target types—such as adding support ### Definition of _target_ -As described in [Targets and BUILD files](../../using-pants/key-concepts/targets-and-build-files.mdx), a _target_ is an _addressable_ set of metadata describing some of your code. +As described in [Targets and BUILD files](doc:targets), a _target_ is an _addressable_ set of metadata describing some of your code. For example, this BUILD file defines a `PythonTestTarget` target with `Address("project", target_name="app_test")`. -```python title="project/BUILD" +```python project/BUILD python_test( name="app_test", source="app_test.py", @@ -33,7 +32,7 @@ A _field_ is a single value of metadata belonging to a target, such as `source` Each field has a Python class that defines its BUILD file alias, data type, and optional settings like default values. For example: -```python title="example_fields.py" +```python example_fields.py from pants.engine.target import IntField class PythonTestTimeoutField(IntField): @@ -45,7 +44,7 @@ class PythonTestTimeoutField(IntField): Alternatively, you can think of a target as simply an alias and a combination of fields: -```python title="plugin_target_types.py" +```python plugin_target_types.py from pants.engine.target import Dependencies, SingleSourceField, Target, Tags class CustomTarget(Target): @@ -63,7 +62,7 @@ Because fields are stand-alone Python classes, the same field definition may be For example, many target types have the `source` field. -```python title="BUILD" +```python BUILD resource( name="logo", source="logo.png", @@ -83,7 +82,7 @@ Idiomatic Pants plugins do not care about specific target types; they only care For example, the Python formatter Black does not actually care whether you have a `python_source`, `python_test`, or `custom_target` target; all that it cares about is that your target type has the field `PythonSourceField`. -Targets are only [used by the Rules API](../the-rules-api/rules-and-the-target-api.mdx) to get access to the underlying fields through the methods `.has_field()` and `.get()`: +Targets are only [used by the Rules API](doc:rules-api-and-target-api) to get access to the underlying fields through the methods `.has_field()` and `.get()`: ```python if target.has_field(PythonSourceField): @@ -134,46 +133,44 @@ Normally targets are declared in BUILD files to provide metadata about the proje To declare synthetic targets from a Plugin, first subclass the `SyntheticTargetsRequest` union type and register it as a union member with `UnionRule(SyntheticTargetsRequest, SubclassedType)`. Secondly there needs to be a rule that takes this union member type as input and returns a `SyntheticAddressMaps`. -```python -from dataclasses import dataclass -from pants.engine.internals.synthetic_targets import ( - SyntheticAddressMaps, - SyntheticTargetsRequest, -) -from pants.engine.internals.target_adaptor import TargetAdaptor -from pants.engine.unions import UnionRule -from pants.engine.rules import collect_rules, rule - - -@dataclass(frozen=True) -class SyntheticExampleTargetsRequest(SyntheticTargetsRequest): - pass - - -@rule -async def example_synthetic_targets(request: SyntheticExampleTargetsRequest) -> SyntheticAddressMaps: - return SyntheticAddressMaps.for_targets_request( - request, - [ - ( - "BUILD.synthetic-example", - ( - TargetAdaptor("", "", **target_field_values), - ... - ), - ), - ... - ] + from dataclasses import dataclass + from pants.engine.internals.synthetic_targets import ( + SyntheticAddressMaps, + SyntheticTargetsRequest, ) + from pants.engine.internals.target_adaptor import TargetAdaptor + from pants.engine.unions import UnionRule + from pants.engine.rules import collect_rules, rule + + + @dataclass(frozen=True) + class SyntheticExampleTargetsRequest(SyntheticTargetsRequest): + pass + + + @rule + async def example_synthetic_targets(request: SyntheticExampleTargetsRequest) -> SyntheticAddressMaps: + return SyntheticAddressMaps.for_targets_request( + request, + [ + ( + "BUILD.synthetic-example", + ( + TargetAdaptor("", "", **target_field_values), + ... + ), + ), + ... + ] + ) -def rules(): - return ( - *collect_rules(), - UnionRule(SyntheticTargetsRequest, SyntheticExampleTargetsRequest), - ... - ) -``` + def rules(): + return ( + *collect_rules(), + UnionRule(SyntheticTargetsRequest, SyntheticExampleTargetsRequest), + ... + ) ### Register synthetic targets per directory or globally @@ -183,15 +180,13 @@ If the source information is derived from parsing files from the project source The mode of operation is declared per union member (i.e. on the subclass of the `SyntheticTargetsRequest` class) by providing a default value to the `path` field: -```python -@dataclass(frozen=True) -class SyntheticExamplePerDirectoryTargetsRequest(SyntheticTargetsRequest): - path: str = SyntheticTargetsRequest.REQUEST_TARGETS_PER_DIRECTORY + @dataclass(frozen=True) + class SyntheticExamplePerDirectoryTargetsRequest(SyntheticTargetsRequest): + path: str = SyntheticTargetsRequest.REQUEST_TARGETS_PER_DIRECTORY -@dataclass(frozen=True) -class SyntheticExampleAllTargetsAtOnceRequest(SyntheticTargetsRequest): - path: str = SyntheticTargetsRequest.SINGLE_REQUEST_FOR_ALL_TARGETS -``` + @dataclass(frozen=True) + class SyntheticExampleAllTargetsAtOnceRequest(SyntheticTargetsRequest): + path: str = SyntheticTargetsRequest.SINGLE_REQUEST_FOR_ALL_TARGETS Any other default value for `path` should be considered invalid and yield undefined behaviour. (that is it may change without notice in future versions of Pants.) diff --git a/versioned_docs/version-2.18/docs/writing-plugins/the-target-api/extending-existing-targets.mdx b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/target-api/target-api-extending-targets.md similarity index 73% rename from versioned_docs/version-2.18/docs/writing-plugins/the-target-api/extending-existing-targets.mdx rename to versioned_docs/version-2.18/docs/markdown/Writing Plugins/target-api/target-api-extending-targets.md index f67041ee8..9977ea4df 100644 --- a/versioned_docs/version-2.18/docs/writing-plugins/the-target-api/extending-existing-targets.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/target-api/target-api-extending-targets.md @@ -1,10 +1,9 @@ --- - title: Extending existing targets - sidebar_position: 3 ---- - -Adding new fields to target types. - +title: "Extending existing targets" +slug: "target-api-extending-targets" +excerpt: "Adding new fields to target types." +hidden: false +createdAt: "2020-05-07T22:38:39.512Z" --- ## When to add new fields? @@ -13,15 +12,15 @@ Adding new fields is useful when you are already using a target type, but need t For example, if you're writing a codegen plugin to convert a `protobuf_source` target into Java source files, you may want to add a `jdk_version` field to `protobuf_source`. -If you are instead adding support for a new language, [create a new target type](./creating-new-targets.mdx). +If you are instead adding support for a new language, [create a new target type](doc:target-api-new-targets). -If you want to reduce boilerplate in BUILD files, such as changing default values, use [macros](../macros.mdx). +If you want to reduce boilerplate in BUILD files, such as changing default values, use [macros](doc:macros). ## How to add new fields -First, [define the field](./creating-new-fields.mdx). Then, register it by using `OriginalTarget.register_plugin_field(CustomField)`, like this: +First, [define the field](doc:target-api-new-fields). Then, register it by using `OriginalTarget.register_plugin_field(CustomField)`, like this: -```python title="plugins/register.py" +```python plugins/register.py from pants.backend.codegen.protobuf.target_types import ProtobufSourceTarget from pants.engine.target import IntField diff --git a/versioned_docs/version-2.18/docs/writing-plugins/the-target-api/creating-new-fields.mdx b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/target-api/target-api-new-fields.md similarity index 81% rename from versioned_docs/version-2.18/docs/writing-plugins/the-target-api/creating-new-fields.mdx rename to versioned_docs/version-2.18/docs/markdown/Writing Plugins/target-api/target-api-new-fields.md index 25564e043..8612fb365 100644 --- a/versioned_docs/version-2.18/docs/writing-plugins/the-target-api/creating-new-fields.mdx +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/target-api/target-api-new-fields.md @@ -1,10 +1,9 @@ --- - title: Creating new fields - sidebar_position: 1 ---- - -How to create a Field, including the available templates. - +title: "Creating new fields" +slug: "target-api-new-fields" +excerpt: "How to create a Field, including the available templates." +hidden: false +createdAt: "2020-05-07T22:38:40.352Z" --- Before creating a new target type, the first step is to create all of the target type's fields. @@ -53,11 +52,11 @@ class TimeoutField(IntField): If you set `required = True`, the `default` will be ignored. -:::note Reminder: subclass existing fields to modify their behavior -If you want to change how an existing field behaves, you should subclass the original field. For example, if you want to change a default value, subclass the original field. When doing this, you only need to override the properties you want to change. - -See [Concepts](./concepts.mdx) for how subclassing plays a key role in the Target API. -::: +> 📘 Reminder: subclass existing fields to modify their behavior +> +> If you want to change how an existing field behaves, you should subclass the original field. For example, if you want to change a default value, subclass the original field. When doing this, you only need to override the properties you want to change. +> +> See [Concepts](doc:target-api-concepts) for how subclassing plays a key role in the Target API. ## Adding custom validation @@ -88,11 +87,11 @@ class UploadTimeout(IntField): Be careful to use the same type hint for the parameter `raw_value` as used in the template. This is used to generate the documentation in `pants help my_target`. -:::caution Cannot use new type hint syntax with `compute_value()` and `default` -You cannot use the [new type hint syntax](https://mypy-lang.blogspot.com/2021/01/) with the Target API, i.e. `list[str] | None` instead of `Optional[List[str]]`. The new syntax breaks `pants help`. - -Otherwise, it's safe to use the new syntax when writing plugins. -::: +> 🚧 Cannot use new type hint syntax with `compute_value()` and `default` +> +> You cannot use the [new type hint syntax](https://mypy-lang.blogspot.com/2021/01/) with the Target API, i.e. `list[str] | None` instead of `Optional[List[str]]`. The new syntax breaks `pants help`. +> +> Otherwise, it's safe to use the new syntax when writing plugins. ## Available templates @@ -118,31 +117,30 @@ Use this when you expect a float. This will reject integers. Use this when you expect a single string. -:::note `StringField` can be like an enum -You can set the class property `valid_choices` to limit what strings are acceptable. This class property can either be a tuple of strings or an `enum.Enum`. - -For example: - -```python -class LeafyGreensField(StringField): -alias = "leafy_greens" -valid_choices = ("kale", "spinach", "chard") -``` - -or: - -```python -class LeafyGreens(Enum): -KALE = "kale" -SPINACH = "spinach" -CHARD = "chard" - -class LeafyGreensField(StringField): -alias = "leafy_greens" -valid_choices = LeafyGreens -``` - -::: +> 📘 `StringField` can be like an enum +> +> You can set the class property `valid_choices` to limit what strings are acceptable. This class property can either be a tuple of strings or an `enum.Enum`. +> +> For example: +> +> ```python +> class LeafyGreensField(StringField): +> alias = "leafy_greens" +> valid_choices = ("kale", "spinach", "chard") +> ``` +> +> or: +> +> ```python +> class LeafyGreens(Enum): +> KALE = "kale" +> SPINACH = "spinach" +> CHARD = "chard" +> +> class LeafyGreensField(StringField): +> alias = "leafy_greens" +> valid_choices = LeafyGreens +> ``` ### `StringSequenceField` @@ -218,13 +216,13 @@ class VersionField(Field): return value_or_default ``` -:::tip Asking for help -Have a tricky field you're trying to write? We would love to help! See [Getting Help](/community/members). -::: +> 👍 Asking for help +> +> Have a tricky field you're trying to write? We would love to help! See [Getting Help](doc:the-pants-community). ## Examples -```python title="plugins/target_types.py" +```python plugins/target_types.py from typing import Optional from pants.engine.target import ( diff --git a/versioned_docs/version-2.18/docs/markdown/Writing Plugins/target-api/target-api-new-targets.md b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/target-api/target-api-new-targets.md new file mode 100644 index 000000000..3d2c1254f --- /dev/null +++ b/versioned_docs/version-2.18/docs/markdown/Writing Plugins/target-api/target-api-new-targets.md @@ -0,0 +1,101 @@ +--- +title: "Creating new targets" +slug: "target-api-new-targets" +excerpt: "How to add a custom target type." +hidden: false +createdAt: "2020-05-07T22:38:40.570Z" +--- + +## When to create a new target type? + +Adding new target types is most helpful when you are adding support for a new language. + +If you instead want to reduce boilerplate in BUILD files, such as changing default values, use [macros](doc:macros) . + +If you are already using a target type, but need to store additional metadata for your plugin, [add a new field to the target type](doc:target-api-extending-targets). + +## Step 1: Define the target type + +To define a new target: + +1. Subclass `pants.engine.target.Target`. +2. Define the class property `alias`. This is the symbol that people use in BUILD files. +3. Define the class property `core_fields`. +4. Define the class property `help`. This is used by `pants help`. + +For `core_fields`, we recommend including `COMMON_TARGET_FIELDS` to add the useful `tags` and `description` fields. You will also often want to add `Dependencies`, and either `SingleSourceField` or `MultipleSourcesField`. + +```python plugins/target_types.py +from pants.engine.target import ( + COMMON_TARGET_FIELDS, + Dependencies, + SingleSourceField, + StringField, + Target, +) + + +class CustomField(StringField): + alias = "custom_field" + help = "A custom field." + + +class CustomTarget(Target): + alias = "custom_target" + core_fields = (*COMMON_TARGET_FIELDS, Dependencies, SingleSourceField, CustomField) + help = ( + "A custom target to demo the Target API.\n\n" + "This docstring will be used in the output of " + "`pants help $target_type`." + ) +``` + +> 📘 Tip: subclass `SingleSourceField` or `MultipleSourcesField` +> +> Use `SingleSourceField` for `source: str` and `MultipleSourcesField` for `sources: Iterable[str]`. +> +> You will often want to subclass either of these fields to give custom functionality: +> +> - set the `default` +> - set `expected_file_extensions`, e.g. to `(".json", ".txt")` +> - set `expected_num_files`, e.g. to `1` or `range(0, 5)` (i.e. 0 to 4 files) + +> 📘 Using the fields of an existing target type +> +> Sometimes, you may want to create a new target type that behaves similarly to one that already exists, except for some small changes. +> +> For example, you might like how `pex_binary` behaves in general, but you have a Django application and keep writing `entry_point="manage.py"`. Normally, you should write a [macro](doc:macros) to set this default value; but, here, you also want to add new Django-specific fields, so you decide to create a new target type. +> +> Rather than subclassing the original target type, use this pattern: +> +> ```python +> from pants.backend.python.target_types import PexBinaryTarget, PexEntryPointField +> from pants.engine.target import Target +> from pants.util.ordered_set import FrozenOrderedSet +> +> class DjangoEntryPointField(PexEntryPointField): +> default = "manage.py" +> +> +> class DjangoManagePyTarget(Target): +> alias = "django_manage_py" +> core_fields = ( +> *(FrozenOrderedSet(PexBinaryTarget.core_fields) - {PexEntryPoint}), +> DjangoEntryPointField, +> ) +> ``` +> +> In this example, we register all of the fields of `PexBinaryTarget`, except for the field `PexEntryPoint `. We instead register our custom field `DjangoEntryPointField `. + +## Step 2: Register the target type in `register.py` + +Now, in your [`register.py`](doc:plugins-overview), add the target type to the `def target_types()` entry point. + +```python plugins/register.py +from plugins.target_types import CustomTarget + +def target_types(): + return [CustomTarget] +``` + +You can confirm this works by running `pants help custom_target`. diff --git a/versioned_docs/version-2.18/docs/python/_category_.json b/versioned_docs/version-2.18/docs/python/_category_.json deleted file mode 100644 index 135b4c603..000000000 --- a/versioned_docs/version-2.18/docs/python/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Python", - "position": 5 -} diff --git a/versioned_docs/version-2.18/docs/python/goals/_category_.json b/versioned_docs/version-2.18/docs/python/goals/_category_.json deleted file mode 100644 index b680714e8..000000000 --- a/versioned_docs/version-2.18/docs/python/goals/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Goals", - "position": 2 -} diff --git a/versioned_docs/version-2.18/docs/python/goals/index.mdx b/versioned_docs/version-2.18/docs/python/goals/index.mdx deleted file mode 100644 index 376096c5c..000000000 --- a/versioned_docs/version-2.18/docs/python/goals/index.mdx +++ /dev/null @@ -1,16 +0,0 @@ ---- - title: Goals - sidebar_position: 1 ---- - -Details on the Python-related goals implemented in the Python backend. - ---- - -- [fmt](./fmt.mdx): autoformat source code. -- [lint](./lint.mdx): lint source code in check-only mode. -- [package](./package.mdx): package your code into an asset, e.g. a wheel or a PEX file. -- [repl](./repl.mdx): open a REPL (standard shell or IPython). -- [run](./run.mdx): run an executable or script. -- [test](./test.mdx): run tests with Pytest. -- [check](./check.mdx): run MyPy. diff --git a/versioned_docs/version-2.18/docs/python/goals/lint.mdx b/versioned_docs/version-2.18/docs/python/goals/lint.mdx deleted file mode 100644 index 6c4e2f222..000000000 --- a/versioned_docs/version-2.18/docs/python/goals/lint.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- - title: lint - sidebar_position: 2 ---- - -Lint source code. - ---- - -The `lint` goal runs both dedicated linters and any formatters in check-only mode: - -- Autoflake -- Bandit -- Black -- Docformatter -- Flake8 -- isort -- Pydocstyle -- Pylint -- Pyupgrade -- yapf - -See [here](../python-overview/linters-and-formatters.mdx) for how to opt in to specific formatters and linters, along with how to configure them. - -:::tip Benefit of Pants: runs linters in parallel -Pants will run all activated linters at the same time for improved performance. As explained at [Python linters and formatters](../python-overview/linters-and-formatters.mdx), Pants also uses some other techniques to improve concurrency, such as dynamically setting the `--jobs` option for linters that have it. -::: - -:::tip Benefit of Pants: lint Python 2-only and Python 3-only code at the same time -Bandit, Flake8, and Pylint depend on which Python interpreter the tool is run with. Normally, if your project has some Python 2-only files and some Python 3-only files, you would not be able to run the linter in a single command because it would fail to parse your code. - -Instead, Pants will do the right thing when you run `pants lint ::`. Pants will group your targets based on their [interpreter constraints](../python-overview/interpreter-compatibility.mdx), and run all the Python 2 targets together and all the Python 3 targets together. -::: diff --git a/versioned_docs/version-2.18/docs/python/integrations/_category_.json b/versioned_docs/version-2.18/docs/python/integrations/_category_.json deleted file mode 100644 index cefe73a6c..000000000 --- a/versioned_docs/version-2.18/docs/python/integrations/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Integrations", - "position": 3 -} diff --git a/versioned_docs/version-2.18/docs/python/integrations/index.mdx b/versioned_docs/version-2.18/docs/python/integrations/index.mdx deleted file mode 100644 index dd58eefd3..000000000 --- a/versioned_docs/version-2.18/docs/python/integrations/index.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- - title: Integrations - sidebar_position: 2 ---- - -Useful integrations for Python. - ---- - -- [Protobuf and gRPC](./protobuf-and-grpc.mdx) -- [Thrift](./thrift.mdx) -- [AWS Lambda](./aws-lambda.mdx) -- [Google Cloud Functions](./google-cloud-functions.mdx) -- [PyOxidizer](./pyoxidizer.mdx) -- [Jupyter](./jupyter.mdx) diff --git a/versioned_docs/version-2.18/docs/python/integrations/thrift.mdx b/versioned_docs/version-2.18/docs/python/integrations/thrift.mdx deleted file mode 100644 index e72f6ed37..000000000 --- a/versioned_docs/version-2.18/docs/python/integrations/thrift.mdx +++ /dev/null @@ -1,144 +0,0 @@ ---- - title: Thrift - sidebar_position: 1 ---- - -How to generate Python from Thrift. - ---- - -When your Python code imports Thrift generated files, Pants will detect the imports and run the Apache Thrift compiler to generate those files. - -:::note Example repository -See [the codegen example repository](https://github.com/pantsbuild/example-codegen) for an example of using Thrift to generate Python. -::: - -:::tip Benefit of Pants: generated files are always up-to-date -With Pants, there's no need to manually regenerate your code or check it into version control. Pants will ensure you are always using up-to-date files in your builds. - -Thanks to fine-grained caching, Pants will regenerate the minimum amount of code required when you do make changes. -::: - -## Step 1: Activate the Thrift Python backend - -Add this to your `pants.toml`: - -```toml title="pants.toml" -[GLOBAL] -backend_packages.add = [ - "pants.backend.codegen.thrift.apache.python", - "pants.backend.python", -] -``` - -You will also need to make sure that `thrift` is discoverable on your PATH, as Pants does not [install Thrift](https://thrift.apache.org/docs/install/) for you. Alternatively, you can tell Pants where to discover Thrift: - -```toml title="pants.toml" -[apache-thrift] -# Defaults to the special string "", which expands to your $PATH. -thrift_search_paths = ["/usr/bin"] -``` - -This backend adds the new [`thrift_source`](../../../reference/targets/thrift_source.mdx) target, which you can confirm by running `pants help thrift_source`. - -To reduce boilerplate, you can also use the [`thrift_sources`](../../../reference/targets/thrift_sources.mdx) target, which generates one `thrift_source` target per file in the `sources` field. - -```python title="BUILD" -thrift_sources(name="thrift", sources=["user.thrift", "admin.thrift"]) - -# Spiritually equivalent to: -thrift_source(name="user", source="user.thrift") -thrift_source(name="admin", source="admin.thrift") - -# Thanks to the default `sources` value of '*.thrift', spiritually equivalent to: -thrift_sources(name="thrift") -``` - -## Step 2: Set up the `thrift` runtime library - -Generated Python files require the [`thrift` dependency](https://pypi.org/project/thrift/) for their imports to work properly. - -Add `thrift` to your project, e.g. your `requirements.txt` (see [Third-party dependencies](../python-overview/third-party-dependencies.mdx)). - -```text title="requirements.txt" -thrift==0.15.0 -``` - -Pants will then automatically add these dependencies to your `thrift_sources` targets created in the next step. - -## Step 3: Generate `thrift_sources` target - -Run [`pants tailor ::`](../../getting-started/initial-configuration.mdx#5-generate-build-files) for Pants to create a `thrift_sources` target wherever you have `.thrift` files: - -``` -$ pants tailor :: -Created src/thrift/BUILD: - - Add thrift_sources target thrift -``` - -Pants will use [dependency inference](../../using-pants/key-concepts/targets-and-build-files.mdx) for any `import` statements in your `.thrift` files, which you can confirm by running `pants dependencies path/to/file.thrift`. You should also see the `python_requirement` target for the `thrift` library from the previous step. - -## Step 4: Confirm Python imports are working - -Now, you can import the generated Python modules in your Python code. - -For each Thrift file, the compiler will generate at least three files `__init__.py`, `ttypes.py`, and `constants.py`. The location of those files—and corresponding imports—depends on whether you set `namespace py` in your `.thrift` file: - -| `namespace py` | Behavior | Example | -| :------------- | :-------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| unset | Files generated as top-level modules, without any prefix directories. | `models/user.thrift`

Generated:

- `__init__.py`
- `user/__init__.py`
- `user/constants.py`
- `user/ttypes.py`Python import:
`import user.ttypes` | -| set | Files generated into the namespace. | `models/user.thrift`, with `namespace py custom_namespace.user`

Generated:

- `__init__.py`
- `custom_namespace/__init__.py`
- `custom_namespace/user/__init__.py`
- `custom_namespace/user/constants.py`
- `custom_namespace/user/ttypes.py`Python import:
`import custom_namespace.user.ttypes` | - -As shown in the table, your Python imports depend on whether the Thrift file uses `namespace py`. - -Imports behave the same regardless of whether you have [source roots](../../using-pants/key-concepts/source-roots.mdx), such as `src/thrift`. The import will still either be the top-level file like `user.ttypes` or the custom namespace. - -Pants's dependency inference will detect Python imports of Thrift modules, which you can confirm by running `pants dependencies path/to/file.py`. - -You can also [manually add](../../using-pants/key-concepts/targets-and-build-files.mdx) the dependency: - -```python title="src/py/BUILD" -python_sources(dependencies=["models:models"]) -``` - -:::note TIp: set `namespace py` -Pants can handle Thrift regardless of whether you set `namespace py`. - -However, it's often a good idea to set the namespace because it can make your imports more predictable and declarative. It also reduces the risk of your Thrift file names conflicting with other Python modules used, such as those from third-party requirements. - -For example, compare `import user.ttypes` to `import codegen.models.user.ttypes`. -::: - -:::note Run `pants export-codegen ::` to inspect the files -`pants export-codegen ::` will run all relevant code generators and write the files to `dist/codegen` using the same paths used normally by Pants. - -You do not need to run this goal for codegen to work when using Pants; `export-codegen` is only for external consumption outside of Pants. -::: - -## Multiple resolves - -If you're using [multiple resolves](../python-overview/third-party-dependencies.mdx) (i.e. multiple lockfiles), then you may need to set the `python_resolve` field. `thrift_source` targets only work with a single resolve, meaning, for example, that a `python_source` target that uses the resolve 'a' can only depend on Thrift targets that also uses this same resolve. - -By default, `thrift_source` / `thrift_sources` targets use the resolve set by the option `[python].default_resolve`. To use a different resolve, set the field `python_resolve: str` to one of the values from the option `[python].resolves`. - -You must also make sure that any resolves that use codegen include the `python_requirement` target for the `thrift` runtime library from Step 2. Pants will eagerly validate this for you. - -If the same Thrift files should work with multiple resolves, you can use the -[`parametrize`](../../using-pants/key-concepts/targets-and-build-files.mdx#parametrizing-targets) mechanism. - -For example: - -```python title="BUILD" -python_requirement( - name="thrift-requirement", - # Here, we use the same version of Thrift in both resolves. You could instead create - # a distinct target per resolve so that they have different versions. - requirements=["thrift==0.15.0""], - resolve=parametrize("resolve-a", "resolve-b"), -) - -thrift_sources( - name="thrift", - python_resolve=parametrize("resolve-a", "resolve-b") -) -``` diff --git a/versioned_docs/version-2.18/docs/python/python-overview/_category_.json b/versioned_docs/version-2.18/docs/python/python-overview/_category_.json deleted file mode 100644 index 53cf59a20..000000000 --- a/versioned_docs/version-2.18/docs/python/python-overview/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Python overview", - "position": 1 -} diff --git a/versioned_docs/version-2.18/docs/python/python-overview/enabling-python-support.mdx b/versioned_docs/version-2.18/docs/python/python-overview/enabling-python-support.mdx deleted file mode 100644 index e0a97462d..000000000 --- a/versioned_docs/version-2.18/docs/python/python-overview/enabling-python-support.mdx +++ /dev/null @@ -1,71 +0,0 @@ ---- - title: Enabling Python support - sidebar_position: 0 ---- - -How to enable Pants's bundled Python backend package. - ---- - -:::note Example Python repository -See [here](https://github.com/pantsbuild/example-python) for examples of Pants's Python functionality. - -See [here](https://github.com/pantsbuild/example-django) for Django-specific examples. -::: - -Enable the Python [backend](../../using-pants/key-concepts/backends.mdx) like this: - -```toml title="pants.toml" -[GLOBAL] -... -backend_packages = [ - "pants.backend.python" -] -``` - -Pants use [`python_source`](../../../reference/targets/python_source.mdx) and [`python_test`](../../../reference/targets/python_test.mdx) targets to know which Python files to run on and to set any metadata. - -To reduce boilerplate, the [`python_sources`](../../../reference/targets/python_sources.mdx) target generates a `python_source` target for each file in its `sources` field, and [`python_tests`](../../../reference/targets/python_tests.mdx) generates a `python_test` target for each file in its `sources` field. - -```python title="BUILD" -python_sources(name="lib", sources=["dirutil.py", "strutil.py"]) -python_tests(name="tests", sources=["strutil_test.py"]) - -# Spiritually equivalent to: -python_source(name="dirutil", source="dirutil.py") -python_source(name="strutil", source="strutil.py") -python_test(name="strutil_test.py", source="strutil_test.py") - -# Thanks to the default `sources` values, spiritually equivalent to: -python_sources(name="lib") -python_tests(name="tests") -``` - -You can generate these targets by running [`pants tailor ::`](../../getting-started/initial-configuration.mdx#5-generate-build-files). - -``` -❯ pants tailor :: -Created project/BUILD: - - Add python_sources target project - - Add python_tests target tests -``` - -:::caution macOS users: you may need to change interpreter search paths -By default, Pants will look at both your `$PATH` and—if you use Pyenv—your `$(pyenv root)/versions` folder when discovering Python interpreters. Your `$PATH` likely includes the system Pythons at `/usr/bin/python` and `/usr/bin/python3`, which are known to have many issues like failing to install some dependencies. - -Pants will prefer new Python versions, like 3.6.10 over 3.6.3. Because macOS system Pythons are usually very old, they will usually be ignored. - -However, if you run into issues, you can set the `search_paths` option in the `[python-bootstrap]` scope: - -```toml -[python-bootstrap] -search_path = [ -# This will use all interpreters in `$(pyenv root)/versions`. -"", -# Brew usually installs Python here. -"/usr/local/bin", -] -``` - -See [here](./interpreter-compatibility.mdx#changing-the-interpreter-search-path) for more information. -::: diff --git a/versioned_docs/version-2.18/docs/python/python-overview/index.mdx b/versioned_docs/version-2.18/docs/python/python-overview/index.mdx deleted file mode 100644 index 9d125e279..000000000 --- a/versioned_docs/version-2.18/docs/python/python-overview/index.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- - title: Python overview - sidebar_position: 0 ---- - ---- - -The Python ecosystem has a great many tools for various features. Pants installs, configures, and invokes those tools for you, while taking care of orchestrating the workflow, caching results, and running concurrently. - -Pants currently supports the following goals and features for Python: - -| goal | underlying tools | -| :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| dependency resolution | [`pip`](./third-party-dependencies.mdx) | -| test running | [`pytest`](../goals/test.mdx) | -| linting/formatting | [`black`](../../../reference/subsystems/black.mdx), [`yapf`](../../../reference/subsystems/yapf.mdx), [`flake8`](../../../reference/subsystems/flake8.mdx), [`docformatter`](../../../reference/subsystems/docformatter.mdx), [`pydocstyle`](../../../reference/subsystems/pydocstyle.mdx) [`isort`](../../../reference/subsystems/isort.mdx), [`pylint`](../../../reference/subsystems/pylint.mdx), [`bandit`](../../../reference/subsystems/bandit.mdx), [`autoflake`](../../../reference/subsystems/autoflake.mdx), [`pyupgrade`](../../../reference/subsystems/pyupgrade.mdx) | -| typechecking | [MyPy](../goals/check.mdx) | -| code generation | [Protobuf](../integrations/protobuf-and-grpc.mdx) (including the `gRPC` and `MyPy` plugins), [Thrift](../integrations/thrift.mdx) | -| packaging | [`setuptools`](./building-distributions.mdx), [`pex`](../goals/package.mdx), [PyOxidizer](../integrations/pyoxidizer.mdx), [AWS lambda](../integrations/aws-lambda.mdx), [Google Cloud Function](../integrations/google-cloud-functions.mdx) | -| running a REPL | `python`, [`iPython`](../goals/repl.mdx) | - -There are also [goals](../../using-pants/project-introspection.mdx) for querying and understanding your dependency graph, and a robust [help system](../../using-pants/command-line-help.mdx). We're adding support for additional tools and features all the time, and it's straightforward to [implement your own](../../writing-plugins/plugins-overview.mdx). - -- [Enabling Python support](./enabling-python-support.mdx) -- [Third-party dependencies](./third-party-dependencies.mdx) -- [Interpreter compatibility](./interpreter-compatibility.mdx) -- [Linters and formatters](./linters-and-formatters.mdx) -- [Pex files](./pex-files.mdx) -- [Building distributions](./building-distributions.mdx) diff --git a/versioned_docs/version-2.18/docs/releases/_category_.json b/versioned_docs/version-2.18/docs/releases/_category_.json deleted file mode 100644 index d1ffbc980..000000000 --- a/versioned_docs/version-2.18/docs/releases/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Releases", - "position": 13 -} diff --git a/versioned_docs/version-2.18/docs/shell/_category_.json b/versioned_docs/version-2.18/docs/shell/_category_.json deleted file mode 100644 index e40d8ae62..000000000 --- a/versioned_docs/version-2.18/docs/shell/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Shell", - "position": 8 -} diff --git a/versioned_docs/version-2.18/docs/tutorials-coming-soon/_category_.json b/versioned_docs/version-2.18/docs/tutorials-coming-soon/_category_.json deleted file mode 100644 index 365f82b9a..000000000 --- a/versioned_docs/version-2.18/docs/tutorials-coming-soon/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Tutorials - Coming Soon!", - "position": 16 -} diff --git a/versioned_docs/version-2.18/docs/using-pants/_category_.json b/versioned_docs/version-2.18/docs/using-pants/_category_.json deleted file mode 100644 index 098e12f2b..000000000 --- a/versioned_docs/version-2.18/docs/using-pants/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Using Pants", - "position": 4 -} diff --git a/versioned_docs/version-2.18/docs/using-pants/key-concepts/_category_.json b/versioned_docs/version-2.18/docs/using-pants/key-concepts/_category_.json deleted file mode 100644 index c72aa4ca5..000000000 --- a/versioned_docs/version-2.18/docs/using-pants/key-concepts/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Key concepts", - "position": 1 -} diff --git a/versioned_docs/version-2.18/docs/using-pants/key-concepts/backends.mdx b/versioned_docs/version-2.18/docs/using-pants/key-concepts/backends.mdx deleted file mode 100644 index 093dd4274..000000000 --- a/versioned_docs/version-2.18/docs/using-pants/key-concepts/backends.mdx +++ /dev/null @@ -1,114 +0,0 @@ ---- - title: Backends - sidebar_position: 3 ---- - -How to enable specific functionality. - ---- - -Most Pants functionality is opt-in by adding the relevant _backend_ to the `[GLOBAL].backend_packages` option in `pants.toml`. For example: - -```toml title="pants.toml" -[GLOBAL] -backend_packages = [ - "pants.backend.shell", - "pants.backend.python", - "pants.backend.python.lint.black", -] -``` - -## Available stable backends - -This list is also available via `pants backends --help`, which includes any additional plugins in your repository that aren't built-in to Pants itself. - -| Backend | What it does | Docs | -| :--------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------- | -| `pants.backend.build_files.fmt.black` | Enables autoformatting `BUILD` files using `black`. | | -| `pants.backend.build_files.fmt.buildifier` | Enables autoformatting `BUILD` files using `buildifier`. | | -| `pants.backend.build_files.fmt.yapf` | Enables autoformatting `BUILD` files using `yapf`. | | -| `pants.backend.awslambda.python` | Enables generating an AWS Lambda zip file from Python code. | [AWS Lambda](../../python/integrations/aws-lambda.mdx) | -| `pants.backend.codegen.protobuf.lint.buf` | Activate the Buf formatter and linter for Protocol Buffers. | [Protobuf](../../python/integrations/protobuf-and-grpc.mdx) | -| `pants.backend.codegen.protobuf.python` | Enables generating Python from Protocol Buffers. Includes gRPC support. | [Protobuf and gRPC](../../python/integrations/protobuf-and-grpc.mdx) | -| `pants.backend.codegen.thrift.apache.python` | Enables generating Python from Apache Thrift. | [Thrift](../../python/integrations/thrift.mdx) | -| `pants.backend.docker` | Enables building, running, and publishing Docker images. | [Docker overview](../../docker/docker-overview.mdx) | -| `pants.backend.docker.lint.hadolint` | Enables Hadolint, a Docker linter: [https://github.com/hadolint/hadolint](https://github.com/hadolint/hadolint) | [Docker overview](../../docker/docker-overview.mdx) | -| `pants.backend.google_cloud_function.python` | Enables generating a Google Cloud Function from Python code. | [Google Cloud Function](../../python/integrations/google-cloud-functions.mdx) | -| `pants.backend.plugin_development` | Enables `pants_requirements` target. | [Plugins overview](../../writing-plugins/plugins-overview.mdx) | -| `pants.backend.python` | Core Python support. | [Enabling Python support](../../python/python-overview/enabling-python-support.mdx) | -| `pants.backend.python.mixed_interpreter_constraints` | Adds the `py-constraints` goal for insights on Python interpreter constraints. | [Interpreter compatibility](../../python/python-overview/interpreter-compatibility.mdx) | -| `pants.backend.python.lint.autoflake` | Enables Autoflake, which removes unused Python imports: [https://pypi.org/project/autoflake/](https://pypi.org/project/autoflake/) | [Linters and formatters](../../python/python-overview/linters-and-formatters.mdx) | -| `pants.backend.python.lint.bandit` | Enables Bandit, the Python security linter: [https://bandit.readthedocs.io/en/latest/](https://bandit.readthedocs.io/en/latest/). | [Linters and formatters](../../python/python-overview/linters-and-formatters.mdx) | -| `pants.backend.python.lint.black` | Enables Black, the Python autoformatter: [https://black.readthedocs.io/en/stable/](https://black.readthedocs.io/en/stable/). | [Linters and formatters](../../python/python-overview/linters-and-formatters.mdx) | -| `pants.backend.python.lint.docformatter` | Enables Docformatter, the Python docstring autoformatter: [https://github.com/myint/docformatter](https://github.com/myint/docformatter). | [Linters and formatters](../../python/python-overview/linters-and-formatters.mdx) | -| `pants.backend.python.lint.flake8` | Enables Flake8, the Python linter: [https://flake8.pycqa.org/en/latest/](https://flake8.pycqa.org/en/latest/). | [Linters and formatters](../../python/python-overview/linters-and-formatters.mdx) | -| `pants.backend.python.lint.isort` | Enables isort, the Python import autoformatter: [https://timothycrosley.github.io/isort/](https://timothycrosley.github.io/isort/). | [Linters and formatters](../../python/python-overview/linters-and-formatters.mdx) | -| `pants.backend.python.lint.pydocstyle` | Enables pydocstyle, a Python docstring convention checker: [https://www.pydocstyle.org/](https://www.pydocstyle.org/) | [Linters and formatters](../../python/python-overview/linters-and-formatters.mdx) | -| `pants.backend.python.lint.pylint` | Enables Pylint, the Python linter: [https://www.pylint.org](https://www.pylint.org) | [Linters and formatters](../../python/python-overview/linters-and-formatters.mdx) | -| `pants.backend.python.lint.pyupgrade` | Enables Pyupgrade, which upgrades to new Python syntax: [https://pypi.org/project/pyupgrade/](https://pypi.org/project/pyupgrade/) | [Linters and formatters](../../python/python-overview/linters-and-formatters.mdx) | -| `pants.backend.python.lint.yapf` | Enables Yapf, the Python formatter: [https://pypi.org/project/yapf/](https://pypi.org/project/yapf/) | [Linters and formatters](../../python/python-overview/linters-and-formatters.mdx) | -| `pants.backend.python.typecheck.mypy` | Enables MyPy, the Python type checker: [https://mypy.readthedocs.io/en/stable/](https://mypy.readthedocs.io/en/stable/). | [typecheck](../../python/goals/check.mdx) | -| `pants.backend.shell` | Core Shell support, including shUnit2 test runner. | [Shell overview](../../shell/shell-overview.mdx) | -| `pants.backend.shell.lint.shfmt` | Enables shfmt, a Shell autoformatter: [https://github.com/mvdan/sh](https://github.com/mvdan/sh). | [Shell overview](../../shell/shell-overview.mdx) | -| `pants.backend.shell.lint.shellcheck` | Enables Shellcheck, a Shell linter: [https://www.shellcheck.net/](https://www.shellcheck.net/). | [Shell overview](../../shell/shell-overview.mdx) | -| `pants.backend.tools.preamble` | Enables "preamble", a Pants fixer for copyright headers and shebang lines | [`preamble`](../../../reference/subsystems/preamble.mdx) | -| `pants.backend.tools.taplo` | Enables Taplo, a TOML autoformatter: [https://taplo.tamasfe.dev](https://taplo.tamasfe.dev) | | -| `pants.backend.url_handlers.s3` | Enables accessing s3 via credentials in `file(source=http_source(...))` | | - -## Available experimental backends - -Pants offers [additional backends as previews](https://blog.pantsbuild.org/quick-feedback-on-new-features-via-experimental-backends/) that are still in development. These backends may still undergo major changes to improve the interface or fix bugs, with fewer (or no) deprecation warnings. If any of these backends are relevant to you, please try them, [ask any questions](/community/getting-help) you have, and [contribute improvements](../../contributions/contribution-overview.mdx)! Volunteers like you jumping in to help is how these backends are promoted from preview to fully stable. - -The list of all backends (both stable and experimental) is also available via `pants backends --help-advanced`, which includes any additional plugins in your repository that aren't built-in to Pants itself. - -| Backend | What it does | Docs | -| :----------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------- | -| `pants.backend.experimental.adhoc` | Enables support for executing arbitrary runnable targets. | [Integrating new tools without plugins](../../ad-hoc-tools/integrating-new-tools-without-plugins.mdx) | -| `pants.backend.experimental.cc` | Enables core C and C++ support. | | -| `pants.backend.experimental.cc.lint.clangformat` | Enables clang-format, a C and C++ autoformatter: [https://clang.llvm.org/docs/ClangFormat.html](https://clang.llvm.org/docs/ClangFormat.html) | | -| `pants.backend.experimental.codegen.avro.java` | Enables generating Java from Avro | | -| `pants.backend.experimental.codegen.protobuf.go` | Enables generating Go from Protocol Buffers. | | -| `pants.backend.experimental.codegen.protobuf.java` | Enables generating Java from Protocol Buffers. | | -| `pants.backend.experimental.codegen.protobuf.scala` | Enables generating Scala from Protocol Buffers. | | -| `pants.backend.experimental.codegen.thrift.apache.java` | Enables generating Java from Thrift using the Apache Thrift generator. | | -| `pants.backend.experimental.codegen.thrift.scrooge.java` | Enables generating Java from Thrift using the Scrooge Thrift IDL compiler. | | -| `pants.backend.experimental.codegen.thrift.scrooge.scala` | Enables generating Scala from Thrift using the Scrooge Thrift IDL compiler. | | -| `pants.backend.experimental.cue` | Enables core Cue support: [https://cuelang.org/](https://cuelang.org/) | | -| `pants.backend.experimental.debian` | Enables support for packaging `.deb` files via `dpkg-deb` | | -| `pants.backend.experimental.go` | Enables core Go support. | [Go overview](../../go/go-overview.mdx) | -| `pants.backend.experimental.go.debug_goals` | Enables additional goals for introspecting Go targets | [Go overview](../../go/go-overview.mdx) | -| `pants.backend.experimental.go.lint.golangci_lint` | Enable golangci-lint, a Go linter: [https://golangci-lint.run](https://golangci-lint.run) | [Go overview](../../go/go-overview.mdx) | -| `pants.backend.experimental.go.lint.vet` | Enables support for running `go vet` | [Go overview](../../go/go-overview.mdx) | -| `pants.backend.experimental.helm` | Enables core Helm support: [https://helm.sh](https://helm.sh) | [Helm overview](../../helm/helm-overview.mdx) | -| `pants.backend.experimental.helm.check.kubeconfirm` | Enables Kubeconform, a fast Kubernetes manifest validator: [https://github.com/yannh/kubeconform](https://github.com/yannh/kubeconform) | [Helm overview](../../helm/helm-overview.mdx) | -| `pants.backend.experimental.java` | Enables core Java support. | [Java & Scala overview](../../java-and-scala/java-and-scala-overview.mdx) | -| `pants.backend.experimental.java.debug_goals` | Enable additional goals for introspecting Java targets | [Java & Scala overview](../../java-and-scala/java-and-scala-overview.mdx) | -| `pants.backend.experimental.java.lint.google_java_format` | Enables Google Java Format. | [Java & Scala overview](../../java-and-scala/java-and-scala-overview.mdx) | -| `pants.backend.experimental.javascript` | Enables core JavaScript support. | | -| `pants.backend.experimental.javascript.lint.prettier` | Enables Prettier, a JavaScript (and more) autoformatter: [https://prettier.io](https://prettier.io) | | -| `pants.backend.experimental.kotlin` | Enables core Kotlin support | [Kotlin](../../java-and-scala/kotlin.mdx) | -| `pants.backend.experimental.kotlin.debug_goals` | Enables additional goals for introspecting Kotlin targets | [Kotlin](../../java-and-scala/kotlin.mdx) | -| `pants.backend.experimental.kotlin.lint.ktlint` | Enables ktlint, an anti-bikeshedding linter with built-in formatter: [https://pinterest.github.io/ktlint/](https://pinterest.github.io/ktlint/) | [Kotlin](../../java-and-scala/kotlin.mdx) | -| `pants.backend.experimental.openapi` | Enables core OpenAPI support: [https://swagger.io/specification/](https://swagger.io/specification/) | [`openapi`](../../../reference/subsystems/openapi.mdx) | -| `pants.backend.experimental.openapi.codegen.java` | Enables generating Java from OpenAPI | | -| `pants.backend.experimental.openapi.lint.spectral` | Enables spectral: [https://github.com/stoplightio/spectral](https://github.com/stoplightio/spectral) | [`spectral`](../../../reference/subsystems/spectral.mdx) | -| `pants.backend.experimental.python` | Enables experimental rules for Python | | -| `pants.backend.experimental.python.framework.django` | Enables better support for projects using Django: [https://www.djangoproject.com](https://www.djangoproject.com) | | -| `pants.backend.experimental.python.framework.stevedore` | Enables better support for projects using stevedore: [https://docs.openstack.org/stevedore/](https://docs.openstack.org/stevedore/) | | -| `pants.backend.experimental.python.lint.add_trailing_comma` | Enables add-trailing-comma, a Python code formatter: [https://github.com/asottile/add-trailing-comma](https://github.com/asottile/add-trailing-comma) | [`add-trailing-comma`](../../../reference/subsystems/add-trailing-comma.mdx) | -| `pants.backend.experimental.python.lint.ruff` | Enables Ruff, an extremely fast Python linter: [https://beta.ruff.rs/docs/](https://beta.ruff.rs/docs/) | [Linters and formatters](../../python/python-overview/linters-and-formatters.mdx) | -| `pants.backend.experimental.python.packaging.pyoxidizer` | Enables `pyoxidizer_binary` target. | [PyOxidizer](../../python/integrations/pyoxidizer.mdx) | -| `pants.backend.experimental.python.typecheck.pyright` | Enables Pyright, a Python type checker: [https://github.com/microsoft/pyright](https://github.com/microsoft/pyright) | | -| `pants.backend.experimental.python.typecheck.pytype` | Enables Pytype, a Python type checker: [https://google.github.io/pytype/](https://google.github.io/pytype/) | | -| `pants.backend.experimental.rust` | Enables core Rust support. | | -| `pants.backend.experimental.scala` | Enables core Scala support. | [Java & Scala overview](../../java-and-scala/java-and-scala-overview.mdx) | -| `pants.backend.experimental.scala.debug_goals` | Enables additional goals for introspecting Scala targets | [Java & Scala overview](../../java-and-scala/java-and-scala-overview.mdx) | -| `pants.backend.experimental.scala.lint.scalafmt` | Enables the Scalafmt formatter. | [Java & Scala overview](../../java-and-scala/java-and-scala-overview.mdx) | -| `pants.backend.experimental.swift` | Enables core Swift support. | | -| `pants.backend.experimental.terraform` | Enables core Terraform support. | | -| `pants.backend.experimental.terraform.lint.tfsec` | Enables tfsec, for static analysis of Terraform: [https://aquasecurity.github.io/tfsec/](https://aquasecurity.github.io/tfsec/) | | -| `pants.backend.experimental.tools.workunit_logger` | Enables the workunit logger for debugging pants itself | [`workunit-logger`](../../../reference/subsystems/workunit-logger.mdx) | -| `pants.backend.experimental.tools.yamllint` | Enables yamllint, a linter for YAML files: [https://yamllint.readthedocs.io/](https://yamllint.readthedocs.io/) | [`yamllint`](../../../reference/subsystems/yamllint.mdx) | -| `pants.backend.experimental.visibility` | Enables `__dependencies_rules__` and `__dependents_rules__` | [Visibility](./targets-and-build-files.mdx#visibility) | -| `pants.backend.python.providers.experimental.pyenv` | Enables Pants to manage appropriate Python interpreters via pyenv | | -| `pants.backend.python.providers.experimental.pyenv.custom_install` | Enables customising how the pyenv provider builds a Python interpreter | | diff --git a/versioned_docs/version-2.18/docs/using-pants/key-concepts/index.mdx b/versioned_docs/version-2.18/docs/using-pants/key-concepts/index.mdx deleted file mode 100644 index a5cecf353..000000000 --- a/versioned_docs/version-2.18/docs/using-pants/key-concepts/index.mdx +++ /dev/null @@ -1,12 +0,0 @@ ---- - title: Key concepts - sidebar_position: 0 ---- - ---- - -- [Goals](./goals.mdx) -- [Targets and BUILD files](./targets-and-build-files.mdx) -- [Options](./options.mdx) -- [Backends](./backends.mdx) -- [Source roots](./source-roots.mdx) diff --git a/versioned_docs/version-2.18/docs/using-pants/remote-caching-&-execution/_category_.json b/versioned_docs/version-2.18/docs/using-pants/remote-caching-&-execution/_category_.json deleted file mode 100644 index 1dd264360..000000000 --- a/versioned_docs/version-2.18/docs/using-pants/remote-caching-&-execution/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Remote caching & execution", - "position": 9 -} diff --git a/versioned_docs/version-2.18/docs/using-pants/using-pants-in-ci.mdx b/versioned_docs/version-2.18/docs/using-pants/using-pants-in-ci.mdx deleted file mode 100644 index fc831095a..000000000 --- a/versioned_docs/version-2.18/docs/using-pants/using-pants-in-ci.mdx +++ /dev/null @@ -1,232 +0,0 @@ ---- - title: Using Pants in CI - sidebar_position: 6 ---- - -Suggestions for how to use Pants to speed up your CI (continuous integration). - ---- - -:::note Examples -See the example-python repository for an [example GitHub Actions worfklow](https://github.com/pantsbuild/example-python/blob/main/.github/workflows/pants.yaml). -::: - -## Directories to cache - -:::note The `init-pants` GitHub Action -If you're using GitHub Actions to run your CI workflows, then you can use our [standard action](https://github.com/pantsbuild/actions/tree/main/init-pants) to set up and cache the Pants bootstrap state. Otherwise, read on to learn how to configure this manually. -::: - -In your CI's config file, we recommend caching these directories: - -- `$HOME/.cache/nce` (Linux) or `$HOME/Library/Caches/nce` (macOS)
- This is the cache directory used by the [Pants launcher binary](../getting-started/installing-pants.mdx) to cache the assets, interpreters and venvs required to run Pants itself. Cache this against the Pants version, as specified in `pants.toml`. See the [pantsbuild/example-python](https://github.com/pantsbuild/example-python/blob/main/.github/workflows/pants.yaml) repo for an example of how to generate an effective cache key for this directory in GitHub Actions. -- `$HOME/.cache/pants/named_caches`
- Caches used by some underlying tools. Cache this against the inputs to those tools. For the `pants.backend.python` backend, named caches are used by PEX, and therefore its inputs are your lockfiles. Again, see [pantsbuild/example-python](https://github.com/pantsbuild/example-python/blob/main/.github/workflows/pants.yaml) for an example. - -If you're not using a fine-grained [remote caching](./remote-caching-&-execution/index.mdx) service, then you may also want to preserve the local Pants cache at `$HOME/.cache/pants/lmdb_store`. This has to be invalidated on any file that can affect any process, e.g., `hashFiles('**/*')` on GitHub Actions. - -Computing such a coarse hash, and saving and restoring large directories, can be unwieldy. So this may be impractical and slow on medium and large repos. - -A [remote cache service](./remote-caching-&-execution/index.mdx) integrates with Pants's fine-grained invalidation and avoids these problems, and is recommended for the best CI performance. - -See [Troubleshooting](./troubleshooting-common-issues.mdx#how-to-change-your-cache-directory) for how to change these cache locations. - -:::note Nuking the cache when too big -In CI, the cache must be uploaded and downloaded every run. This takes time, so there is a tradeoff where too large a cache will slow down your CI. - -You can use this script to nuke the cache when it gets too big: - -```bash -function nuke_if_too_big() { -path=$1 -limit_mb=$2 -size_mb=$(du -m -d0 "${path}" | cut -f 1) -if (( size_mb > limit_mb )); then -echo "${path} is too large (${size_mb}mb), nuking it." -rm -rf "${path}" -fi -} - -nuke_if_too_big ~/.cache/nce 512 -nuke_if_too_big ~/.cache/pants/named_caches 1024 -``` - -::: - -:::note Tip: check cache performance with `[stats].log` -Set the option `[stats].log = true` in `pants.ci.toml` for Pants to print metrics of your cache's performance at the end of the run, including the number of cache hits and the total time saved thanks to caching, e.g.: - -``` -local_cache_requests: 204 -local_cache_requests_cached: 182 -local_cache_requests_uncached: 22 -local_cache_total_time_saved_ms: 307200 -``` - -You can also add `plugins = ["hdrhistogram"]` to the `[GLOBAL]` section of `pants.ci.toml` for Pants to print histograms of cache performance, e.g. the size of blobs cached. -::: - -:::tip Remote caching -Rather than storing your cache with your CI provider, remote caching stores the cache in the cloud, using gRPC and the open-source Remote Execution API for low-latency and fine-grained caching. - -This brings several benefits over local caching: - -- All machines and CI jobs share the same cache. -- Remote caching downloads precisely what is needed by your run—when it's needed—rather than pessimistically downloading the entire cache at the start of the run. -- No download and upload stage for your cache. -- No need to "nuke" your cache when it gets too big. - -See [Remote Caching and Execution](./remote-caching-&-execution/index.mdx) for more information. -::: - -## Recommended commands - -With both approaches, you may want to shard the input targets into multiple CI jobs, for increased parallelism. See [Advanced Target Selection](./advanced-target-selection.mdx#sharding-the-input-targets). (This is typically less necessary when using [remote caching](./remote-caching-&-execution/index.mdx).) - -### Approach #1: only run over changed files - -Because Pants understands the dependencies of your code, you can use Pants to speed up your CI by only running tests and linters over files that actually made changes. - -We recommend running these commands in CI: - -```shell -❯ pants --version # Bootstrap Pants. -❯ pants \ - --changed-since=origin/main \ - tailor --check \ - update-build-files --check \ - lint -❯ pants \ - --changed-since=origin/main \ - --changed-dependents=transitive \ - check test -``` - -Because most linters do not care about a target's dependencies, we lint all changed files and targets, but not any dependents of those changes. - -Meanwhile, tests should be rerun when any changes are made to the tests _or_ to dependencies of those tests, so we use the option `--changed-dependents=transitive`. `check` should also run on any transitive changes. - -See [Advanced target selection](./advanced-target-selection.mdx) for more information on `--changed-since` and alternative techniques to select targets to run in CI. - -:::caution This will not handle all cases, like hooking up a new linter -For example, if you add a new plugin to Flake8, Pants will still only run over changed files, meaning you may miss some new lint issues. - -For absolute correctness, you may want to use Approach #2. Alternatively, add conditional logic to your CI, e.g. that any changes to `pants.toml` trigger using Approach #2. -::: - -:::note GitHub Actions: use `Checkout` -To use `--changed-since`, you may want to use the [Checkout action](https://github.com/actions/checkout). - -By default, Checkout will only fetch the latest commit; you likely want to set `fetch-depth` to fetch prior commits. -::: - -:::note GitLab CI: disable shallow clones or fetch main branch -GitLab's merge pipelines make a shallow clone by default, which only contains recent commits for the feature branch being merged. That severely limits `--changed-since`. There are two possible workarounds: - -1. Clone the entire repository by going to "CI / CD" settings and erase the number from the "Git shallow clone" field of the "General pipelines" section. Don't forget to "Save changes". This has the advantage of cloning everything, which also is the biggest long-term disadvantage. -2. A more targeted and hence light-weight intervention leaves the shallow clone setting at its default value and instead fetches the `main` branch as well: - -``` -git branch -a -git remote set-branches origin main -git fetch --depth 1 origin main -git branch -a -``` - -The `git branch` commands are only included to print out all available branches before and after fetching `origin/main`. -::: - -:::note Using partial clones in CI -Shallow clones are fast, but have the disadvantage of breaking `--changed-since` if an insufficient amount of depth is fetched from remote. This is particularly acute for feature branches that are very out-of-date or have a large number of commits. - -[Partial clones](https://git-scm.com/docs/partial-clone) are still quite fast, have the advantage of not breaking `--changed-since`, and don't require any depth setting. Unlike shallow clones, Git will fetch trees and blobs on-demand as it needs them without failing. - -If your CI does not support partial clones directly, you can define your own custom checkout strategy: - -- Treeless: `git clone --filter=tree:0 ` -- Blobless: `git clone --filter=blob:none ` - -As a workaround to [#20027](https://github.com/pantsbuild/pants/issues/20027) permission errors, you might need to run this after the cloning the repo: - -`git config core.sshCommand "env SSH_AUTH_SOCK=$SSH_AUTH_SOCK ssh"` -::: - -### Approach #2: run over everything - -Alternatively, you can simply run over all your code. Pants's caching means that you will not need to rerun on changed files. - -```bash -❯ pants --version # Bootstrap Pants. -❯ pants \ - tailor --check \ - update-build-files --check \ - lint check test :: -``` - -However, when the cache gets too big, it should be nuked (see "Directories to cache"), so your CI may end up doing more work than Approach #1. - -This approach works particularly well if you are using [remote caching](./remote-caching-&-execution/remote-caching.mdx). - -## Configuring Pants for CI: `pants.ci.toml` (optional) - -Sometimes, you may want config specific to your CI, such as turning on test coverage reports. If you want CI-specific config, create a dedicated `pants.ci.toml` [config file](./key-concepts/options.mdx). For example: - -```toml title="pants.ci.toml" -[GLOBAL] -# Colors often work in CI, but the shell is usually not a TTY so Pants -# doesn't attempt to use them by default. -colors = true - -[stats] -log = true - -[test] -use_coverage = true - -[coverage-py] -report = ["xml"] -global_report = true - -[pytest] -args = ["-vv", "--no-header"] -``` - -Then, in your CI script or config, set the environment variable `PANTS_CONFIG_FILES=pants.ci.toml` to use this new config file, in addition to `pants.toml`. - -### Tuning resource consumption (advanced) - -Pants allows you to control its resource consumption. These options all have sensible defaults. In most cases, there is no need to change them. However, you may benefit from tuning these options. - -Concurrency options: - -- [`process_execution_local_parallelism`](../../reference/global-options.mdx#section-process-execution-local-parallelism): number of concurrent processes that may be executed locally. -- [`rule_threads_core`](../../reference/global-options.mdx#section-rule-threads-core): number of threads to keep active to execute `@rule` logic. -- [`rule_threads_max`](../../reference/global-options.mdx#section-rule-threads-max): maximum number of threads to use to execute `@rule` logic. - -Memory usage options: - -- [`pantsd`](../../reference/global-options.mdx#section-pantsd): enable or disable the Pants daemon, which uses an in-memory cache to speed up subsequent runs after the first run in CI. -- [`pantsd_max_memory_usage`](../../reference/global-options.mdx#section-pantsd-max-memory-usage): reduce or increase the size of Pantsd's in-memory cache. - -The default test runners for these CI providers have the following resources. If you are using a custom runner, e.g. enterprise, check with your CI provider. - -| CI Provider | Cores | RAM | Docs | -| :--------------------------- | :---- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------ | -| GitHub Actions, Linux | 2 | 7 GB | [link](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources) | -| Travis, Linux | 2 | 7.5 GB | [link](https://docs.travis-ci.com/user/reference/overview/#virtualisation-environment-vs-operating-system) | -| Circle CI, Linux, free plan | 2 | 4 GB | [link](https://circleci.com/docs/2.0/credits/#free-plan) | -| GitLab, Linux shared runners | 1 | 3.75 GB | [link](https://docs.gitlab.com/ee/user/gitlab_com/#linux-shared-runners) | - -## Tip: store Pants logs as artifacts - -We recommend that you configure your CI system to store the pants log (`.pantsd.d/pants.log`) as a build artifact, so that it is available in case you need to troubleshoot CI issues. - -Different CI providers and systems have different ways to configure build artifacts: - -- Circle CI - [Storing artifacts](https://circleci.com/docs/2.0/artifacts/) -- Github Actions - [Storing Artifacts](https://docs.github.com/en/actions/guides/storing-workflow-data-as-artifacts) - [example in the pants repo](https://github.com/pantsbuild/pants/pull/11860) -- Bitbucket pipelines - [Using artifacts](https://support.atlassian.com/bitbucket-cloud/docs/use-artifacts-in-steps/) -- Jenkins - [Recording artifacts](https://www.jenkins.io/doc/pipeline/tour/tests-and-artifacts/) - -It's particularly useful to configure your CI to always upload the log, even if prior steps in your pipeline failed. diff --git a/versioned_docs/version-2.18/docs/writing-plugins/_category_.json b/versioned_docs/version-2.18/docs/writing-plugins/_category_.json deleted file mode 100644 index 5a6e45ef4..000000000 --- a/versioned_docs/version-2.18/docs/writing-plugins/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Writing Plugins", - "position": 12 -} diff --git a/versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/_category_.json b/versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/_category_.json deleted file mode 100644 index 7308847dd..000000000 --- a/versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Common plugin tasks", - "position": 5 -} diff --git a/versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/index.mdx b/versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/index.mdx deleted file mode 100644 index a7789606c..000000000 --- a/versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/index.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- - title: Common plugin tasks - sidebar_position: 4 ---- - ---- - -- [Add a linter](./add-a-linter.mdx) -- [Add a formatter](./add-a-formatter.mdx) -- [Add codegen](./add-codegen.mdx) -- [Add a REPL](./add-a-repl.mdx) -- [Custom `setup-py` kwargs](./custom-python-artifact-kwargs.mdx) -- [Plugin upgrade guide](./plugin-upgrade-guide.mdx) diff --git a/versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/plugin-helpers.mdx b/versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/plugin-helpers.mdx deleted file mode 100644 index b1fe7cd61..000000000 --- a/versioned_docs/version-2.18/docs/writing-plugins/common-plugin-tasks/plugin-helpers.mdx +++ /dev/null @@ -1,30 +0,0 @@ ---- - title: Plugin helpers - sidebar_position: 999 ---- - -Helpers which make writing plugins easier. - ---- - -Pants has helpers to make writing plugins easier. - -## Python - -### Lockfiles - -The lockfiles for most Python tools fit into common categories. Pants has helpers to generate the rules for lockfile generation. - -- A single Python package that could be installed with `pip install my_tool` - -```python -from pants.backend.python.subsystems.python_tool_base import ( - LockfileRules, - PythonToolBase, -) - -class Isort(PythonToolBase): - options_scope = "isort" - ... - lockfile_rules_type = LockfileRules.SIMPLE -``` diff --git a/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/_category_.json b/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/_category_.json deleted file mode 100644 index d6dfc1f87..000000000 --- a/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "The Rules API", - "position": 4 -} diff --git a/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/index.mdx b/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/index.mdx deleted file mode 100644 index eb243a93d..000000000 --- a/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/index.mdx +++ /dev/null @@ -1,20 +0,0 @@ ---- - title: The Rules API - sidebar_position: 3 ---- - -Adding logic to your plugin. - ---- - -- [Concepts](./concepts.mdx) -- [Goal rules](./goal-rules.mdx) -- [Options and subsystems](./options-and-subsystems.mdx) -- [File system](./file-system.mdx) -- [Processes](./processes.mdx) -- [Installing tools](./installing-tools.mdx) -- [Rules and the Target API](./rules-and-the-target-api.mdx) -- [Union rules (advanced)](./union-rules-advanced.mdx) -- [Logging and dynamic output](./logging-and-dynamic-output.mdx) -- [Testing rules](./testing-plugins.mdx) -- [Tips and debugging](./tips-and-debugging.mdx) diff --git a/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/options-and-subsystems.mdx b/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/options-and-subsystems.mdx deleted file mode 100644 index fe1704037..000000000 --- a/versioned_docs/version-2.18/docs/writing-plugins/the-rules-api/options-and-subsystems.mdx +++ /dev/null @@ -1,100 +0,0 @@ ---- - title: Options and subsystems - sidebar_position: 2 ---- - -How to add options to your plugin. - ---- - -## Defining options - -As explained in [Options](../../using-pants/key-concepts/options.mdx), options are partitioned into named scopes, like `[test]` and `[isort]`. Each of these scopes corresponds to a _subsystem_. - -To add new options: - -1. Define a subclass of `Subsystem` from `pants.subsystem.subsystem`. - 1. Set the class property `options_scope` with the name of the subsystem. - - This value will be prepended to all options in the subsystem, e.g. `--skip` will become `--shellcheck-skip`. - 2. Set the class property `help`, which is used by `pants help`. -2. Add new options through `pants.options.option_types` class attributes. -3. Register the `Subsystem` with `Subsystem.rules()` and `register.py`. - - You don't need `Subsystem.rules()` if the `Subsystem` is used in an `@rule` because `collect_rules()` will recognize it. It doesn't hurt to keep this around, though. - -```python title="pants-plugins/example/shellcheck.py" -from pants.option.option_types import BoolOption -from pants.option.subsystem import Subsystem - - -class ShellcheckSubsystem(Subsystem): - options_scope = "shellcheck" - help = "The Shellcheck linter." - - config_discovery = BoolOption( - default=True, - advanced=True, - help="Whether Pants should...", - ) - - -def rules(): - return [*ShellcheckSubsystem.rules()] -``` - -```python title="pants-plugins/example/register.py" -from example import shellcheck - -def rules(): - return [*shellcheck.rules()] -``` - -The subsystem should now show up when you run `pants help shellcheck`. - -:::note `GoalSubsystem` -As explained in [Goal rules](./goal-rules.mdx), goals use a subclass of `Subsystem`: `GoalSubsystem` from `pants.engine.goal`. - -`GoalSubsystem` behaves the same way as a normal subsystem, except that you set the class property `name` rather than `options_scope`. The `name` will auto-populate the `options_scope`. -::: - -### Option types - -These classes correspond to the option types at [Options](../../using-pants/key-concepts/options.mdx). - -Every option type requires that you set the keyword argument `help`. - -Most types require that you set `default`. You can optionally set `advanced=True` with every option -for it to only show up with `help-advanced`. - -The option name will default to the class attribute name, e.g. `my_opt = StrOption()` will default to `--my-opt`. -You can instead pass a string positional argument, e.g. `my_opt = StrOption("--different-name")`. - -| Class name | Notes | -| :------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `StrOption` | Must set `default` to a `str` or `None`. | -| `BoolOption` | Must set `default` to a `bool` or `None`. TODO

Reminder when choosing a flag name: Pants will recognize the command line argument `--no-my-flag-name` as equivalent to `--my-flag-name=false`. | -| `IntOption` | Must set `default` to an `int` or `None`. | -| `FloatOption` | Must set `default` to a `float` or `None`. | -| `EnumOption` | This is like `StrOption`, but with the valid choices constrained to your enum.

To use, define an `enum.Enum`. The values of your enum will be what users can type, e.g. `'kale'` and `'spinach'` below:

`python
class LeafyGreens(Enum):
KALE = "kale"
SPINACH = "spinach"
`You must either set `default` to a value from your enum or `None`. If you set `default=None`, you must set `enum_type`. | -| List options:

- `StrListOption`
- `BoolListOption`
- `IntListOption`
- `FloatListOption`
- `EnumListOption` | Default is `[]` if `default` is not set.

For `EnumListOption`, you must set the keyword argument `enum_type`. | -| `DictOption` | Default is `{}` if `default` is not set.

Currently, Pants does not offer any validation of the dictionary entries, e.g. `dict[str, str]` vs `dict[str, list[str]]`. (Although per TOML specs, the key should always be `str`.) You may want to add eager validation that users are inputting options the correct way. | -| `ArgsListOption` | Adds an `--args` option, e.g. `--isort-args`. This type is extra useful because it uses a special `shell_str` that lets users type the arguments as a single string with spaces, which Pants will _shlex_ for them. That is, `--args='arg1 arg2'` gets converted to `['arg1', 'arg2']`.

You must set the keyword argument `example`, e.g. `'--arg1 arg2'`. You must also set `tool_name: str`, e.g. `'Black'`.

You can optionally set `passthrough=True` if the user should be able to use the style `pants my-goal :: -- --arg1`, i.e. arguments after `--`. | - -## Using options in rules - -To use a `Subsystem` or `GoalSubsystem` in your rule, request it as a parameter. Then, use the class attributes to access the option value. - -```python -from pants.engine.rules import rule -... - -@rule -async def demo(shellcheck: Shellcheck) -> LintResults: - if shellcheck.skip: - return LintResults() - config_discovery = shellcheck.config_discovery - ... -``` - -:::note Name clashing -When adding custom options, make sure their name does not start with an existing goal name. For instance, passing a boolean option named `check_foobar` as `--check-foobar` in the command line would fail since Pants would think you are trying to pass the `--foobar` flag in the built-in `check` goal scope. -::: diff --git a/versioned_docs/version-2.18/docs/writing-plugins/the-target-api/_category_.json b/versioned_docs/version-2.18/docs/writing-plugins/the-target-api/_category_.json deleted file mode 100644 index 0a605a8a8..000000000 --- a/versioned_docs/version-2.18/docs/writing-plugins/the-target-api/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "The Target API", - "position": 3 -} diff --git a/versioned_docs/version-2.18/docs/writing-plugins/the-target-api/creating-new-targets.mdx b/versioned_docs/version-2.18/docs/writing-plugins/the-target-api/creating-new-targets.mdx deleted file mode 100644 index 27a56aa60..000000000 --- a/versioned_docs/version-2.18/docs/writing-plugins/the-target-api/creating-new-targets.mdx +++ /dev/null @@ -1,103 +0,0 @@ ---- - title: Creating new targets - sidebar_position: 2 ---- - -How to add a custom target type. - ---- - -## When to create a new target type? - -Adding new target types is most helpful when you are adding support for a new language. - -If you instead want to reduce boilerplate in BUILD files, such as changing default values, use [macros](../macros.mdx) . - -If you are already using a target type, but need to store additional metadata for your plugin, [add a new field to the target type](./extending-existing-targets.mdx). - -## Step 1: Define the target type - -To define a new target: - -1. Subclass `pants.engine.target.Target`. -2. Define the class property `alias`. This is the symbol that people use in BUILD files. -3. Define the class property `core_fields`. -4. Define the class property `help`. This is used by `pants help`. - -For `core_fields`, we recommend including `COMMON_TARGET_FIELDS` to add the useful `tags` and `description` fields. You will also often want to add `Dependencies`, and either `SingleSourceField` or `MultipleSourcesField`. - -```python title="plugins/target_types.py" -from pants.engine.target import ( - COMMON_TARGET_FIELDS, - Dependencies, - SingleSourceField, - StringField, - Target, -) - - -class CustomField(StringField): - alias = "custom_field" - help = "A custom field." - - -class CustomTarget(Target): - alias = "custom_target" - core_fields = (*COMMON_TARGET_FIELDS, Dependencies, SingleSourceField, CustomField) - help = ( - "A custom target to demo the Target API.\n\n" - "This docstring will be used in the output of " - "`pants help $target_type`." - ) -``` - -:::note Tip: subclass `SingleSourceField` or `MultipleSourcesField` -Use `SingleSourceField` for `source: str` and `MultipleSourcesField` for `sources: Iterable[str]`. - -You will often want to subclass either of these fields to give custom functionality: - -- set the `default` -- set `expected_file_extensions`, e.g. to `(".json", ".txt")` -- set `expected_num_files`, e.g. to `1` or `range(0, 5)` (i.e. 0 to 4 files) - -::: - -:::note Using the fields of an existing target type -Sometimes, you may want to create a new target type that behaves similarly to one that already exists, except for some small changes. - -For example, you might like how `pex_binary` behaves in general, but you have a Django application and keep writing `entry_point="manage.py"`. Normally, you should write a [macro](../macros.mdx) to set this default value; but, here, you also want to add new Django-specific fields, so you decide to create a new target type. - -Rather than subclassing the original target type, use this pattern: - -```python -from pants.backend.python.target_types import PexBinaryTarget, PexEntryPointField -from pants.engine.target import Target -from pants.util.ordered_set import FrozenOrderedSet - -class DjangoEntryPointField(PexEntryPointField): -default = "manage.py" - - -class DjangoManagePyTarget(Target): -alias = "django_manage_py" -core_fields = ( -*(FrozenOrderedSet(PexBinaryTarget.core_fields) - {PexEntryPoint}), -DjangoEntryPointField, -) -``` - -In this example, we register all of the fields of `PexBinaryTarget`, except for the field `PexEntryPoint `. We instead register our custom field `DjangoEntryPointField `. -::: - -## Step 2: Register the target type in `register.py` - -Now, in your [`register.py`](../plugins-overview.mdx), add the target type to the `def target_types()` entry point. - -```python title="plugins/register.py" -from plugins.target_types import CustomTarget - -def target_types(): - return [CustomTarget] -``` - -You can confirm this works by running `pants help custom_target`. diff --git a/versioned_docs/version-2.18/docs/writing-plugins/the-target-api/index.mdx b/versioned_docs/version-2.18/docs/writing-plugins/the-target-api/index.mdx deleted file mode 100644 index d3228610c..000000000 --- a/versioned_docs/version-2.18/docs/writing-plugins/the-target-api/index.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- - title: The Target API - sidebar_position: 2 ---- - -A declarative interface for working with targets and their fields. - ---- - -- [Concepts](./concepts.mdx) -- [Creating new fields](./creating-new-fields.mdx) -- [Creating new targets](./creating-new-targets.mdx) -- [Extending existing targets](./extending-existing-targets.mdx) diff --git a/versioned_docs/version-2.18/reference/global-options.mdx b/versioned_docs/version-2.18/reference/global-options.mdx index 5d3ac712d..9b1af34a8 100644 --- a/versioned_docs/version-2.18/reference/global-options.mdx +++ b/versioned_docs/version-2.18/reference/global-options.mdx @@ -166,7 +166,7 @@ When unset, this value defaults based on whether the output destination supports @@ -340,7 +340,7 @@ The name of the script or binary used to invoke Pants. Useful when printing help @@ -61,7 +61,7 @@ FYI: when running `scie-pants-linux-x86_64 fmt lint ::`, there should be diminis If true, skip running all fixers in check-only mode. -FYI: when running `scie-pants-linux-x86_64 fix lint ::`, there should be diminishing performance benefit to using this flag. Pants attempts to reuse the results from `fix` when running `lint` where possible. +FYI: when running `pants fix lint ::`, there should be diminishing performance benefit to using this flag. Pants attempts to reuse the results from `fix` when running `lint` where possible. diff --git a/versioned_docs/version-2.18/reference/goals/scala-dump-source-analysis.mdx b/versioned_docs/version-2.18/reference/goals/scala-dump-source-analysis.mdx new file mode 100644 index 000000000..e976d1909 --- /dev/null +++ b/versioned_docs/version-2.18/reference/goals/scala-dump-source-analysis.mdx @@ -0,0 +1,44 @@ +--- +title: scala-dump-source-analysis +--- + +import Option from "@site/src/components/reference/Option"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +``` +pants scala-dump-source-analysis [args] +``` + +Dump source analysis for scala_source targets. + +Backend: `pants.backend.experimental.scala.debug_goals` + +Config section: `[scala-dump-source-analysis]` + + + +## Basic options + +None + +## Advanced options + +None + +## Deprecated options + +None + +## Related subsystems + +- [coursier](../subsystems/coursier.mdx) +- [environments-preview](../subsystems/environments-preview.mdx) +- [filter](../subsystems/filter.mdx) +- [jvm](../subsystems/jvm.mdx) +- [python-bootstrap](../subsystems/python-bootstrap.mdx) +- [scala](../subsystems/scala.mdx) +- [scalac](../subsystems/scalac.mdx) + + diff --git a/versioned_docs/version-2.18/reference/help-all.json b/versioned_docs/version-2.18/reference/help-all.json index 8ece951f2..26c0e314a 100644 --- a/versioned_docs/version-2.18/reference/help-all.json +++ b/versioned_docs/version-2.18/reference/help-all.json @@ -205,7 +205,7 @@ "display_args": ["--[no-]add-trailing-comma-skip"], "env_var": "PANTS_ADD_TRAILING_COMMA_SKIP", "fromfile": false, - "help": "If true, don't use add-trailing-comma when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use add-trailing-comma when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ @@ -563,7 +563,7 @@ "display_args": ["--[no-]autoflake-skip"], "env_var": "PANTS_AUTOFLAKE_SKIP", "fromfile": false, - "help": "If true, don't use Autoflake when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use Autoflake when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--autoflake-skip", "--no-autoflake-skip"], @@ -585,6 +585,39 @@ ] } }, + "PANTS_AVRO_TAILOR": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]avro-tailor", + "config_key": "tailor", + "default": true, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]avro-tailor"], + "env_var": "PANTS_AVRO_TAILOR", + "fromfile": false, + "help": "If true, add `avro_sources` targets with the `tailor` goal.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--avro-tailor", "--no-avro-tailor"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--tailor", "--no-tailor"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true + } + ] + } + }, "PANTS_BACKEND_PACKAGES": { "choices": null, "comma_separated_choices": null, @@ -615,50 +648,72 @@ "rank": "HARDCODED", "value": [] }, - { - "details": "from env var PANTS_BACKEND_PACKAGES", - "rank": "ENVIRONMENT", - "value": [] - }, { "details": "from command-line flag", "rank": "FLAG", "value": [ + "pants.backend.awslambda.python", "pants.backend.build_files.fix.deprecations", "pants.backend.build_files.fmt.black", "pants.backend.build_files.fmt.buildifier", "pants.backend.build_files.fmt.yapf", - "pants.backend.awslambda.python", "pants.backend.codegen.protobuf.lint.buf", "pants.backend.codegen.protobuf.python", "pants.backend.codegen.thrift.apache.python", "pants.backend.docker", "pants.backend.docker.lint.hadolint", "pants.backend.experimental.adhoc", + "pants.backend.experimental.cc", + "pants.backend.experimental.cc.lint.clangformat", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.go", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.apache.java", + "pants.backend.experimental.codegen.thrift.scrooge.java", + "pants.backend.experimental.codegen.thrift.scrooge.scala", + "pants.backend.experimental.cue", + "pants.backend.experimental.debian", "pants.backend.experimental.go", + "pants.backend.experimental.go.debug_goals", + "pants.backend.experimental.go.lint.golangci_lint", + "pants.backend.experimental.go.lint.vet", "pants.backend.experimental.helm", + "pants.backend.experimental.helm.check.kubeconform", "pants.backend.experimental.java", + "pants.backend.experimental.java.debug_goals", "pants.backend.experimental.java.lint.google_java_format", + "pants.backend.experimental.javascript", + "pants.backend.experimental.javascript.lint.prettier", "pants.backend.experimental.kotlin", + "pants.backend.experimental.kotlin.debug_goals", "pants.backend.experimental.kotlin.lint.ktlint", "pants.backend.experimental.openapi", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.openapi.lint.spectral", "pants.backend.experimental.python", + "pants.backend.experimental.python.framework.django", "pants.backend.experimental.python.framework.stevedore", "pants.backend.experimental.python.lint.add_trailing_comma", + "pants.backend.experimental.python.lint.autoflake", + "pants.backend.experimental.python.lint.pyupgrade", "pants.backend.experimental.python.lint.ruff", "pants.backend.experimental.python.packaging.pyoxidizer", + "pants.backend.experimental.python.typecheck.pyright", "pants.backend.experimental.python.typecheck.pytype", + "pants.backend.experimental.rust", "pants.backend.experimental.scala", + "pants.backend.experimental.scala.debug_goals", "pants.backend.experimental.scala.lint.scalafmt", + "pants.backend.experimental.swift", "pants.backend.experimental.terraform", + "pants.backend.experimental.terraform.lint.tfsec", "pants.backend.experimental.tools.workunit_logger", "pants.backend.experimental.tools.yamllint", + "pants.backend.experimental.visibility", "pants.backend.google_cloud_function.python", "pants.backend.plugin_development", + "pants.backend.project_info", "pants.backend.python", "pants.backend.python.lint.autoflake", "pants.backend.python.lint.bandit", @@ -671,11 +726,16 @@ "pants.backend.python.lint.pyupgrade", "pants.backend.python.lint.yapf", "pants.backend.python.mixed_interpreter_constraints", + "pants.backend.python.providers.experimental.pyenv", + "pants.backend.python.providers.experimental.pyenv.custom_install", "pants.backend.python.typecheck.mypy", "pants.backend.shell", "pants.backend.shell.lint.shellcheck", "pants.backend.shell.lint.shfmt", - "pants.backend.tools.preamble" + "pants.backend.tools.preamble", + "pants.backend.tools.taplo", + "pants.backend.url_handlers.s3", + "pants.core" ] } ] @@ -875,7 +935,7 @@ "display_args": ["--[no-]bandit-skip"], "env_var": "PANTS_BANDIT_SKIP", "fromfile": false, - "help": "If true, don't use Bandit when running `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use Bandit when running `pants lint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--bandit-skip", "--no-bandit-skip"], @@ -930,7 +990,7 @@ { "details": "from env var PANTS_BIN_NAME", "rank": "ENVIRONMENT", - "value": "/home/josh/work/scie-pants/dist/scie-pants-linux-x86_64" + "value": "pants" } ] } @@ -1200,7 +1260,7 @@ "display_args": ["--[no-]black-skip"], "env_var": "PANTS_BLACK_SKIP", "fromfile": false, - "help": "If true, don't use Black when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use Black when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--black-skip", "--no-black-skip"], @@ -1330,7 +1390,7 @@ "display_args": ["--[no-]buf-format-skip"], "env_var": "PANTS_BUF_FORMAT_SKIP", "fromfile": false, - "help": "If true, don't use Buf when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use Buf when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--buf-format-skip", "--no-buf-format-skip"], @@ -1439,7 +1499,7 @@ "display_args": ["--[no-]buf-lint-skip"], "env_var": "PANTS_BUF_LINT_SKIP", "fromfile": false, - "help": "If true, don't use Buf when running `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use Buf when running `pants lint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--buf-lint-skip", "--no-buf-lint-skip"], @@ -1696,7 +1756,7 @@ "display_args": ["--[no-]buildifier-skip"], "env_var": "PANTS_BUILDIFIER_SKIP", "fromfile": false, - "help": "If true, don't use Buildifier when running `scie-pants-linux-x86_64 fmt`.", + "help": "If true, don't use Buildifier when running `pants fmt`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--buildifier-skip", "--no-buildifier-skip"], @@ -1875,7 +1935,7 @@ "display_args": ["--[no-]build-deprecations-fixer-skip"], "env_var": "PANTS_BUILD_DEPRECATIONS_FIXER_SKIP", "fromfile": false, - "help": "If true, don't use BUILD Deprecations Fixer when running `scie-pants-linux-x86_64 fix`.", + "help": "If true, don't use BUILD Deprecations Fixer when running `pants fix`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ @@ -2062,146 +2122,156 @@ ] } }, - "PANTS_CHANGED_DEPENDEES": { - "choices": ["none", "direct", "transitive"], - "comma_separated_choices": "none, direct, transitive", - "comma_separated_display_args": "--changed-dependees=", - "config_key": "dependees", - "default": "none", - "deprecated_message": "Deprecated, is scheduled to be removed in version: 2.23.0.dev0.", - "deprecation_active": true, - "display_args": ["--changed-dependees="], - "env_var": "PANTS_CHANGED_DEPENDEES", + "PANTS_CC_CXX_COMPILER_FLAGS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--cc-cxx-compiler-flags=\"['', '', ...]\"", + "config_key": "cxx_compiler_flags", + "default": ["-std=c++11"], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--cc-cxx-compiler-flags=\"['', '', ...]\""], + "env_var": "PANTS_CC_CXX_COMPILER_FLAGS", "fromfile": false, - "help": "Include direct or transitive dependents of changed targets.", - "removal_hint": "Use --dependents instead", - "removal_version": "2.23.0.dev0", - "scoped_cmd_line_args": ["--changed-dependees"], + "help": "Flags passed to the C++ compiler. These flags are merged with the target-level defines, with the target-level flags taking precedence.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--cc-cxx-compiler-flags"], "target_field_name": null, - "typ": "DependentsOption", - "unscoped_cmd_line_args": ["--dependees"], + "typ": "list", + "unscoped_cmd_line_args": ["--cxx-compiler-flags"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "none" + "value": ["-std=c++11"] } ] } }, - "PANTS_CHANGED_DEPENDENTS": { - "choices": ["none", "direct", "transitive"], - "comma_separated_choices": "none, direct, transitive", - "comma_separated_display_args": "--changed-dependents=", - "config_key": "dependents", - "default": "none", + "PANTS_CC_CXX_DEFINITIONS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--cc-cxx-definitions=\"['', '', ...]\"", + "config_key": "cxx_definitions", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--changed-dependents="], - "env_var": "PANTS_CHANGED_DEPENDENTS", + "display_args": ["--cc-cxx-definitions=\"['', '', ...]\""], + "env_var": "PANTS_CC_CXX_DEFINITIONS", "fromfile": false, - "help": "Include direct or transitive dependents of changed targets.", + "help": "A list of strings to define in the C++ preprocessor. Will be prefixed by -D at the command line. These defines are merged with the target-level defines, with the target-level definitions taking precedence.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--changed-dependents"], + "scoped_cmd_line_args": ["--cc-cxx-definitions"], "target_field_name": null, - "typ": "DependentsOption", - "unscoped_cmd_line_args": ["--dependents"], + "typ": "list", + "unscoped_cmd_line_args": ["--cxx-definitions"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "none" + "value": [] } ] } }, - "PANTS_CHANGED_DIFFSPEC": { + "PANTS_CC_CXX_EXECUTABLE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--changed-diffspec=", - "config_key": "diffspec", - "default": null, + "comma_separated_display_args": "--cc-cxx-executable=\"['', '', ...]\"", + "config_key": "cxx_executable", + "default": ["clang++", "g++"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--changed-diffspec="], - "env_var": "PANTS_CHANGED_DIFFSPEC", + "display_args": ["--cc-cxx-executable=\"['', '', ...]\""], + "env_var": "PANTS_CC_CXX_EXECUTABLE", "fromfile": false, - "help": "Calculate changes contained within a given Git spec (commit range/SHA/ref).", + "help": "A list of binary names for the C compiler (in the `search_paths`). The list is searched in order until a compiler is found.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--changed-diffspec"], + "scoped_cmd_line_args": ["--cc-cxx-executable"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--diffspec"], + "typ": "list", + "unscoped_cmd_line_args": ["--cxx-executable"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": ["clang++", "g++"] } ] } }, - "PANTS_CHANGED_SINCE": { + "PANTS_CC_C_COMPILER_FLAGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--changed-since=", - "config_key": "since", - "default": null, + "comma_separated_display_args": "--cc-c-compiler-flags=\"['', '', ...]\"", + "config_key": "c_compiler_flags", + "default": ["-std=c11"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--changed-since="], - "env_var": "PANTS_CHANGED_SINCE", + "display_args": ["--cc-c-compiler-flags=\"['', '', ...]\""], + "env_var": "PANTS_CC_C_COMPILER_FLAGS", "fromfile": false, - "help": "Calculate changes since this Git spec (commit range/SHA/ref).", + "help": "Flags passed to the C compiler. These flags are merged with the target-level defines, with the target-level flags taking precedence.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--changed-since"], + "scoped_cmd_line_args": ["--cc-c-compiler-flags"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--since"], + "typ": "list", + "unscoped_cmd_line_args": ["--c-compiler-flags"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": ["-std=c11"] } ] } }, - "PANTS_CHECK_ONLY": { + "PANTS_CC_C_DEFINITIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--check-only=\"['', '', ...]\"", - "config_key": "only", + "comma_separated_display_args": "--cc-c-definitions=\"['', '', ...]\"", + "config_key": "c_definitions", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--check-only=\"['', '', ...]\""], - "env_var": "PANTS_CHECK_ONLY", + "display_args": ["--cc-c-definitions=\"['', '', ...]\""], + "env_var": "PANTS_CC_C_DEFINITIONS", "fromfile": false, - "help": "Only run these checkers and skip all others.\n\nThe checker names are outputted at the final summary of running this goal, e.g. `mypy` and `javac`. You can also run `check --only=fake` to get a list of all activated checkers.\n\nYou can repeat this option, e.g. `check --only=mypy --only=javac` or `check --only=['mypy', 'javac']`.", + "help": "A list of strings to define in the C preprocessor. Will be prefixed by -D at the command line. These defines are merged with the target-level defines, with the target-level definitions taking precedence.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--check-only"], + "scoped_cmd_line_args": ["--cc-c-definitions"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--only"], + "unscoped_cmd_line_args": ["--c-definitions"], "value_history": { "ranked_values": [ { @@ -2217,90 +2287,127 @@ ] } }, - "PANTS_CLI_ALIAS": { + "PANTS_CC_C_EXECUTABLE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--cli-alias=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "alias", - "default": {}, + "comma_separated_display_args": "--cc-c-executable=\"['', '', ...]\"", + "config_key": "c_executable", + "default": ["clang", "gcc"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--cli-alias=\"{'key1': val1, 'key2': val2, ...}\""], - "env_var": "PANTS_CLI_ALIAS", + "display_args": ["--cc-c-executable=\"['', '', ...]\""], + "env_var": "PANTS_CC_C_EXECUTABLE", "fromfile": false, - "help": "Register command line aliases.\n\nExample:\n\n [cli.alias]\n green = \"fmt lint check\"\n all-changed = \"--changed-since=HEAD --changed-dependents=transitive\"\n\nThis would allow you to run `scie-pants-linux-x86_64 green all-changed`, which is shorthand for `scie-pants-linux-x86_64 fmt lint check --changed-since=HEAD --changed-dependents=transitive`.\n\nNotice: this option must be placed in a config file (e.g. `pants.toml` or `pantsrc`) to have any effect.", + "help": "A list of binary names for the C compiler (in the `search_paths`). The list is searched in order until a compiler is found.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--cli-alias"], + "scoped_cmd_line_args": ["--cc-c-executable"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--alias"], + "typ": "list", + "unscoped_cmd_line_args": ["--c-executable"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": {} + "value": [] }, { "details": "", "rank": "HARDCODED", - "value": {} + "value": ["clang", "gcc"] } ] } }, - "PANTS_COLORS": { + "PANTS_CC_EXTERNAL_CXX_COMPILER_FLAGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]colors", - "config_key": "colors", - "default": false, + "comma_separated_display_args": "--cc-external-cxx-compiler-flags=\"['', '', ...]\"", + "config_key": "cxx_compiler_flags", + "default": ["-std=c++11"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]colors"], - "env_var": "PANTS_COLORS", + "display_args": [ + "--cc-external-cxx-compiler-flags=\"['', '', ...]\"" + ], + "env_var": "PANTS_CC_EXTERNAL_CXX_COMPILER_FLAGS", "fromfile": false, - "help": "Whether Pants should use colors in output or not. This may also impact whether some tools Pants runs use color.\n\nWhen unset, this value defaults based on whether the output destination supports color.", + "help": "Flags passed to the C++ compiler. These flags are merged with the target-level defines, with the target-level flags taking precedence.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--colors", "--no-colors"], + "scoped_cmd_line_args": ["--cc-external-cxx-compiler-flags"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--colors", "--no-colors"], + "typ": "list", + "unscoped_cmd_line_args": ["--cxx-compiler-flags"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": ["-std=c++11"] } ] } }, - "PANTS_CONCURRENT": { + "PANTS_CC_EXTERNAL_CXX_DEFINITIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]concurrent", - "config_key": "concurrent", - "default": false, + "comma_separated_display_args": "--cc-external-cxx-definitions=\"['', '', ...]\"", + "config_key": "cxx_definitions", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]concurrent"], - "env_var": "PANTS_CONCURRENT", + "display_args": [ + "--cc-external-cxx-definitions=\"['', '', ...]\"" + ], + "env_var": "PANTS_CC_EXTERNAL_CXX_DEFINITIONS", "fromfile": false, - "help": "Enable concurrent runs of Pants. With this enabled, Pants will start up all concurrent invocations (e.g. in other terminals) without pantsd. As a result, enabling this option will increase the per-run startup cost, but will not block subsequent invocations.", + "help": "A list of strings to define in the C++ preprocessor. Will be prefixed by -D at the command line. These defines are merged with the target-level defines, with the target-level definitions taking precedence.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--concurrent", "--no-concurrent"], + "scoped_cmd_line_args": ["--cc-external-cxx-definitions"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--concurrent", "--no-concurrent"], + "typ": "list", + "unscoped_cmd_line_args": ["--cxx-definitions"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + }, + "PANTS_CC_EXTERNAL_CXX_EXECUTABLE": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--cc-external-cxx-executable=", + "config_key": "cxx_executable", + "default": "", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--cc-external-cxx-executable="], + "env_var": "PANTS_CC_EXTERNAL_CXX_EXECUTABLE", + "fromfile": false, + "help": "The relative path to the C++ compiler binary from the downloaded source. E.g. For the ARM gcc-rm toolchain, this value would be: `gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi-g++`", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--cc-external-cxx-executable"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--cxx-executable"], "value_history": { "ranked_values": [ { @@ -2311,29 +2418,31 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": "" } ] } }, - "PANTS_CONFIG_FILES": { + "PANTS_CC_EXTERNAL_C_COMPILER_FLAGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pants-config-files=\"['', '', ...]\"", - "config_key": "pants_config_files", - "default": ["/tmp/tmp.MpwSc5OGVo/pants.toml"], + "comma_separated_display_args": "--cc-external-c-compiler-flags=\"['', '', ...]\"", + "config_key": "c_compiler_flags", + "default": ["-std=c11"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pants-config-files=\"['', '', ...]\""], - "env_var": "PANTS_CONFIG_FILES", + "display_args": [ + "--cc-external-c-compiler-flags=\"['', '', ...]\"" + ], + "env_var": "PANTS_CC_EXTERNAL_C_COMPILER_FLAGS", "fromfile": false, - "help": "Paths to Pants config files. This may only be set through the environment variable `PANTS_CONFIG_FILES` and the command line argument `--pants-config-files`; it will be ignored if in a config file like `pants.toml`.", + "help": "Flags passed to the C compiler. These flags are merged with the target-level defines, with the target-level flags taking precedence.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pants-config-files"], + "scoped_cmd_line_args": ["--cc-external-c-compiler-flags"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--pants-config-files"], + "unscoped_cmd_line_args": ["--c-compiler-flags"], "value_history": { "ranked_values": [ { @@ -2344,42 +2453,31 @@ { "details": "", "rank": "HARDCODED", - "value": ["/tmp/tmp.MpwSc5OGVo/pants.toml"] + "value": ["-std=c11"] } ] } }, - "PANTS_COURSIER_KNOWN_VERSIONS": { + "PANTS_CC_EXTERNAL_C_DEFINITIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--coursier-known-versions=\"['', '', ...]\"", - "config_key": "known_versions", - "default": [ - "v2.1.6|macos_arm64 |746b3e346fa2c0107fdbc8a627890d495cb09dee4f8dcc87146bdb45941088cf|20829782|https://github.com/VirtusLab/coursier-m1/releases/download/v2.1.6/cs-aarch64-apple-darwin.gz", - "v2.1.6|linux_arm64 |33330ca433781c9db9458e15d2d32e5d795de3437771647e26835e8b1391af82|20899290|https://github.com/VirtusLab/coursier-m1/releases/download/v2.1.6/cs-aarch64-pc-linux.gz", - "v2.1.6|linux_x86_64|af7234f8802107f5e1130307ef8a5cc90262d392f16ddff7dce27a4ed0ddd292|20681688", - "v2.1.6|macos_x86_64|36a5d42a0724be2ac39d0ebd8869b985e3d58ceb121bc60389ee2d6d7408dd56|20037412", - "v2.1.0-M5-18-gfebf9838c|linux_arm64 |d4ad15ba711228041ad8a46d848c83c8fbc421d7b01c415d8022074dd609760f|19264005", - "v2.1.0-M5-18-gfebf9838c|linux_x86_64|3e1a1ad1010d5582e9e43c5a26b273b0147baee5ebd27d3ac1ab61964041c90b|19551533", - "v2.1.0-M5-18-gfebf9838c|macos_arm64 |d13812c5a5ef4c9b3e25cc046d18addd09bacd149f95b20a14e4d2a73e358ecf|18826510", - "v2.1.0-M5-18-gfebf9838c|macos_x86_64|d13812c5a5ef4c9b3e25cc046d18addd09bacd149f95b20a14e4d2a73e358ecf|18826510", - "v2.0.16-169-g194ebc55c|linux_arm64 |da38c97d55967505b8454c20a90370c518044829398b9bce8b637d194d79abb3|18114472", - "v2.0.16-169-g194ebc55c|linux_x86_64|4c61a634c4bd2773b4543fe0fc32210afd343692891121cddb447204b48672e8|18486946", - "v2.0.16-169-g194ebc55c|macos_arm64 |15bce235d223ef1d022da30b67b4c64e9228d236b876c834b64e029bbe824c6f|17957182", - "v2.0.16-169-g194ebc55c|macos_x86_64|15bce235d223ef1d022da30b67b4c64e9228d236b876c834b64e029bbe824c6f|17957182" - ], + "comma_separated_display_args": "--cc-external-c-definitions=\"['', '', ...]\"", + "config_key": "c_definitions", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--coursier-known-versions=\"['', '', ...]\""], - "env_var": "PANTS_COURSIER_KNOWN_VERSIONS", + "display_args": [ + "--cc-external-c-definitions=\"['', '', ...]\"" + ], + "env_var": "PANTS_CC_EXTERNAL_C_DEFINITIONS", "fromfile": false, - "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", + "help": "A list of strings to define in the C preprocessor. Will be prefixed by -D at the command line. These defines are merged with the target-level defines, with the target-level definitions taking precedence.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--coursier-known-versions"], + "scoped_cmd_line_args": ["--cc-external-c-definitions"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--known-versions"], + "unscoped_cmd_line_args": ["--c-definitions"], "value_history": { "ranked_values": [ { @@ -2390,45 +2488,99 @@ { "details": "", "rank": "HARDCODED", - "value": [ - "v2.1.6|macos_arm64 |746b3e346fa2c0107fdbc8a627890d495cb09dee4f8dcc87146bdb45941088cf|20829782|https://github.com/VirtusLab/coursier-m1/releases/download/v2.1.6/cs-aarch64-apple-darwin.gz", - "v2.1.6|linux_arm64 |33330ca433781c9db9458e15d2d32e5d795de3437771647e26835e8b1391af82|20899290|https://github.com/VirtusLab/coursier-m1/releases/download/v2.1.6/cs-aarch64-pc-linux.gz", - "v2.1.6|linux_x86_64|af7234f8802107f5e1130307ef8a5cc90262d392f16ddff7dce27a4ed0ddd292|20681688", - "v2.1.6|macos_x86_64|36a5d42a0724be2ac39d0ebd8869b985e3d58ceb121bc60389ee2d6d7408dd56|20037412", - "v2.1.0-M5-18-gfebf9838c|linux_arm64 |d4ad15ba711228041ad8a46d848c83c8fbc421d7b01c415d8022074dd609760f|19264005", - "v2.1.0-M5-18-gfebf9838c|linux_x86_64|3e1a1ad1010d5582e9e43c5a26b273b0147baee5ebd27d3ac1ab61964041c90b|19551533", - "v2.1.0-M5-18-gfebf9838c|macos_arm64 |d13812c5a5ef4c9b3e25cc046d18addd09bacd149f95b20a14e4d2a73e358ecf|18826510", - "v2.1.0-M5-18-gfebf9838c|macos_x86_64|d13812c5a5ef4c9b3e25cc046d18addd09bacd149f95b20a14e4d2a73e358ecf|18826510", - "v2.0.16-169-g194ebc55c|linux_arm64 |da38c97d55967505b8454c20a90370c518044829398b9bce8b637d194d79abb3|18114472", - "v2.0.16-169-g194ebc55c|linux_x86_64|4c61a634c4bd2773b4543fe0fc32210afd343692891121cddb447204b48672e8|18486946", - "v2.0.16-169-g194ebc55c|macos_arm64 |15bce235d223ef1d022da30b67b4c64e9228d236b876c834b64e029bbe824c6f|17957182", - "v2.0.16-169-g194ebc55c|macos_x86_64|15bce235d223ef1d022da30b67b4c64e9228d236b876c834b64e029bbe824c6f|17957182" - ] + "value": [] } ] } }, - "PANTS_COURSIER_REPOS": { + "PANTS_CC_EXTERNAL_C_EXECUTABLE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--coursier-repos=\"['', '', ...]\"", - "config_key": "repos", - "default": [ - "https://maven-central.storage-download.googleapis.com/maven2", - "https://repo1.maven.org/maven2" + "comma_separated_display_args": "--cc-external-c-executable=", + "config_key": "c_executable", + "default": "", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--cc-external-c-executable="], + "env_var": "PANTS_CC_EXTERNAL_C_EXECUTABLE", + "fromfile": false, + "help": "The relative path to the C compiler binary from the downloaded source. E.g. For the ARM gcc-rm toolchain, this value would be: `gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi-gcc`", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--cc-external-c-executable"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--c-executable"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "" + } + ] + } + }, + "PANTS_CC_EXTERNAL_INCLUDE_DIRECTORIES": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--cc-external-include-directories=\"['', '', ...]\"", + "config_key": "include_directories", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--cc-external-include-directories=\"['', '', ...]\"" ], + "env_var": "PANTS_CC_EXTERNAL_INCLUDE_DIRECTORIES", + "fromfile": false, + "help": "A list of include directories passed to the compiler. Will be prefixed by -I at the command line. These flags are merged with the target-level includes, with the target-level includes taking precedence.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--cc-external-include-directories"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--include-directories"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + }, + "PANTS_CC_EXTERNAL_KNOWN_VERSIONS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--cc-external-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--coursier-repos=\"['', '', ...]\""], - "env_var": "PANTS_COURSIER_REPOS", + "display_args": [ + "--cc-external-known-versions=\"['', '', ...]\"" + ], + "env_var": "PANTS_CC_EXTERNAL_KNOWN_VERSIONS", "fromfile": false, - "help": "Maven style repositories to resolve artifacts from.\n\nCoursier will resolve these repositories in the order in which they are specifed, and re-ordering repositories will cause artifacts to be re-downloaded. This can result in artifacts in lockfiles becoming invalid.", + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--coursier-repos"], + "scoped_cmd_line_args": ["--cc-external-known-versions"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--repos"], + "unscoped_cmd_line_args": ["--known-versions"], "value_history": { "ranked_values": [ { @@ -2439,36 +2591,28 @@ { "details": "", "rank": "HARDCODED", - "value": [ - "https://maven-central.storage-download.googleapis.com/maven2", - "https://repo1.maven.org/maven2" - ] + "value": [] } ] } }, - "PANTS_COURSIER_URL_PLATFORM_MAPPING": { + "PANTS_CC_EXTERNAL_URL_PLATFORM_MAPPING": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--coursier-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "comma_separated_display_args": "--cc-external-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", "config_key": "url_platform_mapping", - "default": { - "linux_arm64": "aarch64-pc-linux", - "linux_x86_64": "x86_64-pc-linux", - "macos_arm64": "x86_64-apple-darwin", - "macos_x86_64": "x86_64-apple-darwin" - }, + "default": {}, "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--coursier-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + "--cc-external-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" ], - "env_var": "PANTS_COURSIER_URL_PLATFORM_MAPPING", + "env_var": "PANTS_CC_EXTERNAL_URL_PLATFORM_MAPPING", "fromfile": false, "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--coursier-url-platform-mapping"], + "scoped_cmd_line_args": ["--cc-external-url-platform-mapping"], "target_field_name": null, "typ": "dict", "unscoped_cmd_line_args": ["--url-platform-mapping"], @@ -2482,31 +2626,26 @@ { "details": "", "rank": "HARDCODED", - "value": { - "linux_arm64": "aarch64-pc-linux", - "linux_x86_64": "x86_64-pc-linux", - "macos_arm64": "x86_64-apple-darwin", - "macos_x86_64": "x86_64-apple-darwin" - } + "value": {} } ] } }, - "PANTS_COURSIER_URL_TEMPLATE": { + "PANTS_CC_EXTERNAL_URL_TEMPLATE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--coursier-url-template=", + "comma_separated_display_args": "--cc-external-url-template=", "config_key": "url_template", - "default": "https://github.com/coursier/coursier/releases/download/{version}/cs-{platform}.gz", + "default": "", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--coursier-url-template="], - "env_var": "PANTS_COURSIER_URL_TEMPLATE", + "display_args": ["--cc-external-url-template="], + "env_var": "PANTS_CC_EXTERNAL_URL_TEMPLATE", "fromfile": false, "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--coursier-url-template"], + "scoped_cmd_line_args": ["--cc-external-url-template"], "target_field_name": null, "typ": "str", "unscoped_cmd_line_args": ["--url-template"], @@ -2520,28 +2659,28 @@ { "details": null, "rank": "HARDCODED", - "value": "https://github.com/coursier/coursier/releases/download/{version}/cs-{platform}.gz" + "value": "" } ] } }, - "PANTS_COURSIER_USE_UNSUPPORTED_VERSION": { + "PANTS_CC_EXTERNAL_USE_UNSUPPORTED_VERSION": { "choices": ["error", "warning"], "comma_separated_choices": "error, warning", - "comma_separated_display_args": "--coursier-use-unsupported-version=", + "comma_separated_display_args": "--cc-external-use-unsupported-version=", "config_key": "use_unsupported_version", "default": "error", "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--coursier-use-unsupported-version=" + "--cc-external-use-unsupported-version=" ], - "env_var": "PANTS_COURSIER_USE_UNSUPPORTED_VERSION", + "env_var": "PANTS_CC_EXTERNAL_USE_UNSUPPORTED_VERSION", "fromfile": false, - "help": "\nWhat action to take in case the requested version of coursier is not supported.\n\nSupported coursier versions: unspecified\n", + "help": "\nWhat action to take in case the requested version of cc-external is not supported.\n\nSupported cc-external versions: unspecified\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--coursier-use-unsupported-version"], + "scoped_cmd_line_args": ["--cc-external-use-unsupported-version"], "target_field_name": null, "typ": "UnsupportedVersionUsage", "unscoped_cmd_line_args": ["--use-unsupported-version"], @@ -2560,21 +2699,21 @@ ] } }, - "PANTS_COURSIER_VERSION": { + "PANTS_CC_EXTERNAL_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--coursier-version=", + "comma_separated_display_args": "--cc-external-version=", "config_key": "version", - "default": "v2.1.6", + "default": "", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--coursier-version="], - "env_var": "PANTS_COURSIER_VERSION", + "display_args": ["--cc-external-version="], + "env_var": "PANTS_CC_EXTERNAL_VERSION", "fromfile": false, - "help": "Use this version of coursier.", + "help": "Use this version of cc-external.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--coursier-version"], + "scoped_cmd_line_args": ["--cc-external-version"], "target_field_name": null, "typ": "str", "unscoped_cmd_line_args": ["--version"], @@ -2588,60 +2727,62 @@ { "details": null, "rank": "HARDCODED", - "value": "v2.1.6" + "value": "" } ] } }, - "PANTS_COVERAGE_PY_CONFIG": { + "PANTS_CC_INCLUDE_DIRECTORIES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--coverage-py-config=", - "config_key": "config", - "default": null, + "comma_separated_display_args": "--cc-include-directories=\"['', '', ...]\"", + "config_key": "include_directories", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--coverage-py-config="], - "env_var": "PANTS_COVERAGE_PY_CONFIG", + "display_args": ["--cc-include-directories=\"['', '', ...]\""], + "env_var": "PANTS_CC_INCLUDE_DIRECTORIES", "fromfile": false, - "help": "Path to an INI or TOML config file understood by coverage.py (https://coverage.readthedocs.io/en/stable/config.html).\n\nSetting this option will disable `[coverage-py].config_discovery`. Use this option if the config is located in a non-standard location.", + "help": "A list of include directories passed to the compiler. Will be prefixed by -I at the command line. These flags are merged with the target-level includes, with the target-level includes taking precedence.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--coverage-py-config"], + "scoped_cmd_line_args": ["--cc-include-directories"], "target_field_name": null, - "typ": "file_option", - "unscoped_cmd_line_args": ["--config"], + "typ": "list", + "unscoped_cmd_line_args": ["--include-directories"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] } ] } }, - "PANTS_COVERAGE_PY_CONFIG_DISCOVERY": { + "PANTS_CC_INFER_INCLUDES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]coverage-py-config-discovery", - "config_key": "config_discovery", + "comma_separated_display_args": "--[no-]cc-infer-includes", + "config_key": "includes", "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]coverage-py-config-discovery"], - "env_var": "PANTS_COVERAGE_PY_CONFIG_DISCOVERY", + "display_args": ["--[no-]cc-infer-includes"], + "env_var": "PANTS_CC_INFER_INCLUDES", "fromfile": false, - "help": "If true, Pants will include any relevant config files during runs (`.coveragerc`, `setup.cfg`, `tox.ini`, and `pyproject.toml`).\n\nUse `[coverage-py].config` instead if your config is in a non-standard location.", + "help": "Infer a target's dependencies by parsing #include statements from sources.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--coverage-py-config-discovery", - "--no-coverage-py-config-discovery" - ], + "scoped_cmd_line_args": ["--cc-infer-includes", "--no-cc-infer-includes"], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], + "unscoped_cmd_line_args": ["--includes", "--no-includes"], "value_history": { "ranked_values": [ { @@ -2657,24 +2798,30 @@ ] } }, - "PANTS_COVERAGE_PY_CONSOLE_SCRIPT": { + "PANTS_CC_INFER_INCLUDE_FROM_SOURCE_ROOTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--coverage-py-console-script=", - "config_key": "console_script", - "default": "coverage", + "comma_separated_display_args": "--[no-]cc-infer-include-from-source-roots", + "config_key": "include_from_source_roots", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--coverage-py-console-script="], - "env_var": "PANTS_COVERAGE_PY_CONSOLE_SCRIPT", + "display_args": ["--[no-]cc-infer-include-from-source-roots"], + "env_var": "PANTS_CC_INFER_INCLUDE_FROM_SOURCE_ROOTS", "fromfile": false, - "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", + "help": "Infer a target's dependencies by trying to include relative to source roots.\n\nAn example where this may be useful is if you have a a file at `root/include/mylib/foo.h` which may be referenced via `#include \"mylib/foo.h\"`. This option will allow you to correctly infer dependencies if you have a source root at `root/{include}` and searching for `mylib/foo.h` relative to the that source root.\n\nThe inferred files take part in compilation, and the source root is added to the compilation include search path (https://clang.llvm.org/docs/ClangCommandLineReference.html#include-path-management) with command line arguments prefixed by the '-I' flag.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--coverage-py-console-script"], + "scoped_cmd_line_args": [ + "--cc-infer-include-from-source-roots", + "--no-cc-infer-include-from-source-roots" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--console-script"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--include-from-source-roots", + "--no-include-from-source-roots" + ], "value_history": { "ranked_values": [ { @@ -2685,154 +2832,128 @@ { "details": null, "rank": "HARDCODED", - "value": "coverage" + "value": true } ] } }, - "PANTS_COVERAGE_PY_ENTRY_POINT": { + "PANTS_CC_SEARCH_PATHS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--coverage-py-entry-point=", - "config_key": "entry_point", - "default": null, + "comma_separated_display_args": "--cc-search-paths=\"['', '', ...]\"", + "config_key": "search_paths", + "default": [""], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--coverage-py-entry-point="], - "env_var": "PANTS_COVERAGE_PY_ENTRY_POINT", + "display_args": ["--cc-search-paths=\"['', '', ...]\""], + "env_var": "PANTS_CC_SEARCH_PATHS", "fromfile": false, - "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", + "help": "A list of paths to search for CC toolchain binaries.\n\nSpecify absolute paths to directories, e.g. `/usr/bin`. Earlier entries will be searched first.\n\nThe following special strings are supported:\n\n * ``, the contents of the PATH environment variable", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--coverage-py-entry-point"], + "scoped_cmd_line_args": ["--cc-search-paths"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--entry-point"], + "typ": "list", + "unscoped_cmd_line_args": ["--search-paths"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [""] } ] } }, - "PANTS_COVERAGE_PY_FAIL_UNDER": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--coverage-py-fail-under=", - "config_key": "fail_under", - "default": null, - "deprecated_message": null, - "deprecation_active": false, - "display_args": ["--coverage-py-fail-under="], - "env_var": "PANTS_COVERAGE_PY_FAIL_UNDER", + "PANTS_CHANGED_DEPENDEES": { + "choices": ["none", "direct", "transitive"], + "comma_separated_choices": "none, direct, transitive", + "comma_separated_display_args": "--changed-dependees=", + "config_key": "dependees", + "default": "none", + "deprecated_message": "Deprecated, is scheduled to be removed in version: 2.23.0.dev0.", + "deprecation_active": true, + "display_args": ["--changed-dependees="], + "env_var": "PANTS_CHANGED_DEPENDEES", "fromfile": false, - "help": "Fail if the total combined coverage percentage for all tests is less than this number.\n\nUse this instead of setting `fail_under` in a coverage.py config file, as the config will apply to each test separately, while you typically want this to apply to the combined coverage for all tests run.\n\nNote that you must generate at least one (non-raw) coverage report for this check to trigger.\n\nNote also that if you specify a non-integral value, you must also set `[report] precision` properly in the coverage.py config file to make use of the decimal places. See https://coverage.readthedocs.io/en/latest/config.html.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--coverage-py-fail-under"], + "help": "Include direct or transitive dependents of changed targets.", + "removal_hint": "Use --dependents instead", + "removal_version": "2.23.0.dev0", + "scoped_cmd_line_args": ["--changed-dependees"], "target_field_name": null, - "typ": "float", - "unscoped_cmd_line_args": ["--fail-under"], + "typ": "DependentsOption", + "unscoped_cmd_line_args": ["--dependees"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "none" } ] } }, - "PANTS_COVERAGE_PY_FILTER": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--coverage-py-filter=\"['', '', ...]\"", - "config_key": "filter", - "default": [], + "PANTS_CHANGED_DEPENDENTS": { + "choices": ["none", "direct", "transitive"], + "comma_separated_choices": "none, direct, transitive", + "comma_separated_display_args": "--changed-dependents=", + "config_key": "dependents", + "default": "none", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--coverage-py-filter=\"['', '', ...]\""], - "env_var": "PANTS_COVERAGE_PY_FILTER", + "display_args": ["--changed-dependents="], + "env_var": "PANTS_CHANGED_DEPENDENTS", "fromfile": false, - "help": "A list of Python modules or filesystem paths to use in the coverage report, e.g. `['helloworld_test', 'helloworld/util/dirutil']`.\n\nBoth modules and directory paths are recursive: any submodules or child paths, respectively, will be included.\n\nIf you leave this off, the coverage report will include every file in the transitive closure of the address/file arguments; for example, `test ::` will include every Python file in your project, whereas `test project/app_test.py` will include `app_test.py` and any of its transitive dependencies.", + "help": "Include direct or transitive dependents of changed targets.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--coverage-py-filter"], + "scoped_cmd_line_args": ["--changed-dependents"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--filter"], + "typ": "DependentsOption", + "unscoped_cmd_line_args": ["--dependents"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] - }, - { - "details": "", - "rank": "HARDCODED", - "value": [] - } - ] - } - }, - "PANTS_COVERAGE_PY_GLOBAL_REPORT": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]coverage-py-global-report", - "config_key": "global_report", - "default": false, - "deprecated_message": null, - "deprecation_active": false, - "display_args": ["--[no-]coverage-py-global-report"], - "env_var": "PANTS_COVERAGE_PY_GLOBAL_REPORT", - "fromfile": false, - "help": "If true, Pants will generate a global coverage report.\n\nThe global report will include all Python source files in the workspace and not just those depended on by the tests that were run.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": [ - "--coverage-py-global-report", - "--no-coverage-py-global-report" - ], - "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--global-report", "--no-global-report"], - "value_history": { - "ranked_values": [ - { - "details": null, - "rank": "NONE", - "value": null + "value": null }, { "details": null, "rank": "HARDCODED", - "value": false + "value": "none" } ] } }, - "PANTS_COVERAGE_PY_INSTALL_FROM_RESOLVE": { + "PANTS_CHANGED_DIFFSPEC": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--coverage-py-install-from-resolve=", - "config_key": "install_from_resolve", + "comma_separated_display_args": "--changed-diffspec=", + "config_key": "diffspec", "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--coverage-py-install-from-resolve="], - "env_var": "PANTS_COVERAGE_PY_INSTALL_FROM_RESOLVE", + "display_args": ["--changed-diffspec="], + "env_var": "PANTS_CHANGED_DIFFSPEC", "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `coverage-py` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "help": "Calculate changes contained within a given Git spec (commit range/SHA/ref).", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--coverage-py-install-from-resolve"], + "scoped_cmd_line_args": ["--changed-diffspec"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--install-from-resolve"], + "unscoped_cmd_line_args": ["--diffspec"], "value_history": { "ranked_values": [ { @@ -2843,129 +2964,52 @@ ] } }, - "PANTS_COVERAGE_PY_INTERPRETER_CONSTRAINTS": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--coverage-py-interpreter-constraints=\"['', '', ...]\"", - "config_key": "interpreter_constraints", - "default": ["CPython>=3.7,<4"], - "deprecated_message": null, - "deprecation_active": false, - "display_args": [ - "--coverage-py-interpreter-constraints=\"['', '', ...]\"" - ], - "env_var": "PANTS_COVERAGE_PY_INTERPRETER_CONSTRAINTS", - "fromfile": false, - "help": "Python interpreter constraints for this tool.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--coverage-py-interpreter-constraints"], - "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--interpreter-constraints"], - "value_history": { - "ranked_values": [ - { - "details": "", - "rank": "NONE", - "value": [] - }, - { - "details": "", - "rank": "HARDCODED", - "value": ["CPython>=3.7,<4"] - } - ] - } - }, - "PANTS_COVERAGE_PY_OUTPUT_DIR": { + "PANTS_CHANGED_SINCE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--coverage-py-output-dir=", - "config_key": "output_dir", - "default": "{distdir}/coverage/python", + "comma_separated_display_args": "--changed-since=", + "config_key": "since", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--coverage-py-output-dir="], - "env_var": "PANTS_COVERAGE_PY_OUTPUT_DIR", + "display_args": ["--changed-since="], + "env_var": "PANTS_CHANGED_SINCE", "fromfile": false, - "help": "Path to write the Pytest Coverage report to. Must be relative to the build root.", + "help": "Calculate changes since this Git spec (commit range/SHA/ref).", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--coverage-py-output-dir"], + "scoped_cmd_line_args": ["--changed-since"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--output-dir"], + "unscoped_cmd_line_args": ["--since"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": "{distdir}/coverage/python" - } - ] - } - }, - "PANTS_COVERAGE_PY_REPORT": { - "choices": ["console", "xml", "html", "raw", "json", "lcov"], - "comma_separated_choices": "console, xml, html, raw, json, lcov", - "comma_separated_display_args": "--coverage-py-report=\"[, , ...]\"", - "config_key": "report", - "default": ["console"], - "deprecated_message": null, - "deprecation_active": false, - "display_args": [ - "--coverage-py-report=\"[, , ...]\"" - ], - "env_var": "PANTS_COVERAGE_PY_REPORT", - "fromfile": false, - "help": "Which coverage report type(s) to emit.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--coverage-py-report"], - "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--report"], - "value_history": { - "ranked_values": [ - { - "details": "", - "rank": "NONE", - "value": [] - }, - { - "details": "", - "rank": "HARDCODED", - "value": ["console"] } ] } }, - "PANTS_COVERAGE_PY_REQUIREMENTS": { + "PANTS_CHECK_ONLY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--coverage-py-requirements=\"['', '', ...]\"", - "config_key": "requirements", + "comma_separated_display_args": "--check-only=\"['', '', ...]\"", + "config_key": "only", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--coverage-py-requirements=\"['', '', ...]\"" - ], - "env_var": "PANTS_COVERAGE_PY_REQUIREMENTS", + "display_args": ["--check-only=\"['', '', ...]\""], + "env_var": "PANTS_CHECK_ONLY", "fromfile": false, - "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "help": "Only run these checkers and skip all others.\n\nThe checker names are outputted at the final summary of running this goal, e.g. `mypy` and `javac`. You can also run `check --only=fake` to get a list of all activated checkers.\n\nYou can repeat this option, e.g. `check --only=mypy --only=javac` or `check --only=['mypy', 'javac']`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--coverage-py-requirements"], + "scoped_cmd_line_args": ["--check-only"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--requirements"], + "unscoped_cmd_line_args": ["--only"], "value_history": { "ranked_values": [ { @@ -2981,21 +3025,23 @@ ] } }, - "PANTS_DEBUGPY_ARGS": { + "PANTS_CLANG_FORMAT_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--debugpy-args=\"[, , ...]\"", + "comma_separated_display_args": "--clang-format-args=\"[, , ...]\"", "config_key": "args", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--debugpy-args=\"[, , ...]\""], - "env_var": "PANTS_DEBUGPY_ARGS", + "display_args": [ + "--clang-format-args=\"[, , ...]\"" + ], + "env_var": "PANTS_CLANG_FORMAT_ARGS", "fromfile": false, - "help": "Arguments to pass directly to debugpy, e.g. `--debugpy-args='--log-to-stderr'`.", + "help": "Arguments to pass directly to ClangFormat, e.g. `--clang-format-args='--version'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--debugpy-args"], + "scoped_cmd_line_args": ["--clang-format-args"], "target_field_name": null, "typ": "list", "unscoped_cmd_line_args": ["--args"], @@ -3014,21 +3060,21 @@ ] } }, - "PANTS_DEBUGPY_CONSOLE_SCRIPT": { + "PANTS_CLANG_FORMAT_CONSOLE_SCRIPT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--debugpy-console-script=", + "comma_separated_display_args": "--clang-format-console-script=", "config_key": "console_script", - "default": null, + "default": "clang-format", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--debugpy-console-script="], - "env_var": "PANTS_DEBUGPY_CONSOLE_SCRIPT", + "display_args": ["--clang-format-console-script="], + "env_var": "PANTS_CLANG_FORMAT_CONSOLE_SCRIPT", "fromfile": false, "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--debugpy-console-script"], + "scoped_cmd_line_args": ["--clang-format-console-script"], "target_field_name": null, "typ": "str", "unscoped_cmd_line_args": ["--console-script"], @@ -3038,25 +3084,30 @@ "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "clang-format" } ] } }, - "PANTS_DEBUGPY_ENTRY_POINT": { + "PANTS_CLANG_FORMAT_ENTRY_POINT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--debugpy-entry-point=", + "comma_separated_display_args": "--clang-format-entry-point=", "config_key": "entry_point", - "default": "debugpy", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--debugpy-entry-point="], - "env_var": "PANTS_DEBUGPY_ENTRY_POINT", + "display_args": ["--clang-format-entry-point="], + "env_var": "PANTS_CLANG_FORMAT_ENTRY_POINT", "fromfile": false, "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--debugpy-entry-point"], + "scoped_cmd_line_args": ["--clang-format-entry-point"], "target_field_name": null, "typ": "str", "unscoped_cmd_line_args": ["--entry-point"], @@ -3066,30 +3117,25 @@ "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": "debugpy" } ] } }, - "PANTS_DEBUGPY_INSTALL_FROM_RESOLVE": { + "PANTS_CLANG_FORMAT_INSTALL_FROM_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--debugpy-install-from-resolve=", + "comma_separated_display_args": "--clang-format-install-from-resolve=", "config_key": "install_from_resolve", "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--debugpy-install-from-resolve="], - "env_var": "PANTS_DEBUGPY_INSTALL_FROM_RESOLVE", + "display_args": ["--clang-format-install-from-resolve="], + "env_var": "PANTS_CLANG_FORMAT_INSTALL_FROM_RESOLVE", "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `debugpy` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `clang-format` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--debugpy-install-from-resolve"], + "scoped_cmd_line_args": ["--clang-format-install-from-resolve"], "target_field_name": null, "typ": "str", "unscoped_cmd_line_args": ["--install-from-resolve"], @@ -3103,23 +3149,23 @@ ] } }, - "PANTS_DEBUGPY_INTERPRETER_CONSTRAINTS": { + "PANTS_CLANG_FORMAT_INTERPRETER_CONSTRAINTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--debugpy-interpreter-constraints=\"['', '', ...]\"", + "comma_separated_display_args": "--clang-format-interpreter-constraints=\"['', '', ...]\"", "config_key": "interpreter_constraints", "default": ["CPython>=3.7,<4"], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--debugpy-interpreter-constraints=\"['', '', ...]\"" + "--clang-format-interpreter-constraints=\"['', '', ...]\"" ], - "env_var": "PANTS_DEBUGPY_INTERPRETER_CONSTRAINTS", + "env_var": "PANTS_CLANG_FORMAT_INTERPRETER_CONSTRAINTS", "fromfile": false, "help": "Python interpreter constraints for this tool.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--debugpy-interpreter-constraints"], + "scoped_cmd_line_args": ["--clang-format-interpreter-constraints"], "target_field_name": null, "typ": "list", "unscoped_cmd_line_args": ["--interpreter-constraints"], @@ -3138,21 +3184,23 @@ ] } }, - "PANTS_DEBUGPY_REQUIREMENTS": { + "PANTS_CLANG_FORMAT_REQUIREMENTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--debugpy-requirements=\"['', '', ...]\"", + "comma_separated_display_args": "--clang-format-requirements=\"['', '', ...]\"", "config_key": "requirements", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--debugpy-requirements=\"['', '', ...]\""], - "env_var": "PANTS_DEBUGPY_REQUIREMENTS", + "display_args": [ + "--clang-format-requirements=\"['', '', ...]\"" + ], + "env_var": "PANTS_CLANG_FORMAT_REQUIREMENTS", "fromfile": false, "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--debugpy-requirements"], + "scoped_cmd_line_args": ["--clang-format-requirements"], "target_field_name": null, "typ": "list", "unscoped_cmd_line_args": ["--requirements"], @@ -3171,24 +3219,24 @@ ] } }, - "PANTS_DEBUG_ADAPTER_HOST": { + "PANTS_CLANG_FORMAT_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--debug-adapter-host=", - "config_key": "host", - "default": "127.0.0.1", + "comma_separated_display_args": "--[no-]clang-format-skip", + "config_key": "skip", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--debug-adapter-host="], - "env_var": "PANTS_DEBUG_ADAPTER_HOST", + "display_args": ["--[no-]clang-format-skip"], + "env_var": "PANTS_CLANG_FORMAT_SKIP", "fromfile": false, - "help": "The hostname to use when launching the server.", + "help": "If true, don't use ClangFormat when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--debug-adapter-host"], + "scoped_cmd_line_args": ["--clang-format-skip", "--no-clang-format-skip"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--host"], + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -3199,62 +3247,62 @@ { "details": null, "rank": "HARDCODED", - "value": "127.0.0.1" + "value": false } ] } }, - "PANTS_DEBUG_ADAPTER_PORT": { + "PANTS_CLI_ALIAS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--debug-adapter-port=", - "config_key": "port", - "default": 5678, + "comma_separated_display_args": "--cli-alias=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "alias", + "default": {}, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--debug-adapter-port="], - "env_var": "PANTS_DEBUG_ADAPTER_PORT", + "display_args": ["--cli-alias=\"{'key1': val1, 'key2': val2, ...}\""], + "env_var": "PANTS_CLI_ALIAS", "fromfile": false, - "help": "The port to use when launching the server.", + "help": "Register command line aliases.\n\nExample:\n\n [cli.alias]\n green = \"fmt lint check\"\n all-changed = \"--changed-since=HEAD --changed-dependents=transitive\"\n\nThis would allow you to run `pants green all-changed`, which is shorthand for `pants fmt lint check --changed-since=HEAD --changed-dependents=transitive`.\n\nNotice: this option must be placed in a config file (e.g. `pants.toml` or `pantsrc`) to have any effect.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--debug-adapter-port"], + "scoped_cmd_line_args": ["--cli-alias"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--port"], + "typ": "dict", + "unscoped_cmd_line_args": ["--alias"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": {} }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": 5678 + "value": {} } ] } }, - "PANTS_DEPENDEES_CLOSED": { + "PANTS_COLORS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]dependees-closed", - "config_key": "closed", + "comma_separated_display_args": "--[no-]colors", + "config_key": "colors", "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]dependees-closed"], - "env_var": "PANTS_DEPENDEES_CLOSED", + "display_args": ["--[no-]colors"], + "env_var": "PANTS_COLORS", "fromfile": false, - "help": "Include the input targets in the output, along with the dependents.", + "help": "Whether Pants should use colors in output or not. This may also impact whether some tools Pants runs use color.\n\nWhen unset, this value defaults based on whether the output destination supports color.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--dependees-closed", "--no-dependees-closed"], + "scoped_cmd_line_args": ["--colors", "--no-colors"], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--closed", "--no-closed"], + "unscoped_cmd_line_args": ["--colors", "--no-colors"], "value_history": { "ranked_values": [ { @@ -3270,185 +3318,235 @@ ] } }, - "PANTS_DEPENDEES_OUTPUT_FILE": { + "PANTS_CONCURRENT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--dependees-output-file=", - "config_key": "output_file", - "default": null, + "comma_separated_display_args": "--[no-]concurrent", + "config_key": "concurrent", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--dependees-output-file="], - "env_var": "PANTS_DEPENDEES_OUTPUT_FILE", + "display_args": ["--[no-]concurrent"], + "env_var": "PANTS_CONCURRENT", "fromfile": false, - "help": "Output the goal's stdout to this file. If unspecified, outputs to stdout.", + "help": "Enable concurrent runs of Pants. With this enabled, Pants will start up all concurrent invocations (e.g. in other terminals) without pantsd. As a result, enabling this option will increase the per-run startup cost, but will not block subsequent invocations.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--dependees-output-file"], + "scoped_cmd_line_args": ["--concurrent", "--no-concurrent"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--output-file"], + "typ": "bool", + "unscoped_cmd_line_args": ["--concurrent", "--no-concurrent"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false } ] } }, - "PANTS_DEPENDEES_SEP": { + "PANTS_CONFIG_FILES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--dependees-sep=", - "config_key": "sep", - "default": "\\n", + "comma_separated_display_args": "--pants-config-files=\"['', '', ...]\"", + "config_key": "pants_config_files", + "default": ["/home/runner/work/pantsbuild.org/pantsbuild.org/pants.toml"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--dependees-sep="], - "env_var": "PANTS_DEPENDEES_SEP", + "display_args": ["--pants-config-files=\"['', '', ...]\""], + "env_var": "PANTS_CONFIG_FILES", "fromfile": false, - "help": "String to use to separate lines in line-oriented output.", + "help": "Paths to Pants config files. This may only be set through the environment variable `PANTS_CONFIG_FILES` and the command line argument `--pants-config-files`; it will be ignored if in a config file like `pants.toml`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--dependees-sep"], + "scoped_cmd_line_args": ["--pants-config-files"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--sep"], + "typ": "list", + "unscoped_cmd_line_args": ["--pants-config-files"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "\\n" + "value": [ + "/home/runner/work/pantsbuild.org/pantsbuild.org/pants.toml" + ] } ] } }, - "PANTS_DEPENDEES_TRANSITIVE": { + "PANTS_COURSIER_KNOWN_VERSIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]dependees-transitive", - "config_key": "transitive", - "default": false, + "comma_separated_display_args": "--coursier-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", + "default": [ + "v2.1.6|macos_arm64 |746b3e346fa2c0107fdbc8a627890d495cb09dee4f8dcc87146bdb45941088cf|20829782|https://github.com/VirtusLab/coursier-m1/releases/download/v2.1.6/cs-aarch64-apple-darwin.gz", + "v2.1.6|linux_arm64 |33330ca433781c9db9458e15d2d32e5d795de3437771647e26835e8b1391af82|20899290|https://github.com/VirtusLab/coursier-m1/releases/download/v2.1.6/cs-aarch64-pc-linux.gz", + "v2.1.6|linux_x86_64|af7234f8802107f5e1130307ef8a5cc90262d392f16ddff7dce27a4ed0ddd292|20681688", + "v2.1.6|macos_x86_64|36a5d42a0724be2ac39d0ebd8869b985e3d58ceb121bc60389ee2d6d7408dd56|20037412", + "v2.1.0-M5-18-gfebf9838c|linux_arm64 |d4ad15ba711228041ad8a46d848c83c8fbc421d7b01c415d8022074dd609760f|19264005", + "v2.1.0-M5-18-gfebf9838c|linux_x86_64|3e1a1ad1010d5582e9e43c5a26b273b0147baee5ebd27d3ac1ab61964041c90b|19551533", + "v2.1.0-M5-18-gfebf9838c|macos_arm64 |d13812c5a5ef4c9b3e25cc046d18addd09bacd149f95b20a14e4d2a73e358ecf|18826510", + "v2.1.0-M5-18-gfebf9838c|macos_x86_64|d13812c5a5ef4c9b3e25cc046d18addd09bacd149f95b20a14e4d2a73e358ecf|18826510", + "v2.0.16-169-g194ebc55c|linux_arm64 |da38c97d55967505b8454c20a90370c518044829398b9bce8b637d194d79abb3|18114472", + "v2.0.16-169-g194ebc55c|linux_x86_64|4c61a634c4bd2773b4543fe0fc32210afd343692891121cddb447204b48672e8|18486946", + "v2.0.16-169-g194ebc55c|macos_arm64 |15bce235d223ef1d022da30b67b4c64e9228d236b876c834b64e029bbe824c6f|17957182", + "v2.0.16-169-g194ebc55c|macos_x86_64|15bce235d223ef1d022da30b67b4c64e9228d236b876c834b64e029bbe824c6f|17957182" + ], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]dependees-transitive"], - "env_var": "PANTS_DEPENDEES_TRANSITIVE", + "display_args": ["--coursier-known-versions=\"['', '', ...]\""], + "env_var": "PANTS_COURSIER_KNOWN_VERSIONS", "fromfile": false, - "help": "List all transitive dependents. If unspecified, list direct dependents only.", + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--dependees-transitive", - "--no-dependees-transitive" - ], + "scoped_cmd_line_args": ["--coursier-known-versions"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--transitive", "--no-transitive"], + "typ": "list", + "unscoped_cmd_line_args": ["--known-versions"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": [ + "v2.1.6|macos_arm64 |746b3e346fa2c0107fdbc8a627890d495cb09dee4f8dcc87146bdb45941088cf|20829782|https://github.com/VirtusLab/coursier-m1/releases/download/v2.1.6/cs-aarch64-apple-darwin.gz", + "v2.1.6|linux_arm64 |33330ca433781c9db9458e15d2d32e5d795de3437771647e26835e8b1391af82|20899290|https://github.com/VirtusLab/coursier-m1/releases/download/v2.1.6/cs-aarch64-pc-linux.gz", + "v2.1.6|linux_x86_64|af7234f8802107f5e1130307ef8a5cc90262d392f16ddff7dce27a4ed0ddd292|20681688", + "v2.1.6|macos_x86_64|36a5d42a0724be2ac39d0ebd8869b985e3d58ceb121bc60389ee2d6d7408dd56|20037412", + "v2.1.0-M5-18-gfebf9838c|linux_arm64 |d4ad15ba711228041ad8a46d848c83c8fbc421d7b01c415d8022074dd609760f|19264005", + "v2.1.0-M5-18-gfebf9838c|linux_x86_64|3e1a1ad1010d5582e9e43c5a26b273b0147baee5ebd27d3ac1ab61964041c90b|19551533", + "v2.1.0-M5-18-gfebf9838c|macos_arm64 |d13812c5a5ef4c9b3e25cc046d18addd09bacd149f95b20a14e4d2a73e358ecf|18826510", + "v2.1.0-M5-18-gfebf9838c|macos_x86_64|d13812c5a5ef4c9b3e25cc046d18addd09bacd149f95b20a14e4d2a73e358ecf|18826510", + "v2.0.16-169-g194ebc55c|linux_arm64 |da38c97d55967505b8454c20a90370c518044829398b9bce8b637d194d79abb3|18114472", + "v2.0.16-169-g194ebc55c|linux_x86_64|4c61a634c4bd2773b4543fe0fc32210afd343692891121cddb447204b48672e8|18486946", + "v2.0.16-169-g194ebc55c|macos_arm64 |15bce235d223ef1d022da30b67b4c64e9228d236b876c834b64e029bbe824c6f|17957182", + "v2.0.16-169-g194ebc55c|macos_x86_64|15bce235d223ef1d022da30b67b4c64e9228d236b876c834b64e029bbe824c6f|17957182" + ] } ] } }, - "PANTS_DEPENDENCIES_CLOSED": { + "PANTS_COURSIER_REPOS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]dependencies-closed", - "config_key": "closed", - "default": false, + "comma_separated_display_args": "--coursier-repos=\"['', '', ...]\"", + "config_key": "repos", + "default": [ + "https://maven-central.storage-download.googleapis.com/maven2", + "https://repo1.maven.org/maven2" + ], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]dependencies-closed"], - "env_var": "PANTS_DEPENDENCIES_CLOSED", + "display_args": ["--coursier-repos=\"['', '', ...]\""], + "env_var": "PANTS_COURSIER_REPOS", "fromfile": false, - "help": "Include the input targets in the output, along with the dependencies.", + "help": "Maven style repositories to resolve artifacts from.\n\nCoursier will resolve these repositories in the order in which they are specifed, and re-ordering repositories will cause artifacts to be re-downloaded. This can result in artifacts in lockfiles becoming invalid.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--dependencies-closed", - "--no-dependencies-closed" - ], + "scoped_cmd_line_args": ["--coursier-repos"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--closed", "--no-closed"], + "typ": "list", + "unscoped_cmd_line_args": ["--repos"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": [ + "https://maven-central.storage-download.googleapis.com/maven2", + "https://repo1.maven.org/maven2" + ] } ] } }, - "PANTS_DEPENDENCIES_OUTPUT_FILE": { + "PANTS_COURSIER_URL_PLATFORM_MAPPING": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--dependencies-output-file=", - "config_key": "output_file", - "default": null, + "comma_separated_display_args": "--coursier-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "url_platform_mapping", + "default": { + "linux_arm64": "aarch64-pc-linux", + "linux_x86_64": "x86_64-pc-linux", + "macos_arm64": "x86_64-apple-darwin", + "macos_x86_64": "x86_64-apple-darwin" + }, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--dependencies-output-file="], - "env_var": "PANTS_DEPENDENCIES_OUTPUT_FILE", + "display_args": [ + "--coursier-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_COURSIER_URL_PLATFORM_MAPPING", "fromfile": false, - "help": "Output the goal's stdout to this file. If unspecified, outputs to stdout.", + "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--dependencies-output-file"], + "scoped_cmd_line_args": ["--coursier-url-platform-mapping"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--output-file"], + "typ": "dict", + "unscoped_cmd_line_args": ["--url-platform-mapping"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": {} + }, + { + "details": "", + "rank": "HARDCODED", + "value": { + "linux_arm64": "aarch64-pc-linux", + "linux_x86_64": "x86_64-pc-linux", + "macos_arm64": "x86_64-apple-darwin", + "macos_x86_64": "x86_64-apple-darwin" + } } ] } }, - "PANTS_DEPENDENCIES_SEP": { + "PANTS_COURSIER_URL_TEMPLATE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--dependencies-sep=", - "config_key": "sep", - "default": "\\n", + "comma_separated_display_args": "--coursier-url-template=", + "config_key": "url_template", + "default": "https://github.com/coursier/coursier/releases/download/{version}/cs-{platform}.gz", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--dependencies-sep="], - "env_var": "PANTS_DEPENDENCIES_SEP", + "display_args": ["--coursier-url-template="], + "env_var": "PANTS_COURSIER_URL_TEMPLATE", "fromfile": false, - "help": "String to use to separate lines in line-oriented output.", + "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--dependencies-sep"], + "scoped_cmd_line_args": ["--coursier-url-template"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--sep"], + "unscoped_cmd_line_args": ["--url-template"], "value_history": { "ranked_values": [ { @@ -3459,32 +3557,31 @@ { "details": null, "rank": "HARDCODED", - "value": "\\n" + "value": "https://github.com/coursier/coursier/releases/download/{version}/cs-{platform}.gz" } ] } }, - "PANTS_DEPENDENCIES_TRANSITIVE": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]dependencies-transitive", - "config_key": "transitive", - "default": false, + "PANTS_COURSIER_USE_UNSUPPORTED_VERSION": { + "choices": ["error", "warning"], + "comma_separated_choices": "error, warning", + "comma_separated_display_args": "--coursier-use-unsupported-version=", + "config_key": "use_unsupported_version", + "default": "error", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]dependencies-transitive"], - "env_var": "PANTS_DEPENDENCIES_TRANSITIVE", + "display_args": [ + "--coursier-use-unsupported-version=" + ], + "env_var": "PANTS_COURSIER_USE_UNSUPPORTED_VERSION", "fromfile": false, - "help": "List all transitive dependencies. If unspecified, list direct dependencies only.", + "help": "\nWhat action to take in case the requested version of coursier is not supported.\n\nSupported coursier versions: unspecified\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--dependencies-transitive", - "--no-dependencies-transitive" - ], + "scoped_cmd_line_args": ["--coursier-use-unsupported-version"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--transitive", "--no-transitive"], + "typ": "UnsupportedVersionUsage", + "unscoped_cmd_line_args": ["--use-unsupported-version"], "value_history": { "ranked_values": [ { @@ -3495,29 +3592,29 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": "error" } ] } }, - "PANTS_DEPENDENTS_CLOSED": { + "PANTS_COURSIER_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]dependents-closed", - "config_key": "closed", - "default": false, + "comma_separated_display_args": "--coursier-version=", + "config_key": "version", + "default": "v2.1.6", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]dependents-closed"], - "env_var": "PANTS_DEPENDENTS_CLOSED", + "display_args": ["--coursier-version="], + "env_var": "PANTS_COURSIER_VERSION", "fromfile": false, - "help": "Include the input targets in the output, along with the dependents.", + "help": "Use this version of coursier.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--dependents-closed", "--no-dependents-closed"], + "scoped_cmd_line_args": ["--coursier-version"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--closed", "--no-closed"], + "typ": "str", + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { @@ -3528,29 +3625,29 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": "v2.1.6" } ] } }, - "PANTS_DEPENDENTS_OUTPUT_FILE": { + "PANTS_COVERAGE_PY_CONFIG": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--dependents-output-file=", - "config_key": "output_file", + "comma_separated_display_args": "--coverage-py-config=", + "config_key": "config", "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--dependents-output-file="], - "env_var": "PANTS_DEPENDENTS_OUTPUT_FILE", + "display_args": ["--coverage-py-config="], + "env_var": "PANTS_COVERAGE_PY_CONFIG", "fromfile": false, - "help": "Output the goal's stdout to this file. If unspecified, outputs to stdout.", + "help": "Path to an INI or TOML config file understood by coverage.py (https://coverage.readthedocs.io/en/stable/config.html).\n\nSetting this option will disable `[coverage-py].config_discovery`. Use this option if the config is located in a non-standard location.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--dependents-output-file"], + "scoped_cmd_line_args": ["--coverage-py-config"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--output-file"], + "typ": "file_option", + "unscoped_cmd_line_args": ["--config"], "value_history": { "ranked_values": [ { @@ -3561,24 +3658,27 @@ ] } }, - "PANTS_DEPENDENTS_SEP": { + "PANTS_COVERAGE_PY_CONFIG_DISCOVERY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--dependents-sep=", - "config_key": "sep", - "default": "\\n", + "comma_separated_display_args": "--[no-]coverage-py-config-discovery", + "config_key": "config_discovery", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--dependents-sep="], - "env_var": "PANTS_DEPENDENTS_SEP", + "display_args": ["--[no-]coverage-py-config-discovery"], + "env_var": "PANTS_COVERAGE_PY_CONFIG_DISCOVERY", "fromfile": false, - "help": "String to use to separate lines in line-oriented output.", + "help": "If true, Pants will include any relevant config files during runs (`.coveragerc`, `setup.cfg`, `tox.ini`, and `pyproject.toml`).\n\nUse `[coverage-py].config` instead if your config is in a non-standard location.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--dependents-sep"], + "scoped_cmd_line_args": [ + "--coverage-py-config-discovery", + "--no-coverage-py-config-discovery" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--sep"], + "typ": "bool", + "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], "value_history": { "ranked_values": [ { @@ -3589,32 +3689,29 @@ { "details": null, "rank": "HARDCODED", - "value": "\\n" + "value": true } ] } }, - "PANTS_DEPENDENTS_TRANSITIVE": { + "PANTS_COVERAGE_PY_CONSOLE_SCRIPT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]dependents-transitive", - "config_key": "transitive", - "default": false, + "comma_separated_display_args": "--coverage-py-console-script=", + "config_key": "console_script", + "default": "coverage", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]dependents-transitive"], - "env_var": "PANTS_DEPENDENTS_TRANSITIVE", + "display_args": ["--coverage-py-console-script="], + "env_var": "PANTS_COVERAGE_PY_CONSOLE_SCRIPT", "fromfile": false, - "help": "List all transitive dependents. If unspecified, list direct dependents only.", + "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--dependents-transitive", - "--no-dependents-transitive" - ], + "scoped_cmd_line_args": ["--coverage-py-console-script"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--transitive", "--no-transitive"], + "typ": "str", + "unscoped_cmd_line_args": ["--console-script"], "value_history": { "ranked_values": [ { @@ -3625,155 +3722,151 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": "coverage" } ] } }, - "PANTS_DISTDIR": { + "PANTS_COVERAGE_PY_ENTRY_POINT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pants-distdir=", - "config_key": "pants_distdir", - "default": "/tmp/tmp.MpwSc5OGVo/dist", + "comma_separated_display_args": "--coverage-py-entry-point=", + "config_key": "entry_point", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pants-distdir="], - "env_var": "PANTS_DISTDIR", + "display_args": ["--coverage-py-entry-point="], + "env_var": "PANTS_COVERAGE_PY_ENTRY_POINT", "fromfile": false, - "help": "Write end products, such as the results of `pants package`, to this dir.", + "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pants-distdir"], + "scoped_cmd_line_args": ["--coverage-py-entry-point"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--pants-distdir"], + "unscoped_cmd_line_args": ["--entry-point"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": "/tmp/tmp.MpwSc5OGVo/dist" } ] } }, - "PANTS_DOCFORMATTER_ARGS": { + "PANTS_COVERAGE_PY_FAIL_UNDER": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--docformatter-args=\"[, , ...]\"", - "config_key": "args", - "default": [], + "comma_separated_display_args": "--coverage-py-fail-under=", + "config_key": "fail_under", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--docformatter-args=\"[, , ...]\"" - ], - "env_var": "PANTS_DOCFORMATTER_ARGS", + "display_args": ["--coverage-py-fail-under="], + "env_var": "PANTS_COVERAGE_PY_FAIL_UNDER", "fromfile": false, - "help": "Arguments to pass directly to docformatter, e.g. `--docformatter-args='--wrap-summaries=100 --pre-summary-newline'`.", + "help": "Fail if the total combined coverage percentage for all tests is less than this number.\n\nUse this instead of setting `fail_under` in a coverage.py config file, as the config will apply to each test separately, while you typically want this to apply to the combined coverage for all tests run.\n\nNote that you must generate at least one (non-raw) coverage report for this check to trigger.\n\nNote also that if you specify a non-integral value, you must also set `[report] precision` properly in the coverage.py config file to make use of the decimal places. See https://coverage.readthedocs.io/en/latest/config.html.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--docformatter-args"], + "scoped_cmd_line_args": ["--coverage-py-fail-under"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "typ": "float", + "unscoped_cmd_line_args": ["--fail-under"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] - }, - { - "details": "", - "rank": "HARDCODED", - "value": [] + "value": null } ] } }, - "PANTS_DOCFORMATTER_CONSOLE_SCRIPT": { + "PANTS_COVERAGE_PY_FILTER": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--docformatter-console-script=", - "config_key": "console_script", - "default": "docformatter", + "comma_separated_display_args": "--coverage-py-filter=\"['', '', ...]\"", + "config_key": "filter", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--docformatter-console-script="], - "env_var": "PANTS_DOCFORMATTER_CONSOLE_SCRIPT", + "display_args": ["--coverage-py-filter=\"['', '', ...]\""], + "env_var": "PANTS_COVERAGE_PY_FILTER", "fromfile": false, - "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", + "help": "A list of Python modules or filesystem paths to use in the coverage report, e.g. `['helloworld_test', 'helloworld/util/dirutil']`.\n\nBoth modules and directory paths are recursive: any submodules or child paths, respectively, will be included.\n\nIf you leave this off, the coverage report will include every file in the transitive closure of the address/file arguments; for example, `test ::` will include every Python file in your project, whereas `test project/app_test.py` will include `app_test.py` and any of its transitive dependencies.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--docformatter-console-script"], + "scoped_cmd_line_args": ["--coverage-py-filter"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--console-script"], + "typ": "list", + "unscoped_cmd_line_args": ["--filter"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "docformatter" + "value": [] } ] } }, - "PANTS_DOCFORMATTER_ENTRY_POINT": { + "PANTS_COVERAGE_PY_GLOBAL_REPORT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--docformatter-entry-point=", - "config_key": "entry_point", - "default": null, + "comma_separated_display_args": "--[no-]coverage-py-global-report", + "config_key": "global_report", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--docformatter-entry-point="], - "env_var": "PANTS_DOCFORMATTER_ENTRY_POINT", + "display_args": ["--[no-]coverage-py-global-report"], + "env_var": "PANTS_COVERAGE_PY_GLOBAL_REPORT", "fromfile": false, - "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", + "help": "If true, Pants will generate a global coverage report.\n\nThe global report will include all Python source files in the workspace and not just those depended on by the tests that were run.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--docformatter-entry-point"], + "scoped_cmd_line_args": [ + "--coverage-py-global-report", + "--no-coverage-py-global-report" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--entry-point"], + "typ": "bool", + "unscoped_cmd_line_args": ["--global-report", "--no-global-report"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false } ] } }, - "PANTS_DOCFORMATTER_INSTALL_FROM_RESOLVE": { + "PANTS_COVERAGE_PY_INSTALL_FROM_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--docformatter-install-from-resolve=", + "comma_separated_display_args": "--coverage-py-install-from-resolve=", "config_key": "install_from_resolve", "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--docformatter-install-from-resolve="], - "env_var": "PANTS_DOCFORMATTER_INSTALL_FROM_RESOLVE", + "display_args": ["--coverage-py-install-from-resolve="], + "env_var": "PANTS_COVERAGE_PY_INSTALL_FROM_RESOLVE", "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `docformatter` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `coverage-py` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--docformatter-install-from-resolve"], + "scoped_cmd_line_args": ["--coverage-py-install-from-resolve"], "target_field_name": null, "typ": "str", "unscoped_cmd_line_args": ["--install-from-resolve"], @@ -3787,23 +3880,23 @@ ] } }, - "PANTS_DOCFORMATTER_INTERPRETER_CONSTRAINTS": { + "PANTS_COVERAGE_PY_INTERPRETER_CONSTRAINTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--docformatter-interpreter-constraints=\"['', '', ...]\"", + "comma_separated_display_args": "--coverage-py-interpreter-constraints=\"['', '', ...]\"", "config_key": "interpreter_constraints", "default": ["CPython>=3.7,<4"], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--docformatter-interpreter-constraints=\"['', '', ...]\"" + "--coverage-py-interpreter-constraints=\"['', '', ...]\"" ], - "env_var": "PANTS_DOCFORMATTER_INTERPRETER_CONSTRAINTS", + "env_var": "PANTS_COVERAGE_PY_INTERPRETER_CONSTRAINTS", "fromfile": false, "help": "Python interpreter constraints for this tool.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--docformatter-interpreter-constraints"], + "scoped_cmd_line_args": ["--coverage-py-interpreter-constraints"], "target_field_name": null, "typ": "list", "unscoped_cmd_line_args": ["--interpreter-constraints"], @@ -3822,59 +3915,24 @@ ] } }, - "PANTS_DOCFORMATTER_REQUIREMENTS": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--docformatter-requirements=\"['', '', ...]\"", - "config_key": "requirements", - "default": [], - "deprecated_message": null, - "deprecation_active": false, - "display_args": [ - "--docformatter-requirements=\"['', '', ...]\"" - ], - "env_var": "PANTS_DOCFORMATTER_REQUIREMENTS", - "fromfile": false, - "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--docformatter-requirements"], - "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--requirements"], - "value_history": { - "ranked_values": [ - { - "details": "", - "rank": "NONE", - "value": [] - }, - { - "details": "", - "rank": "HARDCODED", - "value": [] - } - ] - } - }, - "PANTS_DOCFORMATTER_SKIP": { + "PANTS_COVERAGE_PY_OUTPUT_DIR": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]docformatter-skip", - "config_key": "skip", - "default": false, + "comma_separated_display_args": "--coverage-py-output-dir=", + "config_key": "output_dir", + "default": "{distdir}/coverage/python", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]docformatter-skip"], - "env_var": "PANTS_DOCFORMATTER_SKIP", + "display_args": ["--coverage-py-output-dir="], + "env_var": "PANTS_COVERAGE_PY_OUTPUT_DIR", "fromfile": false, - "help": "If true, don't use docformatter when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "Path to write the Pytest Coverage report to. Must be relative to the build root.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--docformatter-skip", "--no-docformatter-skip"], + "scoped_cmd_line_args": ["--coverage-py-output-dir"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "typ": "str", + "unscoped_cmd_line_args": ["--output-dir"], "value_history": { "ranked_values": [ { @@ -3885,59 +3943,31 @@ { "details": null, "rank": "HARDCODED", - "value": false - } - ] - } - }, - "PANTS_DOCKERFILE_PARSER_INSTALL_FROM_RESOLVE": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--dockerfile-parser-install-from-resolve=", - "config_key": "install_from_resolve", - "default": null, - "deprecated_message": null, - "deprecation_active": false, - "display_args": ["--dockerfile-parser-install-from-resolve="], - "env_var": "PANTS_DOCKERFILE_PARSER_INSTALL_FROM_RESOLVE", - "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `dockerfile-parser` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--dockerfile-parser-install-from-resolve"], - "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--install-from-resolve"], - "value_history": { - "ranked_values": [ - { - "details": null, - "rank": "NONE", - "value": null + "value": "{distdir}/coverage/python" } ] } }, - "PANTS_DOCKERFILE_PARSER_INTERPRETER_CONSTRAINTS": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--dockerfile-parser-interpreter-constraints=\"['', '', ...]\"", - "config_key": "interpreter_constraints", - "default": ["CPython>=3.7,<4"], + "PANTS_COVERAGE_PY_REPORT": { + "choices": ["console", "xml", "html", "raw", "json", "lcov"], + "comma_separated_choices": "console, xml, html, raw, json, lcov", + "comma_separated_display_args": "--coverage-py-report=\"[, , ...]\"", + "config_key": "report", + "default": ["console"], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--dockerfile-parser-interpreter-constraints=\"['', '', ...]\"" + "--coverage-py-report=\"[, , ...]\"" ], - "env_var": "PANTS_DOCKERFILE_PARSER_INTERPRETER_CONSTRAINTS", + "env_var": "PANTS_COVERAGE_PY_REPORT", "fromfile": false, - "help": "Python interpreter constraints for this tool.", + "help": "Which coverage report type(s) to emit.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--dockerfile-parser-interpreter-constraints"], + "scoped_cmd_line_args": ["--coverage-py-report"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--interpreter-constraints"], + "unscoped_cmd_line_args": ["--report"], "value_history": { "ranked_values": [ { @@ -3948,28 +3978,28 @@ { "details": "", "rank": "HARDCODED", - "value": ["CPython>=3.7,<4"] + "value": ["console"] } ] } }, - "PANTS_DOCKERFILE_PARSER_REQUIREMENTS": { + "PANTS_COVERAGE_PY_REQUIREMENTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--dockerfile-parser-requirements=\"['', '', ...]\"", + "comma_separated_display_args": "--coverage-py-requirements=\"['', '', ...]\"", "config_key": "requirements", "default": [], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--dockerfile-parser-requirements=\"['', '', ...]\"" + "--coverage-py-requirements=\"['', '', ...]\"" ], - "env_var": "PANTS_DOCKERFILE_PARSER_REQUIREMENTS", + "env_var": "PANTS_COVERAGE_PY_REQUIREMENTS", "fromfile": false, "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--dockerfile-parser-requirements"], + "scoped_cmd_line_args": ["--coverage-py-requirements"], "target_field_name": null, "typ": "list", "unscoped_cmd_line_args": ["--requirements"], @@ -3988,26 +4018,24 @@ ] } }, - "PANTS_DOCKER_BUILD_ARGS": { + "PANTS_CUE_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--docker-build-args=\"[, , ...]\"", - "config_key": "build_args", + "comma_separated_display_args": "--cue-args=\"[, , ...]\"", + "config_key": "args", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--docker-build-args=\"[, , ...]\"" - ], - "env_var": "PANTS_DOCKER_BUILD_ARGS", + "display_args": ["--cue-args=\"[, , ...]\""], + "env_var": "PANTS_CUE_ARGS", "fromfile": false, - "help": "Global build arguments (for Docker `--build-arg` options) to use for all `docker build` invocations.\n\nEntries are either strings in the form `ARG_NAME=value` to set an explicit value; or just `ARG_NAME` to copy the value from Pants's own environment.\n\nExample:\n\n [docker]\n build_args = [\"VAR1=value\", \"VAR2\"]\n\nUse the `extra_build_args` field on a `docker_image` target for additional image specific build arguments.", + "help": "Arguments to pass directly to CUE, e.g. `--cue-args='--all-errors'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--docker-build-args"], + "scoped_cmd_line_args": ["--cue-args"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--build-args"], + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { @@ -4023,62 +4051,67 @@ ] } }, - "PANTS_DOCKER_BUILD_HOSTS": { + "PANTS_CUE_KNOWN_VERSIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--docker-build-hosts=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "build_hosts", - "default": {}, + "comma_separated_display_args": "--cue-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", + "default": [ + "v0.4.3|macos_x86_64|1161254cf38b928b87a7ac1552dc2e12e6c5da298f9ce370d80e5518ddb6513d|6240316", + "v0.4.3|macos_arm64 |3d84b85a7288f94301a4726dcf95b2d92c8ff796c4d45c4733fbdcc04ceaf21d|5996085", + "v0.4.3|linux_x86_64|5e7ecb614b5926acfc36eb1258800391ab7c6e6e026fa7cacbfe92006bac895c|6037013", + "v0.4.3|linux_arm64 |a8c3f4140d18c324cc69f5de4df0566e529e1636cff340095a42475799bf3fed|5548404" + ], "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--docker-build-hosts=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_DOCKER_BUILD_HOSTS", + "display_args": ["--cue-known-versions=\"['', '', ...]\""], + "env_var": "PANTS_CUE_KNOWN_VERSIONS", "fromfile": false, - "help": "Hosts entries to be added to the `/etc/hosts` file in all built images.\n\nExample:\n\n [docker]\n build_hosts = {\"docker\": \"10.180.0.1\", \"docker2\": \"10.180.0.2\"}\n\nUse the `extra_build_hosts` field on a `docker_image` target for additional image specific host entries.", + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--docker-build-hosts"], + "scoped_cmd_line_args": ["--cue-known-versions"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--build-hosts"], + "typ": "list", + "unscoped_cmd_line_args": ["--known-versions"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": {} + "value": [] }, { "details": "", "rank": "HARDCODED", - "value": {} + "value": [ + "v0.4.3|macos_x86_64|1161254cf38b928b87a7ac1552dc2e12e6c5da298f9ce370d80e5518ddb6513d|6240316", + "v0.4.3|macos_arm64 |3d84b85a7288f94301a4726dcf95b2d92c8ff796c4d45c4733fbdcc04ceaf21d|5996085", + "v0.4.3|linux_x86_64|5e7ecb614b5926acfc36eb1258800391ab7c6e6e026fa7cacbfe92006bac895c|6037013", + "v0.4.3|linux_arm64 |a8c3f4140d18c324cc69f5de4df0566e529e1636cff340095a42475799bf3fed|5548404" + ] } ] } }, - "PANTS_DOCKER_BUILD_NO_CACHE": { + "PANTS_CUE_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]docker-build-no-cache", - "config_key": "build_no_cache", + "comma_separated_display_args": "--[no-]cue-skip", + "config_key": "skip", "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]docker-build-no-cache"], - "env_var": "PANTS_DOCKER_BUILD_NO_CACHE", + "display_args": ["--[no-]cue-skip"], + "env_var": "PANTS_CUE_SKIP", "fromfile": false, - "help": "Do not use the Docker cache when building images.", + "help": "If true, don't use CUE when running `pants fmt` and `pants fix` and `pants lint`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--docker-build-no-cache", - "--no-docker-build-no-cache" - ], + "scoped_cmd_line_args": ["--cue-skip", "--no-cue-skip"], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--build-no-cache", "--no-build-no-cache"], + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -4094,55 +4127,69 @@ ] } }, - "PANTS_DOCKER_BUILD_TARGET_STAGE": { + "PANTS_CUE_URL_PLATFORM_MAPPING": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--docker-build-target-stage=", - "config_key": "build_target_stage", - "default": null, + "comma_separated_display_args": "--cue-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "url_platform_mapping", + "default": { + "linux_arm64": "linux_arm64", + "linux_x86_64": "linux_amd64", + "macos_arm64": "darwin_arm64", + "macos_x86_64": "darwin_amd64" + }, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--docker-build-target-stage="], - "env_var": "PANTS_DOCKER_BUILD_TARGET_STAGE", + "display_args": [ + "--cue-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_CUE_URL_PLATFORM_MAPPING", "fromfile": false, - "help": "Global default value for `target_stage` on `docker_image` targets, overriding the field value on the targets, if there is a matching stage in the `Dockerfile`.\n\nThis is useful to provide from the command line, to specify the target stage to build for at execution time.", + "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--docker-build-target-stage"], + "scoped_cmd_line_args": ["--cue-url-platform-mapping"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--build-target-stage"], + "typ": "dict", + "unscoped_cmd_line_args": ["--url-platform-mapping"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": {} + }, + { + "details": "", + "rank": "HARDCODED", + "value": { + "linux_arm64": "linux_arm64", + "linux_x86_64": "linux_amd64", + "macos_arm64": "darwin_arm64", + "macos_x86_64": "darwin_amd64" + } } ] } }, - "PANTS_DOCKER_BUILD_VERBOSE": { + "PANTS_CUE_URL_TEMPLATE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]docker-build-verbose", - "config_key": "build_verbose", - "default": false, + "comma_separated_display_args": "--cue-url-template=", + "config_key": "url_template", + "default": "https://github.com/cue-lang/cue/releases/download/{version}/cue_{version}_{platform}.tar.gz", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]docker-build-verbose"], - "env_var": "PANTS_DOCKER_BUILD_VERBOSE", + "display_args": ["--cue-url-template="], + "env_var": "PANTS_CUE_URL_TEMPLATE", "fromfile": false, - "help": "Whether to log the Docker output to the console. If false, only the image ID is logged.", + "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--docker-build-verbose", - "--no-docker-build-verbose" - ], + "scoped_cmd_line_args": ["--cue-url-template"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--build-verbose", "--no-build-verbose"], + "typ": "str", + "unscoped_cmd_line_args": ["--url-template"], "value_history": { "ranked_values": [ { @@ -4153,29 +4200,31 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": "https://github.com/cue-lang/cue/releases/download/{version}/cue_{version}_{platform}.tar.gz" } ] } }, - "PANTS_DOCKER_DEFAULT_CONTEXT_ROOT": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--docker-default-context-root=", - "config_key": "default_context_root", - "default": "", + "PANTS_CUE_USE_UNSUPPORTED_VERSION": { + "choices": ["error", "warning"], + "comma_separated_choices": "error, warning", + "comma_separated_display_args": "--cue-use-unsupported-version=", + "config_key": "use_unsupported_version", + "default": "error", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--docker-default-context-root="], - "env_var": "PANTS_DOCKER_DEFAULT_CONTEXT_ROOT", + "display_args": [ + "--cue-use-unsupported-version=" + ], + "env_var": "PANTS_CUE_USE_UNSUPPORTED_VERSION", "fromfile": false, - "help": "Provide a default Docker build context root path for `docker_image` targets that does not specify their own `context_root` field.\n\nThe context root is relative to the build root by default, but may be prefixed with `./` to be relative to the directory of the BUILD file of the `docker_image`.\n\nExamples:\n\n --default-context-root=src/docker\n --default-context-root=./relative_to_the_build_file", + "help": "\nWhat action to take in case the requested version of CUE is not supported.\n\nSupported CUE versions: unspecified\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--docker-default-context-root"], + "scoped_cmd_line_args": ["--cue-use-unsupported-version"], "target_field_name": null, - "typ": "workspace_path", - "unscoped_cmd_line_args": ["--default-context-root"], + "typ": "UnsupportedVersionUsage", + "unscoped_cmd_line_args": ["--use-unsupported-version"], "value_history": { "ranked_values": [ { @@ -4186,29 +4235,29 @@ { "details": null, "rank": "HARDCODED", - "value": "" + "value": "error" } ] } }, - "PANTS_DOCKER_DEFAULT_REPOSITORY": { + "PANTS_CUE_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--docker-default-repository=", - "config_key": "default_repository", - "default": "{name}", + "comma_separated_display_args": "--cue-version=", + "config_key": "version", + "default": "v0.4.3", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--docker-default-repository="], - "env_var": "PANTS_DOCKER_DEFAULT_REPOSITORY", + "display_args": ["--cue-version="], + "env_var": "PANTS_CUE_VERSION", "fromfile": false, - "help": "Configure the default repository name used in the Docker image tag.\n\nThe value is formatted and may reference these variables (in addition to the normal placeheolders derived from the Dockerfile and build args etc):\n\n * name\n * directory\n * parent_directory\n * target_repository\n\nExample: `--default-repository=\"{directory}/{name}\"`.\n\nThe `name` variable is the `docker_image`'s target name, `directory` and `parent_directory` are the name of the directory in which the BUILD file is for the target, and its parent directory respectively.\n\nUse the `repository` field to set this value directly on a `docker_image` target.\n\nRegistries may override the repository value for a specific registry.\n\nAny registries or tags are added to the image name as required, and should not be part of the repository name.", + "help": "Use this version of CUE.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--docker-default-repository"], + "scoped_cmd_line_args": ["--cue-version"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--default-repository"], + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { @@ -4219,29 +4268,29 @@ { "details": null, "rank": "HARDCODED", - "value": "{name}" + "value": "v0.4.3" } ] } }, - "PANTS_DOCKER_ENV_VARS": { + "PANTS_DEBUGPY_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--docker-env-vars=\"[, , ...]\"", - "config_key": "env_vars", + "comma_separated_display_args": "--debugpy-args=\"[, , ...]\"", + "config_key": "args", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--docker-env-vars=\"[, , ...]\""], - "env_var": "PANTS_DOCKER_ENV_VARS", + "display_args": ["--debugpy-args=\"[, , ...]\""], + "env_var": "PANTS_DEBUGPY_ARGS", "fromfile": false, - "help": "Environment variables to set for `docker` invocations.\n\nEntries are either strings in the form `ENV_VAR=value` to set an explicit value; or just `ENV_VAR` to copy the value from Pants's own environment.", + "help": "Arguments to pass directly to debugpy, e.g. `--debugpy-args='--log-to-stderr'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--docker-env-vars"], - "target_field_name": "docker_env_vars", + "scoped_cmd_line_args": ["--debugpy-args"], + "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--env-vars"], + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { @@ -4257,59 +4306,52 @@ ] } }, - "PANTS_DOCKER_EXECUTABLE_SEARCH_PATHS": { + "PANTS_DEBUGPY_CONSOLE_SCRIPT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--docker-executable-search-paths=\"[, , ...]\"", - "config_key": "executable_search_paths", - "default": [""], + "comma_separated_display_args": "--debugpy-console-script=", + "config_key": "console_script", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--docker-executable-search-paths=\"[, , ...]\"" - ], - "env_var": "PANTS_DOCKER_EXECUTABLE_SEARCH_PATHS", + "display_args": ["--debugpy-console-script="], + "env_var": "PANTS_DEBUGPY_CONSOLE_SCRIPT", "fromfile": false, - "help": "The PATH value that will be used to find the Docker client and any tools required. The special string `\"\"` will expand to the contents of the PATH env var.", + "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--docker-executable-search-paths"], - "target_field_name": "docker_executable_search_paths", - "typ": "list", - "unscoped_cmd_line_args": ["--executable-search-paths"], - "value_history": { - "ranked_values": [ + "scoped_cmd_line_args": ["--debugpy-console-script"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--console-script"], + "value_history": { + "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] - }, - { - "details": "", - "rank": "HARDCODED", - "value": [""] + "value": null } ] } }, - "PANTS_DOCKER_EXECUTION": { + "PANTS_DEBUGPY_ENTRY_POINT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]docker-execution", - "config_key": "docker_execution", - "default": true, + "comma_separated_display_args": "--debugpy-entry-point=", + "config_key": "entry_point", + "default": "debugpy", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]docker-execution"], - "env_var": "PANTS_DOCKER_EXECUTION", + "display_args": ["--debugpy-entry-point="], + "env_var": "PANTS_DEBUGPY_ENTRY_POINT", "fromfile": false, - "help": "If true, `docker_environment` targets can be used to run builds inside a Docker container.\n\nIf false, anytime a `docker_environment` target is used, Pants will instead fallback to whatever the target's `fallback_environment` field is set to.\n\nThis can be useful, for example, if you want to always use Docker locally, but disable it in CI, or vice versa.", + "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--docker-execution", "--no-docker-execution"], + "scoped_cmd_line_args": ["--debugpy-entry-point"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--docker-execution", "--no-docker-execution"], + "typ": "str", + "unscoped_cmd_line_args": ["--entry-point"], "value_history": { "ranked_values": [ { @@ -4320,64 +4362,92 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": "debugpy" } ] } }, - "PANTS_DOCKER_REGISTRIES": { + "PANTS_DEBUGPY_INSTALL_FROM_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--docker-registries=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "registries", - "default": {}, + "comma_separated_display_args": "--debugpy-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--debugpy-install-from-resolve="], + "env_var": "PANTS_DEBUGPY_INSTALL_FROM_RESOLVE", + "fromfile": false, + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `debugpy` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--debugpy-install-from-resolve"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--install-from-resolve"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + "PANTS_DEBUGPY_INTERPRETER_CONSTRAINTS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--debugpy-interpreter-constraints=\"['', '', ...]\"", + "config_key": "interpreter_constraints", + "default": ["CPython>=3.7,<4"], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--docker-registries=\"{'key1': val1, 'key2': val2, ...}\"" + "--debugpy-interpreter-constraints=\"['', '', ...]\"" ], - "env_var": "PANTS_DOCKER_REGISTRIES", - "fromfile": true, - "help": "Configure Docker registries. The schema for a registry entry is as follows:\n\n {\n \"registry-alias\": {\n \"address\": \"registry-domain:port\",\n \"default\": bool,\n \"extra_image_tags\": [],\n \"skip_push\": bool,\n \"repository\": str,\n \"use_local_alias\": bool,\n },\n ...\n }\n\nIf no registries are provided in a `docker_image` target, then all default addresses will be used, if any.\n\nThe `docker_image.registries` may be provided with a list of registry addresses and registry aliases prefixed with `@` to be used instead of the defaults.\n\nA configured registry is marked as default either by setting `default = true` or with an alias of `\"default\"`.\n\nA `docker_image` may be pushed to a subset of registries using the per registry `skip_push` option rather then the all or nothing toggle of the field option `skip_push` on the `docker_image` target.\n\nAny image tags that should only be added for specific registries may be provided as the `extra_image_tags` option. The tags may use value formatting the same as for the `image_tags` field of the `docker_image` target.\n\nWhen a registry provides a `repository` value, it will be used instead of the `docker_image.repository` or the default repository. Using the placeholders `{target_repository}` or `{default_repository}` those overridden values may be incorporated into the registry specific repository value.\n\nIf `use_local_alias` is true, a built image is additionally tagged locally using the registry alias as the value for repository (i.e. the additional image tag is not pushed) and will be used for any `pants run` requests.", + "env_var": "PANTS_DEBUGPY_INTERPRETER_CONSTRAINTS", + "fromfile": false, + "help": "Python interpreter constraints for this tool.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--docker-registries"], + "scoped_cmd_line_args": ["--debugpy-interpreter-constraints"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--registries"], + "typ": "list", + "unscoped_cmd_line_args": ["--interpreter-constraints"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": {} + "value": [] }, { "details": "", "rank": "HARDCODED", - "value": {} + "value": ["CPython>=3.7,<4"] } ] } }, - "PANTS_DOCKER_RUN_ARGS": { + "PANTS_DEBUGPY_REQUIREMENTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--docker-run-args=\"[, , ...]\"", - "config_key": "run_args", + "comma_separated_display_args": "--debugpy-requirements=\"['', '', ...]\"", + "config_key": "requirements", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--docker-run-args=\"[, , ...]\""], - "env_var": "PANTS_DOCKER_RUN_ARGS", + "display_args": ["--debugpy-requirements=\"['', '', ...]\""], + "env_var": "PANTS_DEBUGPY_REQUIREMENTS", "fromfile": false, - "help": "Additional arguments to use for `docker run` invocations.\n\nExample:\n\n $ scie-pants-linux-x86_64 run --docker-run-args=\"-p 127.0.0.1:80:8080/tcp --name demo\" src/example:image -- [image entrypoint args]\n\nTo provide the top-level options to the `docker` client, use `[docker].env_vars` to configure the [Environment variables](https://docs.docker.com/engine/reference/commandline/cli/#environment-variables) as appropriate.\n\nThe arguments for the image entrypoint may be passed on the command line after a double dash (`--`), or using the `--run-args` option.\n\nDefaults to `--interactive --tty` when stdout is connected to a terminal.", + "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--docker-run-args"], + "scoped_cmd_line_args": ["--debugpy-requirements"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--run-args"], + "unscoped_cmd_line_args": ["--requirements"], "value_history": { "ranked_values": [ { @@ -4393,24 +4463,24 @@ ] } }, - "PANTS_DOCKER_TAILOR": { + "PANTS_DEBUG_ADAPTER_HOST": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]docker-tailor", - "config_key": "tailor", - "default": true, + "comma_separated_display_args": "--debug-adapter-host=", + "config_key": "host", + "default": "127.0.0.1", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]docker-tailor"], - "env_var": "PANTS_DOCKER_TAILOR", + "display_args": ["--debug-adapter-host="], + "env_var": "PANTS_DEBUG_ADAPTER_HOST", "fromfile": false, - "help": "If true, add `docker_image` targets with the `tailor` goal.", + "help": "The hostname to use when launching the server.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--docker-tailor", "--no-docker-tailor"], + "scoped_cmd_line_args": ["--debug-adapter-host"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--tailor", "--no-tailor"], + "typ": "str", + "unscoped_cmd_line_args": ["--host"], "value_history": { "ranked_values": [ { @@ -4421,595 +4491,292 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": "127.0.0.1" } ] } }, - "PANTS_DOCKER_TOOLS": { + "PANTS_DEBUG_ADAPTER_PORT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--docker-tools=\"['', '', ...]\"", - "config_key": "tools", - "default": [], + "comma_separated_display_args": "--debug-adapter-port=", + "config_key": "port", + "default": 5678, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--docker-tools=\"['', '', ...]\""], - "env_var": "PANTS_DOCKER_TOOLS", + "display_args": ["--debug-adapter-port="], + "env_var": "PANTS_DEBUG_ADAPTER_PORT", "fromfile": false, - "help": "List any additional executable tools required for Docker to work. The paths to these tools will be included in the PATH used in the execution sandbox, so that they may be used by the Docker client.", + "help": "The port to use when launching the server.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--docker-tools"], + "scoped_cmd_line_args": ["--debug-adapter-port"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--tools"], + "typ": "int", + "unscoped_cmd_line_args": ["--port"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": 5678 } ] } }, - "PANTS_DOWNLOAD_TERRAFORM_ARGS": { + "PANTS_DEPENDEES_CLOSED": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--download-terraform-args=\"[, , ...]\", ... -- [ [ [...]]]", - "config_key": "args", - "default": [], + "comma_separated_display_args": "--[no-]dependees-closed", + "config_key": "closed", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--download-terraform-args=\"[, , ...]\"", - "... -- [ [ [...]]]" - ], - "env_var": "PANTS_DOWNLOAD_TERRAFORM_ARGS", + "display_args": ["--[no-]dependees-closed"], + "env_var": "PANTS_DEPENDEES_CLOSED", "fromfile": false, - "help": "Arguments to pass directly to terraform, e.g. `--download-terraform-args='-auto-approve'`.\n\nAdditional arguments to pass to the Terraform command line.", + "help": "Include the input targets in the output, along with the dependents.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--download-terraform-args"], + "scoped_cmd_line_args": ["--dependees-closed", "--no-dependees-closed"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "typ": "bool", + "unscoped_cmd_line_args": ["--closed", "--no-closed"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": false } ] } }, - "PANTS_DOWNLOAD_TERRAFORM_EXTRA_ENV_VARS": { + "PANTS_DEPENDEES_OUTPUT_FILE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--download-terraform-extra-env-vars=\"['', '', ...]\"", - "config_key": "extra_env_vars", - "default": [], + "comma_separated_display_args": "--dependees-output-file=", + "config_key": "output_file", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--download-terraform-extra-env-vars=\"['', '', ...]\"" - ], - "env_var": "PANTS_DOWNLOAD_TERRAFORM_EXTRA_ENV_VARS", + "display_args": ["--dependees-output-file="], + "env_var": "PANTS_DEPENDEES_OUTPUT_FILE", "fromfile": false, - "help": "Additional environment variables that would be made available to all Terraform processes.", + "help": "Output the goal's stdout to this file. If unspecified, outputs to stdout.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--download-terraform-extra-env-vars"], + "scoped_cmd_line_args": ["--dependees-output-file"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--extra-env-vars"], + "typ": "str", + "unscoped_cmd_line_args": ["--output-file"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null + } + ] + } + }, + "PANTS_DEPENDEES_SEP": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--dependees-sep=", + "config_key": "sep", + "default": "\\n", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--dependees-sep="], + "env_var": "PANTS_DEPENDEES_SEP", + "fromfile": false, + "help": "String to use to separate lines in line-oriented output.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--dependees-sep"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--sep"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": "\\n" } ] } }, - "PANTS_DOWNLOAD_TERRAFORM_KNOWN_VERSIONS": { + "PANTS_DEPENDEES_TRANSITIVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--download-terraform-known-versions=\"['', '', ...]\"", - "config_key": "known_versions", - "default": [ - "1.4.6|macos_x86_64|5d8332994b86411b049391d31ad1a0785dfb470db8b9c50617de28ddb5d1f25d|22051279", - "1.4.6|macos_arm64|30a2f87298ff9f299452119bd14afaa8d5b000c572f62fa64baf432e35d9dec1|20613318", - "1.4.6|linux_x86_64|e079db1a8945e39b1f8ba4e513946b3ab9f32bd5a2bdf19b9b186d22c5a3d53b|20779821", - "1.4.6|linux_arm64|b38f5db944ac4942f11ceea465a91e365b0636febd9998c110fbbe95d61c3b26|18834675", - "1.4.5|macos_x86_64|808e54d826737e9a0ca79bbe29330e50d3622bbeeb26066c63b371a291731711|22031074", - "1.4.5|macos_arm64|7104d9d13632aa61b494a349c589048d21bd550e579404c3a41c4932e4d6aa97|20592841", - "1.4.5|linux_x86_64|ce10e941cd11554b15a189cd00191c05abc20dff865599d361bdb863c5f406a9|20767621", - "1.4.5|linux_arm64|ca2c48f518f72fef668255150cc5e63b92545edc62a05939bbff8a350bceb357|18813058", - "1.4.4|macos_x86_64|0303ed9d7e5a225fc2e6fa9bf76fc6574c0c0359f22d5dfc04bc8b3234444f7c|22032187", - "1.4.4|macos_arm64|75602d9ec491982ceabea813569579b2991093a4e0d76b7ca86ffd9b7a2a1d1e|20594012", - "1.4.4|linux_x86_64|67541c1f6631befcc25b764028e5605e59234d4424e60a256518ee1e8dd50593|20767354", - "1.4.4|linux_arm64|f0b4e092f2aa6de3324e5e4b5b51260ecf5e8c2f5335ff7a2ffdc4fb54a8922d|18814310", - "1.4.3|macos_x86_64|89bdb242bfacf24167f365ef7a3bf0ad0e443ddd27ebde425fb71d77ce1a2597|22032267", - "1.4.3|macos_arm64|20b9d484bf99ada6c0de89316176ba33f7c87f64c0738991188465147bba221b|20574247", - "1.4.3|linux_x86_64|2252ee6ac8437b93db2b2ba341edc87951e2916afaeb50a88b858e80796e9111|20781685", - "1.4.3|linux_arm64|d3d9464953d390970e7f4f7cbcd94dbf63136da6fe1cbb4955d944a9315bdcdb|18814307", - "1.4.2|macos_x86_64|c218a6c0ef6692b25af16995c8c7bdf6739e9638fef9235c6aced3cd84afaf66|22030042", - "1.4.2|macos_arm64|af8ff7576c8fc41496fdf97e9199b00d8d81729a6a0e821eaf4dfd08aa763540|20588400", - "1.4.2|linux_x86_64|9f3ca33d04f5335472829d1df7785115b60176d610ae6f1583343b0a2221a931|20234129", - "1.4.2|linux_arm64|39c182670c4e63e918e0a16080b1cc47bb16e158d7da96333d682d6a9cb8eb91|18206088", - "1.4.1|macos_x86_64|96466364a7e66e3d456ecb6c85a63c83e124c004f8835fb8ea9b7bbb7542a9d0|22077050", - "1.4.1|macos_arm64|61f76e130b97c8a9017d8aaff15d252af29117e35ea1a0fc30bcaab7ceafce73|20634145", - "1.4.1|linux_x86_64|9e9f3e6752168dea8ecb3643ea9c18c65d5a52acc06c22453ebc4e3fc2d34421|20276168", - "1.4.1|linux_arm64|53322cc70b6e50ac1985bf26a78ffa2814789a4704880f071eaf3e67a463d6f6|18248378", - "1.4.0|macos_x86_64|e897a4217f1c3bfe37c694570dcc6371336fbda698790bb6b0547ec8daf1ffb3|21935694", - "1.4.0|macos_arm64|d4a1e564714c6acf848e86dc020ff182477b49f932e3f550a5d9c8f5da7636fb|20508091", - "1.4.0|linux_x86_64|5da60da508d6d1941ffa8b9216147456a16bbff6db7622ae9ad01d314cbdd188|20144407", - "1.4.0|linux_arm64|33e0f4f0b75f507fc19012111de008308df343153cd6a3992507f4566c0bb723|18130960", - "1.3.9|macos_x86_64|a73326ea8fb06f6976597e005f8047cbd55ac76ed1e517303d8f6395db6c7805|21194871", - "1.3.9|macos_arm64|d8a59a794a7f99b484a07a0ed2aa6520921d146ac5a7f4b1b806dcf5c4af0525|19793371", - "1.3.9|linux_x86_64|53048fa573effdd8f2a59b726234c6f450491fe0ded6931e9f4c6e3df6eece56|19477757", - "1.3.9|linux_arm64|da571087268c5faf884912c4239c6b9c8e1ed8e8401ab1dcb45712df70f42f1b|17513770", - "1.3.8|macos_x86_64|1a27a6fac31ecb05de610daf61a29fe83d304d7c519d773afbf56c11c3b6276b|21189878", - "1.3.8|macos_arm64|873b05ac81645cd7289d6ccfd3e73d4735af1a453f2cd19da0650bdabf7d2eb6|19780134", - "1.3.8|linux_x86_64|9d9e7d6a9b41cef8b837af688441d4fbbd84b503d24061d078ad662441c70240|19479266", - "1.3.8|linux_arm64|a42bf3c7d6327f45d2b212b692ab4229285fb44dbb8adb7c39e18be2b26167c8|17507360", - "1.3.7|macos_x86_64|eeae48adcd55212b34148ed203dd5843e9b2a84a852a9877f3386fadb0514980|21185288", - "1.3.7|macos_arm64|01d553db5f7b4cf0729b725e4402643efde5884b1dabf5eb80af328ce5e447cf|19774151", - "1.3.7|linux_x86_64|b8cf184dee15dfa89713fe56085313ab23db22e17284a9a27c0999c67ce3021e|19464102", - "1.3.7|linux_arm64|5b491c555ea8a62dda551675fd9f27d369f5cdbe87608d2a7367d3da2d38ea38|17499971", - "1.3.6|macos_x86_64|13881fe0100238577394243a90c0631783aad21b77a9a7ee830404f86c0d37bb|21183111", - "1.3.6|macos_arm64|dbff0aeeaeee877c254f5414bef5c9d186e159aa0019223aac678abad9442c53|19779986", - "1.3.6|linux_x86_64|bb44a4c2b0a832d49253b9034d8ccbd34f9feeb26eda71c665f6e7fa0861f49b|19466755", - "1.3.6|linux_arm64|f4b1af29094290f1b3935c29033c4e5291664ee2c015ca251a020dd425c847c3|17501845", - "1.3.5|macos_x86_64|e6c9836188265b20c2588e9c9d6b1727094b324a379337e68ba58a6d26be8b51|21182319", - "1.3.5|macos_arm64|fcec1cbff229fbe59b03257ba2451d5ad1f5129714f08ccf6372b2737647c063|19780547", - "1.3.5|linux_x86_64|ac28037216c3bc41de2c22724e863d883320a770056969b8d211ca8af3d477cf|19469337", - "1.3.5|linux_arm64|ba5b1761046b899197bbfce3ad9b448d14550106d2cc37c52a60fc6822b584ed|17502759", - "1.3.4|macos_x86_64|2a75c69ec5ed8506658b266a40075256b62a7d245ff6297df7e48fa72af23879|21181585", - "1.3.4|macos_arm64|a1f740f92afac6db84421a3ec07d9061c34a32f88b4b0b47d243de16c961169f|19773343", - "1.3.4|linux_x86_64|b24210f28191fa2a08efe69f54e3db2e87a63369ac4f5dcaf9f34dc9318eb1a8|19462529", - "1.3.4|linux_arm64|65381c6b61b2d1a98892199f649a5764ff5a772080a73d70f8663245e6402c39|17494667", - "1.3.3|macos_x86_64|2b3cf653cd106becdea562b6c8d3f8939641e5626c5278729cbef81678fa9f42|21163874", - "1.3.3|macos_arm64|51e94ecf88059e8a53c363a048b658230f560574f99b0d8396ebacead894d159|19755200", - "1.3.3|linux_x86_64|fa5cbf4274c67f2937cabf1a6544529d35d0b8b729ce814b40d0611fd26193c1|19451941", - "1.3.3|linux_arm64|b940a080c698564df5e6a2f1c4e1b51b2c70a5115358d2361e3697d3985ecbfe|17488660", - "1.3.2|macos_x86_64|3639461bbc712dc130913bbe632afb449fce8c0df692429d311e7cb808601901|21163990", - "1.3.2|macos_arm64|80480acbfee2e2d0b094f721f7568a40b790603080d6612e19b797a16b8ba82d|19757201", - "1.3.2|linux_x86_64|6372e02a7f04bef9dac4a7a12f4580a0ad96a37b5997e80738e070be330cb11c|19451510", - "1.3.2|linux_arm64|ce1a8770aaf27736a3352c5c31e95fb10d0944729b9d81013bf6848f8657da5f|17485206", - "1.3.1|macos_x86_64|4282ebe6d1d72ace0d93e8a4bcf9a6f3aceac107966216355bb516b1c49cc203|21161667", - "1.3.1|macos_arm64|f0514f29b08da2f39ba4fff0d7eb40093915c9c69ddc700b6f39b78275207d96|19756039", - "1.3.1|linux_x86_64|0847b14917536600ba743a759401c45196bf89937b51dd863152137f32791899|19450765", - "1.3.1|linux_arm64|7ebb3d1ff94017fbef8acd0193e0bd29dec1a8925e2b573c05a92fdb743d1d5b|17486534", - "1.3.0|macos_x86_64|80e55182d4495da867c93c25dc6ae29be83ece39d3225e6adedecd55b72d6bbf|21163947", - "1.3.0|macos_arm64|df703317b5c7f80dc7c61e46de4697c9f440e650a893623351ab5e184995b404|19741011", - "1.3.0|linux_x86_64|380ca822883176af928c80e5771d1c0ac9d69b13c6d746e6202482aedde7d457|19450952", - "1.3.0|linux_arm64|0a15de6f934cf2217e5055412e7600d342b4f7dcc133564690776fece6213a9a|17488551", - "1.2.9|macos_x86_64|84a678ece9929cebc34c7a9a1ba287c8b91820b336f4af8437af7feaa0117b7c|21672810", - "1.2.9|macos_arm64|bc3b94b53cdf1be3c4988faa61aad343f48e013928c64bfc6ebeb61657f97baa|20280541", - "1.2.9|linux_x86_64|0e0fc38641addac17103122e1953a9afad764a90e74daf4ff8ceeba4e362f2fb|19906116", - "1.2.9|linux_arm64|6da7bf01f5a72e61255c2d80eddeba51998e2bb1f50a6d81b0d3b71e70e18531|17946045", - "1.2.8|macos_x86_64|efd3e21a9bb1cfa68303f8d119ea8970dbb616f5f99caa0fe21d796e0cd70252|21678594", - "1.2.8|macos_arm64|2c83bfea9e1c202c449e91bee06a804afb45cb8ba64a73da48fb0f61df51b327|20277152", - "1.2.8|linux_x86_64|3e9c46d6f37338e90d5018c156d89961b0ffb0f355249679593aff99f9abe2a2|19907515", - "1.2.8|linux_arm64|26c05cadb05cdaa8ac64b90b982b4e9350715ec2e9995a6b03bb964d230de055|17947439", - "1.2.7|macos_x86_64|74e47b54ea78685be24c84e0e17b22b56220afcdb24ec853514b3863199f01e4|21673162", - "1.2.7|macos_arm64|ec4e623914b411f8cc93a1e71396a1e7f1fe1e96bb2e532ba3e955d2ca5cc442|20278743", - "1.2.7|linux_x86_64|dfd7c44a5b6832d62860a01095a15b53616fb3ea4441ab89542f9364e3fca718|19907183", - "1.2.7|linux_arm64|80d064008d57ba5dc97e189215c87275bf39ca14b1234430eae2f114394ea229|17943724", - "1.2.6|macos_x86_64|d896d2776af8b06cd4acd695ad75913040ce31234f5948688fd3c3fde53b1f75|21670957", - "1.2.6|macos_arm64|c88ceb34f343a2bb86960e32925c5ec43b41922ee9ede1019c5cf7d7b4097718|20279669", - "1.2.6|linux_x86_64|9fd445e7a191317dcfc99d012ab632f2cc01f12af14a44dfbaba82e0f9680365|19905977", - "1.2.6|linux_arm64|322755d11f0da11169cdb234af74ada5599046c698dccc125859505f85da2a20|17943213", - "1.2.5|macos_x86_64|2520fde736b43332b0c2648f4f6dde407335f322a3085114dc4f70e6e50eadc0|21659883", - "1.2.5|macos_arm64|92ad40db4a0930bdf872d6336a7b3a18b17c6fd04d9fc769b554bf51c8add505|20266441", - "1.2.5|linux_x86_64|281344ed7e2b49b3d6af300b1fe310beed8778c56f3563c4d60e5541c0978f1b|19897064", - "1.2.5|linux_arm64|0544420eb29b792444014988018ae77a7c8df6b23d84983728695ba73e38f54a|17938208", - "1.2.4|macos_x86_64|e7d2c66264a3da94854ae6ff692bbb9a1bc11c36bb5658e3ef19841388a07430|21658356", - "1.2.4|macos_arm64|c31754ff5553707ef9fd2f913b833c779ab05ce192eb14913f51816a077c6798|20263133", - "1.2.4|linux_x86_64|705ea62a44a0081594dad6b2b093eefefb12d54fa5a20a66562f9e082b00414c|19895510", - "1.2.4|linux_arm64|11cfa2233dc708b51b16d5b923379db67e35c22b1b988773e5b31a7c2e251471|17936883", - "1.2.3|macos_x86_64|bdc22658463237530dc120dadb0221762d9fb9116e7a6e0dc063d8ae649c431e|21658937", - "1.2.3|macos_arm64|6f06debac2ac54951464bf490e1606f973ab53ad8ba5decea76646e8f9309512|20256836", - "1.2.3|linux_x86_64|728b6fbcb288ad1b7b6590585410a98d3b7e05efe4601ef776c37e15e9a83a96|19891436", - "1.2.3|linux_arm64|a48991e938a25bfe5d257f4b6cbbdc73d920cc34bbc8f0e685e28b9610ad75fe|17933271", - "1.2.2|macos_x86_64|1d22663c1ab22ecea774ae63aee21eecfee0bbc23b953206d889a5ba3c08525a|21656824", - "1.2.2|macos_arm64|b87716b55a3b10cced60db5285bae57aee9cc0f81c555dccdc4f54f62c2a3b60|20254768", - "1.2.2|linux_x86_64|2934a0e8824925beb956b2edb5fef212a6141c089d29d8568150a43f95b3a626|19889133", - "1.2.2|linux_arm64|9c6202237d7477412054dcd36fdc269da9ee66ecbc45bb07d0d63b7d36af7b21|17932829", - "1.2.1|macos_x86_64|31c0fd4deb7c6a77c08d2fdf59c37950e6df7165088c004e1dd7f5e09fbf6307|21645582", - "1.2.1|macos_arm64|70159b3e3eb49ee71193815943d9217c59203fd4ee8c6960aeded744094a2250|20253448", - "1.2.1|linux_x86_64|8cf8eb7ed2d95a4213fbfd0459ab303f890e79220196d1c4aae9ecf22547302e|19881618", - "1.2.1|linux_arm64|972ea512dac822274791dedceb6e7f8b9ac2ed36bd7759269b6806d0ab049128|17922073", - "1.2.0|macos_x86_64|1b102ba3bf0c60ff6cbee74f721bf8105793c1107a1c6d03dcab98d7079f0c77|21645732", - "1.2.0|macos_arm64|f5e46cabe5889b60597f0e9c365cbc663e4c952c90a16c10489897c2075ae4f0|20253335", - "1.2.0|linux_x86_64|b87de03adbdfdff3c2552c8c8377552d0eecd787154465100cf4e29de4a7be1f|19880608", - "1.2.0|linux_arm64|ee80b8635d8fdbaed57beffe281cf87b8b1fd1ddb29c08d20e25a152d9f0f871|17920355", - "1.1.9|macos_x86_64|685258b525eae94fb0b406faf661aa056d31666256bf28e625365a251cb89fdc|20850638", - "1.1.9|macos_arm64|39fac4be74462be86b2290dd09fe1092f73dfb48e2df92406af0e199cfa6a16c|20093184", - "1.1.9|linux_x86_64|9d2d8a89f5cc8bc1c06cb6f34ce76ec4b99184b07eb776f8b39183b513d7798a|19262029", - "1.1.9|linux_arm64|e8a09d1fe5a68ed75e5fabe26c609ad12a7e459002dea6543f1084993b87a266|17521011", - "1.1.8|macos_x86_64|48f1f1e04d0aa8f5f1a661de95e3c2b8fd8ab16b3d44015372aff7693d36c2cf|20354970", - "1.1.8|macos_arm64|943e1948c4eae82cf8b490bb274939fe666252bbc146f098e7da65b23416264a|19631574", - "1.1.8|linux_x86_64|fbd37c1ec3d163f493075aa0fa85147e7e3f88dd98760ee7af7499783454f4c5|18796132", - "1.1.8|linux_arm64|10b2c063dcff91329ee44bce9d71872825566b713308b3da1e5768c6998fb84f|17107405", - "1.1.7|macos_x86_64|6e56eea328683541f6de0d5f449251a974d173e6d8161530956a20d9c239731a|20351873", - "1.1.7|macos_arm64|8919ceee34f6bfb16a6e9ff61c95f4043c35c6d70b21de27e5a153c19c7eba9c|19625836", - "1.1.7|linux_x86_64|e4add092a54ff6febd3325d1e0c109c9e590dc6c38f8bb7f9632e4e6bcca99d4|18795309", - "1.1.7|linux_arm64|2f72982008c52d2d57294ea50794d7c6ae45d2948e08598bfec3e492bce8d96e|17109768", - "1.1.6|macos_x86_64|7a499c1f08d89548ae4c0e829eea43845fa1bd7b464e7df46102b35e6081fe44|20303856", - "1.1.6|macos_arm64|f06a14fdb610ec5a7f18bdbb2f67187230eb418329756732d970b6ca3dae12c3|19577273", - "1.1.6|linux_x86_64|3e330ce4c8c0434cdd79fe04ed6f6e28e72db44c47ae50d01c342c8a2b05d331|18751464", - "1.1.6|linux_arm64|a53fb63625af3572f7252b9fb61d787ab153132a8984b12f4bb84b8ee408ec53|17069580", - "1.1.5|macos_x86_64|dcf7133ebf61d195e432ddcb70e604bf45056163d960e991881efbecdbd7892b|20300006", - "1.1.5|macos_arm64|6e5a8d22343722dc8bfcf1d2fd7b742f5b46287f87171e8143fc9b87db32c3d4|19581167", - "1.1.5|linux_x86_64|30942d5055c7151f051c8ea75481ff1dc95b2c4409dbb50196419c21168d6467|18748879", - "1.1.5|linux_arm64|2fb6324c24c14523ae63cedcbc94a8e6c1c317987eced0abfca2f6218d217ca5|17069683", - "1.1.4|macos_x86_64|4f3bc78fedd4aa17f67acc0db4eafdb6d70ba72392aaba65fe72855520f11f3d|20242050", - "1.1.4|macos_arm64|5642b46e9c7fb692f05eba998cd4065fb2e48aa8b0aac9d2a116472fbabe34a1|19498408", - "1.1.4|linux_x86_64|fca028d622f82788fdc35c1349e78d69ff07c7bb68c27d12f8b48c420e3ecdfb|18695508", - "1.1.4|linux_arm64|3c1982cf0d16276c82960db60c998d79ba19e413af4fa2c7f6f86e4994379437|16996040", - "1.1.3|macos_x86_64|016bab760c96d4e64d2140a5f25c614ccc13c3fe9b3889e70c564bd02099259f|20241648", - "1.1.3|macos_arm64|02ba769bb0a8d4bc50ff60989b0f201ce54fd2afac2fb3544a0791aca5d3f6d5|19493636", - "1.1.3|linux_x86_64|b215de2a18947fff41803716b1829a3c462c4f009b687c2cbdb52ceb51157c2f|18692580", - "1.1.3|linux_arm64|ad5a1f2c132bedc5105e3f9900e4fe46858d582c0f2a2d74355da718bbcef65d|16996972", - "1.1.2|macos_x86_64|78faa76db5dc0ecfe4bf7c6368dbf5cca019a806f9d203580a24a4e0f8cd8353|20240584", - "1.1.2|macos_arm64|cc3bd03b72db6247c9105edfeb9c8f674cf603e08259075143ffad66f5c25a07|19486800", - "1.1.2|linux_x86_64|734efa82e2d0d3df8f239ce17f7370dabd38e535d21e64d35c73e45f35dfa95c|18687805", - "1.1.2|linux_arm64|088e2226d1ddb7f68a4f65c704022a1cfdbf20fe40f02e0c3646942f211fd746|16994702", - "1.1.1|macos_x86_64|d125dd2e92b9245f2202199b52f234035f36bdcbcd9a06f08e647e14a9d9067a|20237718", - "1.1.1|macos_arm64|4cb6e5eb4f6036924caf934c509a1dfd61cd2c651bb3ee8fbfe2e2914dd9ed17|19488315", - "1.1.1|linux_x86_64|07b8dc444540918597a60db9351af861335c3941f28ea8774e168db97dd74557|18687006", - "1.1.1|linux_arm64|d6fd14da47af9ec5fa3ad5962eaef8eed6ff2f8a5041671f9c90ec5f4f8bb554|16995635", - "1.1.0|macos_x86_64|6e0ba9afb8795a544e70dc0459f0095fea7df15e38f5d88a7dd3f620d50f8bfe|20226329", - "1.1.0|macos_arm64|7955e173c7eadb87123fc0633c3ee67d5ba3b7d6c7f485fe803efed9f99dce54|19491369", - "1.1.0|linux_x86_64|763378aa75500ce5ba67d0cba8aa605670cd28bf8bafc709333a30908441acb5|18683106", - "1.1.0|linux_arm64|6697e9a263e264310373f3c91bf83f4cbfeb67b13994d2a8f7bcc492b554552e|16987201", - "1.0.11|macos_x86_64|551a16b612edaae1037925d0e2dba30d16504ff4bd66606955172c2ed8d76131|19422757", - "1.0.11|macos_arm64|737e1765afbadb3d76e1929d4b4af8da55010839aa08e9e730d46791eb8ea5a6|18467868", - "1.0.11|linux_x86_64|eeb46091a42dc303c3a3c300640c7774ab25cbee5083dafa5fd83b54c8aca664|18082446", - "1.0.11|linux_arm64|30c650f4bc218659d43e07d911c00f08e420664a3d12c812228e66f666758645|16148492", - "1.0.10|macos_x86_64|077479e98701bc9be88db21abeec684286fd85a3463ce437d7739d2a4e372f18|33140832", - "1.0.10|macos_arm64|776f2e144039ece66ae326ebda0884254848a2e11f0590757d02e3a74f058c81|32013985", - "1.0.10|linux_x86_64|a221682fcc9cbd7fde22f305ead99b3ad49d8303f152e118edda086a2807716d|32674953", - "1.0.10|linux_arm64|b091dbe5c00785ae8b5cb64149d697d61adea75e495d9e3d910f61d8c9967226|30505040", - "1.0.9|macos_x86_64|be122ff7fb925643c5ebf4e5704b18426e18d3ca49ab59ae33d208c908cb6d5a|33140006", - "1.0.9|macos_arm64|89b2b4fd1a0c57fabc08ad3180ad148b1f7c1c0492ed865408f75f12e11a083b|32010657", - "1.0.9|linux_x86_64|f06ac64c6a14ed6a923d255788e4a5daefa2b50e35f32d7a3b5a2f9a5a91e255|32674820", - "1.0.9|linux_arm64|457ac590301126e7b151ea08c5b9586a882c60039a0605fb1e44b8d23d2624fd|30510941", - "1.0.8|macos_x86_64|909781ee76250cf7445f3b7d2b82c701688725fa1db3fb5543dfeed8c47b59de|33140123", - "1.0.8|macos_arm64|92fa31b93d736fab6f3d105beb502a9da908445ed942a3d46952eae88907c53e|32011344", - "1.0.8|linux_x86_64|a73459d406067ce40a46f026dce610740d368c3b4a3d96591b10c7a577984c2e|32681118", - "1.0.8|linux_arm64|01aaef769f4791f9b28530e750aadbc983a8eabd0d55909e26392b333a1a26e4|30515501", - "1.0.7|macos_x86_64|23b85d914465882b027d3819cc05cd114a1aaf39b550de742e81a99daa998183|33140742", - "1.0.7|macos_arm64|d9062959f28ba0f934bfe2b6e0b021e0c01a48fa065102554ca103b8274e8e0c|32012708", - "1.0.7|linux_x86_64|bc79e47649e2529049a356f9e60e06b47462bf6743534a10a4c16594f443be7b|32671441", - "1.0.7|linux_arm64|4e71a9e759578020750be41e945c086e387affb58568db6d259d80d123ac80d3|30529105", - "1.0.6|macos_x86_64|5ac4f41d5e28f31817927f2c5766c5d9b98b68d7b342e25b22d053f9ecd5a9f1|33141677", - "1.0.6|macos_arm64|613020f90a6a5d0b98ebeb4e7cdc4b392aa06ce738fbb700159a465cd27dcbfa|32024047", - "1.0.6|linux_x86_64|6a454323d252d34e928785a3b7c52bfaff1192f82685dfee4da1279bb700b733|32677516", - "1.0.6|linux_arm64|2047f8afc7d0d7b645a0422181ba3fe47b3547c4fe658f95eebeb872752ec129|30514636" - ], + "comma_separated_display_args": "--[no-]dependees-transitive", + "config_key": "transitive", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--download-terraform-known-versions=\"['', '', ...]\"" + "display_args": ["--[no-]dependees-transitive"], + "env_var": "PANTS_DEPENDEES_TRANSITIVE", + "fromfile": false, + "help": "List all transitive dependents. If unspecified, list direct dependents only.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--dependees-transitive", + "--no-dependees-transitive" ], - "env_var": "PANTS_DOWNLOAD_TERRAFORM_KNOWN_VERSIONS", + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--transitive", "--no-transitive"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + "PANTS_DEPENDENCIES_CLOSED": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]dependencies-closed", + "config_key": "closed", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]dependencies-closed"], + "env_var": "PANTS_DEPENDENCIES_CLOSED", "fromfile": false, - "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", + "help": "Include the input targets in the output, along with the dependencies.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--download-terraform-known-versions"], + "scoped_cmd_line_args": [ + "--dependencies-closed", + "--no-dependencies-closed" + ], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--known-versions"], + "typ": "bool", + "unscoped_cmd_line_args": ["--closed", "--no-closed"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [ - "1.4.6|macos_x86_64|5d8332994b86411b049391d31ad1a0785dfb470db8b9c50617de28ddb5d1f25d|22051279", - "1.4.6|macos_arm64|30a2f87298ff9f299452119bd14afaa8d5b000c572f62fa64baf432e35d9dec1|20613318", - "1.4.6|linux_x86_64|e079db1a8945e39b1f8ba4e513946b3ab9f32bd5a2bdf19b9b186d22c5a3d53b|20779821", - "1.4.6|linux_arm64|b38f5db944ac4942f11ceea465a91e365b0636febd9998c110fbbe95d61c3b26|18834675", - "1.4.5|macos_x86_64|808e54d826737e9a0ca79bbe29330e50d3622bbeeb26066c63b371a291731711|22031074", - "1.4.5|macos_arm64|7104d9d13632aa61b494a349c589048d21bd550e579404c3a41c4932e4d6aa97|20592841", - "1.4.5|linux_x86_64|ce10e941cd11554b15a189cd00191c05abc20dff865599d361bdb863c5f406a9|20767621", - "1.4.5|linux_arm64|ca2c48f518f72fef668255150cc5e63b92545edc62a05939bbff8a350bceb357|18813058", - "1.4.4|macos_x86_64|0303ed9d7e5a225fc2e6fa9bf76fc6574c0c0359f22d5dfc04bc8b3234444f7c|22032187", - "1.4.4|macos_arm64|75602d9ec491982ceabea813569579b2991093a4e0d76b7ca86ffd9b7a2a1d1e|20594012", - "1.4.4|linux_x86_64|67541c1f6631befcc25b764028e5605e59234d4424e60a256518ee1e8dd50593|20767354", - "1.4.4|linux_arm64|f0b4e092f2aa6de3324e5e4b5b51260ecf5e8c2f5335ff7a2ffdc4fb54a8922d|18814310", - "1.4.3|macos_x86_64|89bdb242bfacf24167f365ef7a3bf0ad0e443ddd27ebde425fb71d77ce1a2597|22032267", - "1.4.3|macos_arm64|20b9d484bf99ada6c0de89316176ba33f7c87f64c0738991188465147bba221b|20574247", - "1.4.3|linux_x86_64|2252ee6ac8437b93db2b2ba341edc87951e2916afaeb50a88b858e80796e9111|20781685", - "1.4.3|linux_arm64|d3d9464953d390970e7f4f7cbcd94dbf63136da6fe1cbb4955d944a9315bdcdb|18814307", - "1.4.2|macos_x86_64|c218a6c0ef6692b25af16995c8c7bdf6739e9638fef9235c6aced3cd84afaf66|22030042", - "1.4.2|macos_arm64|af8ff7576c8fc41496fdf97e9199b00d8d81729a6a0e821eaf4dfd08aa763540|20588400", - "1.4.2|linux_x86_64|9f3ca33d04f5335472829d1df7785115b60176d610ae6f1583343b0a2221a931|20234129", - "1.4.2|linux_arm64|39c182670c4e63e918e0a16080b1cc47bb16e158d7da96333d682d6a9cb8eb91|18206088", - "1.4.1|macos_x86_64|96466364a7e66e3d456ecb6c85a63c83e124c004f8835fb8ea9b7bbb7542a9d0|22077050", - "1.4.1|macos_arm64|61f76e130b97c8a9017d8aaff15d252af29117e35ea1a0fc30bcaab7ceafce73|20634145", - "1.4.1|linux_x86_64|9e9f3e6752168dea8ecb3643ea9c18c65d5a52acc06c22453ebc4e3fc2d34421|20276168", - "1.4.1|linux_arm64|53322cc70b6e50ac1985bf26a78ffa2814789a4704880f071eaf3e67a463d6f6|18248378", - "1.4.0|macos_x86_64|e897a4217f1c3bfe37c694570dcc6371336fbda698790bb6b0547ec8daf1ffb3|21935694", - "1.4.0|macos_arm64|d4a1e564714c6acf848e86dc020ff182477b49f932e3f550a5d9c8f5da7636fb|20508091", - "1.4.0|linux_x86_64|5da60da508d6d1941ffa8b9216147456a16bbff6db7622ae9ad01d314cbdd188|20144407", - "1.4.0|linux_arm64|33e0f4f0b75f507fc19012111de008308df343153cd6a3992507f4566c0bb723|18130960", - "1.3.9|macos_x86_64|a73326ea8fb06f6976597e005f8047cbd55ac76ed1e517303d8f6395db6c7805|21194871", - "1.3.9|macos_arm64|d8a59a794a7f99b484a07a0ed2aa6520921d146ac5a7f4b1b806dcf5c4af0525|19793371", - "1.3.9|linux_x86_64|53048fa573effdd8f2a59b726234c6f450491fe0ded6931e9f4c6e3df6eece56|19477757", - "1.3.9|linux_arm64|da571087268c5faf884912c4239c6b9c8e1ed8e8401ab1dcb45712df70f42f1b|17513770", - "1.3.8|macos_x86_64|1a27a6fac31ecb05de610daf61a29fe83d304d7c519d773afbf56c11c3b6276b|21189878", - "1.3.8|macos_arm64|873b05ac81645cd7289d6ccfd3e73d4735af1a453f2cd19da0650bdabf7d2eb6|19780134", - "1.3.8|linux_x86_64|9d9e7d6a9b41cef8b837af688441d4fbbd84b503d24061d078ad662441c70240|19479266", - "1.3.8|linux_arm64|a42bf3c7d6327f45d2b212b692ab4229285fb44dbb8adb7c39e18be2b26167c8|17507360", - "1.3.7|macos_x86_64|eeae48adcd55212b34148ed203dd5843e9b2a84a852a9877f3386fadb0514980|21185288", - "1.3.7|macos_arm64|01d553db5f7b4cf0729b725e4402643efde5884b1dabf5eb80af328ce5e447cf|19774151", - "1.3.7|linux_x86_64|b8cf184dee15dfa89713fe56085313ab23db22e17284a9a27c0999c67ce3021e|19464102", - "1.3.7|linux_arm64|5b491c555ea8a62dda551675fd9f27d369f5cdbe87608d2a7367d3da2d38ea38|17499971", - "1.3.6|macos_x86_64|13881fe0100238577394243a90c0631783aad21b77a9a7ee830404f86c0d37bb|21183111", - "1.3.6|macos_arm64|dbff0aeeaeee877c254f5414bef5c9d186e159aa0019223aac678abad9442c53|19779986", - "1.3.6|linux_x86_64|bb44a4c2b0a832d49253b9034d8ccbd34f9feeb26eda71c665f6e7fa0861f49b|19466755", - "1.3.6|linux_arm64|f4b1af29094290f1b3935c29033c4e5291664ee2c015ca251a020dd425c847c3|17501845", - "1.3.5|macos_x86_64|e6c9836188265b20c2588e9c9d6b1727094b324a379337e68ba58a6d26be8b51|21182319", - "1.3.5|macos_arm64|fcec1cbff229fbe59b03257ba2451d5ad1f5129714f08ccf6372b2737647c063|19780547", - "1.3.5|linux_x86_64|ac28037216c3bc41de2c22724e863d883320a770056969b8d211ca8af3d477cf|19469337", - "1.3.5|linux_arm64|ba5b1761046b899197bbfce3ad9b448d14550106d2cc37c52a60fc6822b584ed|17502759", - "1.3.4|macos_x86_64|2a75c69ec5ed8506658b266a40075256b62a7d245ff6297df7e48fa72af23879|21181585", - "1.3.4|macos_arm64|a1f740f92afac6db84421a3ec07d9061c34a32f88b4b0b47d243de16c961169f|19773343", - "1.3.4|linux_x86_64|b24210f28191fa2a08efe69f54e3db2e87a63369ac4f5dcaf9f34dc9318eb1a8|19462529", - "1.3.4|linux_arm64|65381c6b61b2d1a98892199f649a5764ff5a772080a73d70f8663245e6402c39|17494667", - "1.3.3|macos_x86_64|2b3cf653cd106becdea562b6c8d3f8939641e5626c5278729cbef81678fa9f42|21163874", - "1.3.3|macos_arm64|51e94ecf88059e8a53c363a048b658230f560574f99b0d8396ebacead894d159|19755200", - "1.3.3|linux_x86_64|fa5cbf4274c67f2937cabf1a6544529d35d0b8b729ce814b40d0611fd26193c1|19451941", - "1.3.3|linux_arm64|b940a080c698564df5e6a2f1c4e1b51b2c70a5115358d2361e3697d3985ecbfe|17488660", - "1.3.2|macos_x86_64|3639461bbc712dc130913bbe632afb449fce8c0df692429d311e7cb808601901|21163990", - "1.3.2|macos_arm64|80480acbfee2e2d0b094f721f7568a40b790603080d6612e19b797a16b8ba82d|19757201", - "1.3.2|linux_x86_64|6372e02a7f04bef9dac4a7a12f4580a0ad96a37b5997e80738e070be330cb11c|19451510", - "1.3.2|linux_arm64|ce1a8770aaf27736a3352c5c31e95fb10d0944729b9d81013bf6848f8657da5f|17485206", - "1.3.1|macos_x86_64|4282ebe6d1d72ace0d93e8a4bcf9a6f3aceac107966216355bb516b1c49cc203|21161667", - "1.3.1|macos_arm64|f0514f29b08da2f39ba4fff0d7eb40093915c9c69ddc700b6f39b78275207d96|19756039", - "1.3.1|linux_x86_64|0847b14917536600ba743a759401c45196bf89937b51dd863152137f32791899|19450765", - "1.3.1|linux_arm64|7ebb3d1ff94017fbef8acd0193e0bd29dec1a8925e2b573c05a92fdb743d1d5b|17486534", - "1.3.0|macos_x86_64|80e55182d4495da867c93c25dc6ae29be83ece39d3225e6adedecd55b72d6bbf|21163947", - "1.3.0|macos_arm64|df703317b5c7f80dc7c61e46de4697c9f440e650a893623351ab5e184995b404|19741011", - "1.3.0|linux_x86_64|380ca822883176af928c80e5771d1c0ac9d69b13c6d746e6202482aedde7d457|19450952", - "1.3.0|linux_arm64|0a15de6f934cf2217e5055412e7600d342b4f7dcc133564690776fece6213a9a|17488551", - "1.2.9|macos_x86_64|84a678ece9929cebc34c7a9a1ba287c8b91820b336f4af8437af7feaa0117b7c|21672810", - "1.2.9|macos_arm64|bc3b94b53cdf1be3c4988faa61aad343f48e013928c64bfc6ebeb61657f97baa|20280541", - "1.2.9|linux_x86_64|0e0fc38641addac17103122e1953a9afad764a90e74daf4ff8ceeba4e362f2fb|19906116", - "1.2.9|linux_arm64|6da7bf01f5a72e61255c2d80eddeba51998e2bb1f50a6d81b0d3b71e70e18531|17946045", - "1.2.8|macos_x86_64|efd3e21a9bb1cfa68303f8d119ea8970dbb616f5f99caa0fe21d796e0cd70252|21678594", - "1.2.8|macos_arm64|2c83bfea9e1c202c449e91bee06a804afb45cb8ba64a73da48fb0f61df51b327|20277152", - "1.2.8|linux_x86_64|3e9c46d6f37338e90d5018c156d89961b0ffb0f355249679593aff99f9abe2a2|19907515", - "1.2.8|linux_arm64|26c05cadb05cdaa8ac64b90b982b4e9350715ec2e9995a6b03bb964d230de055|17947439", - "1.2.7|macos_x86_64|74e47b54ea78685be24c84e0e17b22b56220afcdb24ec853514b3863199f01e4|21673162", - "1.2.7|macos_arm64|ec4e623914b411f8cc93a1e71396a1e7f1fe1e96bb2e532ba3e955d2ca5cc442|20278743", - "1.2.7|linux_x86_64|dfd7c44a5b6832d62860a01095a15b53616fb3ea4441ab89542f9364e3fca718|19907183", - "1.2.7|linux_arm64|80d064008d57ba5dc97e189215c87275bf39ca14b1234430eae2f114394ea229|17943724", - "1.2.6|macos_x86_64|d896d2776af8b06cd4acd695ad75913040ce31234f5948688fd3c3fde53b1f75|21670957", - "1.2.6|macos_arm64|c88ceb34f343a2bb86960e32925c5ec43b41922ee9ede1019c5cf7d7b4097718|20279669", - "1.2.6|linux_x86_64|9fd445e7a191317dcfc99d012ab632f2cc01f12af14a44dfbaba82e0f9680365|19905977", - "1.2.6|linux_arm64|322755d11f0da11169cdb234af74ada5599046c698dccc125859505f85da2a20|17943213", - "1.2.5|macos_x86_64|2520fde736b43332b0c2648f4f6dde407335f322a3085114dc4f70e6e50eadc0|21659883", - "1.2.5|macos_arm64|92ad40db4a0930bdf872d6336a7b3a18b17c6fd04d9fc769b554bf51c8add505|20266441", - "1.2.5|linux_x86_64|281344ed7e2b49b3d6af300b1fe310beed8778c56f3563c4d60e5541c0978f1b|19897064", - "1.2.5|linux_arm64|0544420eb29b792444014988018ae77a7c8df6b23d84983728695ba73e38f54a|17938208", - "1.2.4|macos_x86_64|e7d2c66264a3da94854ae6ff692bbb9a1bc11c36bb5658e3ef19841388a07430|21658356", - "1.2.4|macos_arm64|c31754ff5553707ef9fd2f913b833c779ab05ce192eb14913f51816a077c6798|20263133", - "1.2.4|linux_x86_64|705ea62a44a0081594dad6b2b093eefefb12d54fa5a20a66562f9e082b00414c|19895510", - "1.2.4|linux_arm64|11cfa2233dc708b51b16d5b923379db67e35c22b1b988773e5b31a7c2e251471|17936883", - "1.2.3|macos_x86_64|bdc22658463237530dc120dadb0221762d9fb9116e7a6e0dc063d8ae649c431e|21658937", - "1.2.3|macos_arm64|6f06debac2ac54951464bf490e1606f973ab53ad8ba5decea76646e8f9309512|20256836", - "1.2.3|linux_x86_64|728b6fbcb288ad1b7b6590585410a98d3b7e05efe4601ef776c37e15e9a83a96|19891436", - "1.2.3|linux_arm64|a48991e938a25bfe5d257f4b6cbbdc73d920cc34bbc8f0e685e28b9610ad75fe|17933271", - "1.2.2|macos_x86_64|1d22663c1ab22ecea774ae63aee21eecfee0bbc23b953206d889a5ba3c08525a|21656824", - "1.2.2|macos_arm64|b87716b55a3b10cced60db5285bae57aee9cc0f81c555dccdc4f54f62c2a3b60|20254768", - "1.2.2|linux_x86_64|2934a0e8824925beb956b2edb5fef212a6141c089d29d8568150a43f95b3a626|19889133", - "1.2.2|linux_arm64|9c6202237d7477412054dcd36fdc269da9ee66ecbc45bb07d0d63b7d36af7b21|17932829", - "1.2.1|macos_x86_64|31c0fd4deb7c6a77c08d2fdf59c37950e6df7165088c004e1dd7f5e09fbf6307|21645582", - "1.2.1|macos_arm64|70159b3e3eb49ee71193815943d9217c59203fd4ee8c6960aeded744094a2250|20253448", - "1.2.1|linux_x86_64|8cf8eb7ed2d95a4213fbfd0459ab303f890e79220196d1c4aae9ecf22547302e|19881618", - "1.2.1|linux_arm64|972ea512dac822274791dedceb6e7f8b9ac2ed36bd7759269b6806d0ab049128|17922073", - "1.2.0|macos_x86_64|1b102ba3bf0c60ff6cbee74f721bf8105793c1107a1c6d03dcab98d7079f0c77|21645732", - "1.2.0|macos_arm64|f5e46cabe5889b60597f0e9c365cbc663e4c952c90a16c10489897c2075ae4f0|20253335", - "1.2.0|linux_x86_64|b87de03adbdfdff3c2552c8c8377552d0eecd787154465100cf4e29de4a7be1f|19880608", - "1.2.0|linux_arm64|ee80b8635d8fdbaed57beffe281cf87b8b1fd1ddb29c08d20e25a152d9f0f871|17920355", - "1.1.9|macos_x86_64|685258b525eae94fb0b406faf661aa056d31666256bf28e625365a251cb89fdc|20850638", - "1.1.9|macos_arm64|39fac4be74462be86b2290dd09fe1092f73dfb48e2df92406af0e199cfa6a16c|20093184", - "1.1.9|linux_x86_64|9d2d8a89f5cc8bc1c06cb6f34ce76ec4b99184b07eb776f8b39183b513d7798a|19262029", - "1.1.9|linux_arm64|e8a09d1fe5a68ed75e5fabe26c609ad12a7e459002dea6543f1084993b87a266|17521011", - "1.1.8|macos_x86_64|48f1f1e04d0aa8f5f1a661de95e3c2b8fd8ab16b3d44015372aff7693d36c2cf|20354970", - "1.1.8|macos_arm64|943e1948c4eae82cf8b490bb274939fe666252bbc146f098e7da65b23416264a|19631574", - "1.1.8|linux_x86_64|fbd37c1ec3d163f493075aa0fa85147e7e3f88dd98760ee7af7499783454f4c5|18796132", - "1.1.8|linux_arm64|10b2c063dcff91329ee44bce9d71872825566b713308b3da1e5768c6998fb84f|17107405", - "1.1.7|macos_x86_64|6e56eea328683541f6de0d5f449251a974d173e6d8161530956a20d9c239731a|20351873", - "1.1.7|macos_arm64|8919ceee34f6bfb16a6e9ff61c95f4043c35c6d70b21de27e5a153c19c7eba9c|19625836", - "1.1.7|linux_x86_64|e4add092a54ff6febd3325d1e0c109c9e590dc6c38f8bb7f9632e4e6bcca99d4|18795309", - "1.1.7|linux_arm64|2f72982008c52d2d57294ea50794d7c6ae45d2948e08598bfec3e492bce8d96e|17109768", - "1.1.6|macos_x86_64|7a499c1f08d89548ae4c0e829eea43845fa1bd7b464e7df46102b35e6081fe44|20303856", - "1.1.6|macos_arm64|f06a14fdb610ec5a7f18bdbb2f67187230eb418329756732d970b6ca3dae12c3|19577273", - "1.1.6|linux_x86_64|3e330ce4c8c0434cdd79fe04ed6f6e28e72db44c47ae50d01c342c8a2b05d331|18751464", - "1.1.6|linux_arm64|a53fb63625af3572f7252b9fb61d787ab153132a8984b12f4bb84b8ee408ec53|17069580", - "1.1.5|macos_x86_64|dcf7133ebf61d195e432ddcb70e604bf45056163d960e991881efbecdbd7892b|20300006", - "1.1.5|macos_arm64|6e5a8d22343722dc8bfcf1d2fd7b742f5b46287f87171e8143fc9b87db32c3d4|19581167", - "1.1.5|linux_x86_64|30942d5055c7151f051c8ea75481ff1dc95b2c4409dbb50196419c21168d6467|18748879", - "1.1.5|linux_arm64|2fb6324c24c14523ae63cedcbc94a8e6c1c317987eced0abfca2f6218d217ca5|17069683", - "1.1.4|macos_x86_64|4f3bc78fedd4aa17f67acc0db4eafdb6d70ba72392aaba65fe72855520f11f3d|20242050", - "1.1.4|macos_arm64|5642b46e9c7fb692f05eba998cd4065fb2e48aa8b0aac9d2a116472fbabe34a1|19498408", - "1.1.4|linux_x86_64|fca028d622f82788fdc35c1349e78d69ff07c7bb68c27d12f8b48c420e3ecdfb|18695508", - "1.1.4|linux_arm64|3c1982cf0d16276c82960db60c998d79ba19e413af4fa2c7f6f86e4994379437|16996040", - "1.1.3|macos_x86_64|016bab760c96d4e64d2140a5f25c614ccc13c3fe9b3889e70c564bd02099259f|20241648", - "1.1.3|macos_arm64|02ba769bb0a8d4bc50ff60989b0f201ce54fd2afac2fb3544a0791aca5d3f6d5|19493636", - "1.1.3|linux_x86_64|b215de2a18947fff41803716b1829a3c462c4f009b687c2cbdb52ceb51157c2f|18692580", - "1.1.3|linux_arm64|ad5a1f2c132bedc5105e3f9900e4fe46858d582c0f2a2d74355da718bbcef65d|16996972", - "1.1.2|macos_x86_64|78faa76db5dc0ecfe4bf7c6368dbf5cca019a806f9d203580a24a4e0f8cd8353|20240584", - "1.1.2|macos_arm64|cc3bd03b72db6247c9105edfeb9c8f674cf603e08259075143ffad66f5c25a07|19486800", - "1.1.2|linux_x86_64|734efa82e2d0d3df8f239ce17f7370dabd38e535d21e64d35c73e45f35dfa95c|18687805", - "1.1.2|linux_arm64|088e2226d1ddb7f68a4f65c704022a1cfdbf20fe40f02e0c3646942f211fd746|16994702", - "1.1.1|macos_x86_64|d125dd2e92b9245f2202199b52f234035f36bdcbcd9a06f08e647e14a9d9067a|20237718", - "1.1.1|macos_arm64|4cb6e5eb4f6036924caf934c509a1dfd61cd2c651bb3ee8fbfe2e2914dd9ed17|19488315", - "1.1.1|linux_x86_64|07b8dc444540918597a60db9351af861335c3941f28ea8774e168db97dd74557|18687006", - "1.1.1|linux_arm64|d6fd14da47af9ec5fa3ad5962eaef8eed6ff2f8a5041671f9c90ec5f4f8bb554|16995635", - "1.1.0|macos_x86_64|6e0ba9afb8795a544e70dc0459f0095fea7df15e38f5d88a7dd3f620d50f8bfe|20226329", - "1.1.0|macos_arm64|7955e173c7eadb87123fc0633c3ee67d5ba3b7d6c7f485fe803efed9f99dce54|19491369", - "1.1.0|linux_x86_64|763378aa75500ce5ba67d0cba8aa605670cd28bf8bafc709333a30908441acb5|18683106", - "1.1.0|linux_arm64|6697e9a263e264310373f3c91bf83f4cbfeb67b13994d2a8f7bcc492b554552e|16987201", - "1.0.11|macos_x86_64|551a16b612edaae1037925d0e2dba30d16504ff4bd66606955172c2ed8d76131|19422757", - "1.0.11|macos_arm64|737e1765afbadb3d76e1929d4b4af8da55010839aa08e9e730d46791eb8ea5a6|18467868", - "1.0.11|linux_x86_64|eeb46091a42dc303c3a3c300640c7774ab25cbee5083dafa5fd83b54c8aca664|18082446", - "1.0.11|linux_arm64|30c650f4bc218659d43e07d911c00f08e420664a3d12c812228e66f666758645|16148492", - "1.0.10|macos_x86_64|077479e98701bc9be88db21abeec684286fd85a3463ce437d7739d2a4e372f18|33140832", - "1.0.10|macos_arm64|776f2e144039ece66ae326ebda0884254848a2e11f0590757d02e3a74f058c81|32013985", - "1.0.10|linux_x86_64|a221682fcc9cbd7fde22f305ead99b3ad49d8303f152e118edda086a2807716d|32674953", - "1.0.10|linux_arm64|b091dbe5c00785ae8b5cb64149d697d61adea75e495d9e3d910f61d8c9967226|30505040", - "1.0.9|macos_x86_64|be122ff7fb925643c5ebf4e5704b18426e18d3ca49ab59ae33d208c908cb6d5a|33140006", - "1.0.9|macos_arm64|89b2b4fd1a0c57fabc08ad3180ad148b1f7c1c0492ed865408f75f12e11a083b|32010657", - "1.0.9|linux_x86_64|f06ac64c6a14ed6a923d255788e4a5daefa2b50e35f32d7a3b5a2f9a5a91e255|32674820", - "1.0.9|linux_arm64|457ac590301126e7b151ea08c5b9586a882c60039a0605fb1e44b8d23d2624fd|30510941", - "1.0.8|macos_x86_64|909781ee76250cf7445f3b7d2b82c701688725fa1db3fb5543dfeed8c47b59de|33140123", - "1.0.8|macos_arm64|92fa31b93d736fab6f3d105beb502a9da908445ed942a3d46952eae88907c53e|32011344", - "1.0.8|linux_x86_64|a73459d406067ce40a46f026dce610740d368c3b4a3d96591b10c7a577984c2e|32681118", - "1.0.8|linux_arm64|01aaef769f4791f9b28530e750aadbc983a8eabd0d55909e26392b333a1a26e4|30515501", - "1.0.7|macos_x86_64|23b85d914465882b027d3819cc05cd114a1aaf39b550de742e81a99daa998183|33140742", - "1.0.7|macos_arm64|d9062959f28ba0f934bfe2b6e0b021e0c01a48fa065102554ca103b8274e8e0c|32012708", - "1.0.7|linux_x86_64|bc79e47649e2529049a356f9e60e06b47462bf6743534a10a4c16594f443be7b|32671441", - "1.0.7|linux_arm64|4e71a9e759578020750be41e945c086e387affb58568db6d259d80d123ac80d3|30529105", - "1.0.6|macos_x86_64|5ac4f41d5e28f31817927f2c5766c5d9b98b68d7b342e25b22d053f9ecd5a9f1|33141677", - "1.0.6|macos_arm64|613020f90a6a5d0b98ebeb4e7cdc4b392aa06ce738fbb700159a465cd27dcbfa|32024047", - "1.0.6|linux_x86_64|6a454323d252d34e928785a3b7c52bfaff1192f82685dfee4da1279bb700b733|32677516", - "1.0.6|linux_arm64|2047f8afc7d0d7b645a0422181ba3fe47b3547c4fe658f95eebeb872752ec129|30514636" - ] + "value": false } ] } }, - "PANTS_DOWNLOAD_TERRAFORM_TAILOR": { + "PANTS_DEPENDENCIES_OUTPUT_FILE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]download-terraform-tailor", - "config_key": "tailor", - "default": true, + "comma_separated_display_args": "--dependencies-output-file=", + "config_key": "output_file", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]download-terraform-tailor"], - "env_var": "PANTS_DOWNLOAD_TERRAFORM_TAILOR", + "display_args": ["--dependencies-output-file="], + "env_var": "PANTS_DEPENDENCIES_OUTPUT_FILE", "fromfile": false, - "help": "If true, add `terraform_module` targets with the `tailor` goal.", + "help": "Output the goal's stdout to this file. If unspecified, outputs to stdout.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--download-terraform-tailor", - "--no-download-terraform-tailor" - ], + "scoped_cmd_line_args": ["--dependencies-output-file"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--tailor", "--no-tailor"], + "typ": "str", + "unscoped_cmd_line_args": ["--output-file"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": true } ] } }, - "PANTS_DOWNLOAD_TERRAFORM_URL_PLATFORM_MAPPING": { + "PANTS_DEPENDENCIES_SEP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--download-terraform-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "url_platform_mapping", - "default": { - "linux_arm64": "linux_arm64", - "linux_x86_64": "linux_amd64", - "macos_arm64": "darwin_arm64", - "macos_x86_64": "darwin_amd64" - }, + "comma_separated_display_args": "--dependencies-sep=", + "config_key": "sep", + "default": "\\n", "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--download-terraform-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_DOWNLOAD_TERRAFORM_URL_PLATFORM_MAPPING", + "display_args": ["--dependencies-sep="], + "env_var": "PANTS_DEPENDENCIES_SEP", "fromfile": false, - "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", + "help": "String to use to separate lines in line-oriented output.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--download-terraform-url-platform-mapping"], + "scoped_cmd_line_args": ["--dependencies-sep"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--url-platform-mapping"], + "typ": "str", + "unscoped_cmd_line_args": ["--sep"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": {} + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": { - "linux_arm64": "linux_arm64", - "linux_x86_64": "linux_amd64", - "macos_arm64": "darwin_arm64", - "macos_x86_64": "darwin_amd64" - } + "value": "\\n" } ] } }, - "PANTS_DOWNLOAD_TERRAFORM_URL_TEMPLATE": { + "PANTS_DEPENDENCIES_TRANSITIVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--download-terraform-url-template=", - "config_key": "url_template", - "default": "https://releases.hashicorp.com/terraform/{version}/terraform_{version}_{platform}.zip", + "comma_separated_display_args": "--[no-]dependencies-transitive", + "config_key": "transitive", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--download-terraform-url-template="], - "env_var": "PANTS_DOWNLOAD_TERRAFORM_URL_TEMPLATE", + "display_args": ["--[no-]dependencies-transitive"], + "env_var": "PANTS_DEPENDENCIES_TRANSITIVE", "fromfile": false, - "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", + "help": "List all transitive dependencies. If unspecified, list direct dependencies only.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--download-terraform-url-template"], + "scoped_cmd_line_args": [ + "--dependencies-transitive", + "--no-dependencies-transitive" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--url-template"], + "typ": "bool", + "unscoped_cmd_line_args": ["--transitive", "--no-transitive"], "value_history": { "ranked_values": [ { @@ -5020,31 +4787,29 @@ { "details": null, "rank": "HARDCODED", - "value": "https://releases.hashicorp.com/terraform/{version}/terraform_{version}_{platform}.zip" + "value": false } ] } }, - "PANTS_DOWNLOAD_TERRAFORM_USE_UNSUPPORTED_VERSION": { - "choices": ["error", "warning"], - "comma_separated_choices": "error, warning", - "comma_separated_display_args": "--download-terraform-use-unsupported-version=", - "config_key": "use_unsupported_version", - "default": "error", + "PANTS_DEPENDENTS_CLOSED": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]dependents-closed", + "config_key": "closed", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--download-terraform-use-unsupported-version=" - ], - "env_var": "PANTS_DOWNLOAD_TERRAFORM_USE_UNSUPPORTED_VERSION", + "display_args": ["--[no-]dependents-closed"], + "env_var": "PANTS_DEPENDENTS_CLOSED", "fromfile": false, - "help": "\nWhat action to take in case the requested version of terraform is not supported.\n\nSupported terraform versions: unspecified\n", + "help": "Include the input targets in the output, along with the dependents.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--download-terraform-use-unsupported-version"], + "scoped_cmd_line_args": ["--dependents-closed", "--no-dependents-closed"], "target_field_name": null, - "typ": "UnsupportedVersionUsage", - "unscoped_cmd_line_args": ["--use-unsupported-version"], + "typ": "bool", + "unscoped_cmd_line_args": ["--closed", "--no-closed"], "value_history": { "ranked_values": [ { @@ -5055,62 +4820,57 @@ { "details": null, "rank": "HARDCODED", - "value": "error" + "value": false } ] } }, - "PANTS_DOWNLOAD_TERRAFORM_VERSION": { + "PANTS_DEPENDENTS_OUTPUT_FILE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--download-terraform-version=", - "config_key": "version", - "default": "1.4.6", + "comma_separated_display_args": "--dependents-output-file=", + "config_key": "output_file", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--download-terraform-version="], - "env_var": "PANTS_DOWNLOAD_TERRAFORM_VERSION", + "display_args": ["--dependents-output-file="], + "env_var": "PANTS_DEPENDENTS_OUTPUT_FILE", "fromfile": false, - "help": "Use this version of terraform.", + "help": "Output the goal's stdout to this file. If unspecified, outputs to stdout.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--download-terraform-version"], + "scoped_cmd_line_args": ["--dependents-output-file"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--version"], + "unscoped_cmd_line_args": ["--output-file"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": "1.4.6" } ] } }, - "PANTS_DYNAMIC_UI": { + "PANTS_DEPENDENTS_SEP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]dynamic-ui", - "config_key": "dynamic_ui", - "default": true, + "comma_separated_display_args": "--dependents-sep=", + "config_key": "sep", + "default": "\\n", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]dynamic-ui"], - "env_var": "PANTS_DYNAMIC_UI", + "display_args": ["--dependents-sep="], + "env_var": "PANTS_DEPENDENTS_SEP", "fromfile": false, - "help": "Display a dynamically-updating console UI as Pants runs. This is true by default if Pants detects a TTY and there is no 'CI' environment variable indicating that Pants is running in a continuous integration environment.", + "help": "String to use to separate lines in line-oriented output.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--dynamic-ui", "--no-dynamic-ui"], + "scoped_cmd_line_args": ["--dependents-sep"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--dynamic-ui", "--no-dynamic-ui"], + "typ": "str", + "unscoped_cmd_line_args": ["--sep"], "value_history": { "ranked_values": [ { @@ -5121,29 +4881,32 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": "\\n" } ] } }, - "PANTS_DYNAMIC_UI_RENDERER": { - "choices": ["indicatif-spinner", "experimental-prodash"], - "comma_separated_choices": "indicatif-spinner, experimental-prodash", - "comma_separated_display_args": "--dynamic-ui-renderer=", - "config_key": "dynamic_ui_renderer", - "default": "indicatif-spinner", + "PANTS_DEPENDENTS_TRANSITIVE": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]dependents-transitive", + "config_key": "transitive", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--dynamic-ui-renderer="], - "env_var": "PANTS_DYNAMIC_UI_RENDERER", + "display_args": ["--[no-]dependents-transitive"], + "env_var": "PANTS_DEPENDENTS_TRANSITIVE", "fromfile": false, - "help": "If `--dynamic-ui` is enabled, selects the renderer.", + "help": "List all transitive dependents. If unspecified, list direct dependents only.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--dynamic-ui-renderer"], + "scoped_cmd_line_args": [ + "--dependents-transitive", + "--no-dependents-transitive" + ], "target_field_name": null, - "typ": "DynamicUIRenderer", - "unscoped_cmd_line_args": ["--dynamic-ui-renderer"], + "typ": "bool", + "unscoped_cmd_line_args": ["--transitive", "--no-transitive"], "value_history": { "ranked_values": [ { @@ -5154,94 +4917,64 @@ { "details": null, "rank": "HARDCODED", - "value": "indicatif-spinner" + "value": false } ] } }, - "PANTS_ENGINE_VISUALIZE_TO": { + "PANTS_DISTDIR": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--engine-visualize-to=", - "config_key": "engine_visualize_to", - "default": null, + "comma_separated_display_args": "--pants-distdir=", + "config_key": "pants_distdir", + "default": "/home/runner/work/pantsbuild.org/pantsbuild.org/dist", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--engine-visualize-to="], - "env_var": "PANTS_ENGINE_VISUALIZE_TO", + "display_args": ["--pants-distdir="], + "env_var": "PANTS_DISTDIR", "fromfile": false, - "help": "A directory to write execution and rule graphs to as `dot` files. The contents of the directory will be overwritten if any filenames collide.", + "help": "Write end products, such as the results of `pants package`, to this dir.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--engine-visualize-to"], + "scoped_cmd_line_args": ["--pants-distdir"], "target_field_name": null, - "typ": "dir_option", - "unscoped_cmd_line_args": ["--engine-visualize-to"], + "typ": "str", + "unscoped_cmd_line_args": ["--pants-distdir"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - } - ] - } - }, - "PANTS_ENVIRONMENTS_PREVIEW_NAMES": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--environments-preview-names=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "names", - "default": {}, - "deprecated_message": null, - "deprecation_active": false, - "display_args": [ - "--environments-preview-names=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_ENVIRONMENTS_PREVIEW_NAMES", - "fromfile": false, - "help": "A mapping of logical names to addresses to environment targets. For example:\n\n [environments-preview.names]\n linux_local = \"//:linux_env\"\n macos_local = \"//:macos_env\"\n centos6 = \"//:centos6_docker_env\"\n linux_ci = \"build-support:linux_ci_env\"\n macos_ci = \"build-support:macos_ci_env\"\n\nTo use an environment for a given target, specify the name in the `environment` field on that target. Pants will consume the environment target at the address mapped from that name.\n\nPants will ignore any environment targets that are not given a name via this option.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--environments-preview-names"], - "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--names"], - "value_history": { - "ranked_values": [ - { - "details": "", - "rank": "NONE", - "value": {} }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": {} + "value": "/home/runner/work/pantsbuild.org/pantsbuild.org/dist" } ] } }, - "PANTS_EXPERIMENTAL_BSP_GROUPS_CONFIG_FILES": { + "PANTS_DOCFORMATTER_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--experimental-bsp-groups-config-files=\"[, , ...]\"", - "config_key": "groups_config_files", + "comma_separated_display_args": "--docformatter-args=\"[, , ...]\"", + "config_key": "args", "default": [], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--experimental-bsp-groups-config-files=\"[, , ...]\"" + "--docformatter-args=\"[, , ...]\"" ], - "env_var": "PANTS_EXPERIMENTAL_BSP_GROUPS_CONFIG_FILES", + "env_var": "PANTS_DOCFORMATTER_ARGS", "fromfile": false, - "help": "A list of config files that define groups of Pants targets to expose to IDEs via Build Server Protocol.\n\nPants generally uses fine-grained targets to define the components of a build (in many cases on a file-by-file basis). Many IDEs, however, favor coarse-grained targets that contain large numbers of source files. To accommodate this distinction, the Pants BSP server will compute a set of BSP build targets to use from the groups specified in the config files set for this option. Each group will become one or more BSP build targets.\n\nEach config file is a TOML file with a `groups` dictionary with the following format for an entry:\n\n # The dictionary key is used to identify the group. It must be unique.\n [groups.ID1]:\n # One or more Pants address specs defining what targets to include in the group.\n addresses = [\n \"src/jvm::\",\n \"tests/jvm::\",\n ]\n # Filter targets to a specific resolve. Targets in a group must be from a single resolve.\n # Format of filter is `TYPE:RESOLVE_NAME`. The only supported TYPE is `jvm`. RESOLVE_NAME must be\n # a valid resolve name.\n resolve = \"jvm:jvm-default\"\n display_name = \"Display Name\" # (Optional) Name shown to the user in the IDE.\n base_directory = \"path/from/build/root\" # (Optional) Hint to the IDE for where the build target should \"live.\"\n\nPants will merge the contents of the config files together. If the same ID is used for a group definition, in multiple config files, the definition in the latter config file will take effect.", + "help": "Arguments to pass directly to docformatter, e.g. `--docformatter-args='--wrap-summaries=100 --pre-summary-newline'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--experimental-bsp-groups-config-files"], + "scoped_cmd_line_args": ["--docformatter-args"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--groups-config-files"], + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { @@ -5257,163 +4990,150 @@ ] } }, - "PANTS_EXPERIMENTAL_BSP_RUNNER_ENV_VARS": { + "PANTS_DOCFORMATTER_CONSOLE_SCRIPT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--experimental-bsp-runner-env-vars=\"['', '', ...]\"", - "config_key": "runner_env_vars", - "default": ["PATH"], + "comma_separated_display_args": "--docformatter-console-script=", + "config_key": "console_script", + "default": "docformatter", "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--experimental-bsp-runner-env-vars=\"['', '', ...]\"" - ], - "env_var": "PANTS_EXPERIMENTAL_BSP_RUNNER_ENV_VARS", + "display_args": ["--docformatter-console-script="], + "env_var": "PANTS_DOCFORMATTER_CONSOLE_SCRIPT", "fromfile": false, - "help": "Environment variables to set in the BSP runner script when setting up BSP in a repository. Entries are either strings in the form `ENV_VAR=value` to set an explicit value; or just `ENV_VAR` to copy the value from Pants' own environment when the experimental-bsp goal was run.\n\nThis option only takes effect when the BSP runner script is written. If the option changes, you must run `scie-pants-linux-x86_64 experimental-bsp` again to write a new copy of the BSP runner script.\n\nNote: The environment variables passed to the Pants BSP server will be those set for your IDE and not your shell. For example, on macOS, the IDE is generally launched by `launchd` after clicking on a Dock icon, and not from the shell. Thus, any environment variables set for your shell will likely not be seen by the Pants BSP server. At the very least, on macOS consider writing an explicit PATH into the BSP runner script via this option.", + "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--experimental-bsp-runner-env-vars"], + "scoped_cmd_line_args": ["--docformatter-console-script"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--runner-env-vars"], + "typ": "str", + "unscoped_cmd_line_args": ["--console-script"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": ["PATH"] + "value": "docformatter" } ] } }, - "PANTS_EXPERIMENTAL_BSP_SERVER": { + "PANTS_DOCFORMATTER_ENTRY_POINT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]experimental-bsp-server", - "config_key": "server", - "default": false, + "comma_separated_display_args": "--docformatter-entry-point=", + "config_key": "entry_point", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]experimental-bsp-server"], - "env_var": "PANTS_EXPERIMENTAL_BSP_SERVER", + "display_args": ["--docformatter-entry-point="], + "env_var": "PANTS_DOCFORMATTER_ENTRY_POINT", "fromfile": false, - "help": "Run the Build Server Protocol server. Pants will receive BSP RPC requests via the console. This should only ever be invoked via the IDE.", + "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--experimental-bsp-server", - "--no-experimental-bsp-server" - ], + "scoped_cmd_line_args": ["--docformatter-entry-point"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--server", "--no-server"], + "typ": "str", + "unscoped_cmd_line_args": ["--entry-point"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": false } ] } }, - "PANTS_EXPERIMENTAL_EXPLORER_ADDRESS": { + "PANTS_DOCFORMATTER_INSTALL_FROM_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--experimental-explorer-address=", - "config_key": "address", - "default": "localhost", + "comma_separated_display_args": "--docformatter-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--experimental-explorer-address="], - "env_var": "PANTS_EXPERIMENTAL_EXPLORER_ADDRESS", + "display_args": ["--docformatter-install-from-resolve="], + "env_var": "PANTS_DOCFORMATTER_INSTALL_FROM_RESOLVE", "fromfile": false, - "help": "Server address to bind to.", + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `docformatter` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--experimental-explorer-address"], + "scoped_cmd_line_args": ["--docformatter-install-from-resolve"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--address"], + "unscoped_cmd_line_args": ["--install-from-resolve"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": "localhost" } ] } }, - "PANTS_EXPERIMENTAL_EXPLORER_PORT": { + "PANTS_DOCFORMATTER_INTERPRETER_CONSTRAINTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--experimental-explorer-port=", - "config_key": "port", - "default": 8000, + "comma_separated_display_args": "--docformatter-interpreter-constraints=\"['', '', ...]\"", + "config_key": "interpreter_constraints", + "default": ["CPython>=3.7,<4"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--experimental-explorer-port="], - "env_var": "PANTS_EXPERIMENTAL_EXPLORER_PORT", + "display_args": [ + "--docformatter-interpreter-constraints=\"['', '', ...]\"" + ], + "env_var": "PANTS_DOCFORMATTER_INTERPRETER_CONSTRAINTS", "fromfile": false, - "help": "Server port to bind to.", + "help": "Python interpreter constraints for this tool.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--experimental-explorer-port"], + "scoped_cmd_line_args": ["--docformatter-interpreter-constraints"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--port"], + "typ": "list", + "unscoped_cmd_line_args": ["--interpreter-constraints"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": 8000 + "value": ["CPython>=3.7,<4"] } ] } }, - "PANTS_EXPORT_PY_EDITABLE_IN_RESOLVE": { + "PANTS_DOCFORMATTER_REQUIREMENTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--export-py-editable-in-resolve=\"['', '', ...]\"", - "config_key": "py_editable_in_resolve", + "comma_separated_display_args": "--docformatter-requirements=\"['', '', ...]\"", + "config_key": "requirements", "default": [], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--export-py-editable-in-resolve=\"['', '', ...]\"" + "--docformatter-requirements=\"['', '', ...]\"" ], - "env_var": "PANTS_EXPORT_PY_EDITABLE_IN_RESOLVE", + "env_var": "PANTS_DOCFORMATTER_REQUIREMENTS", "fromfile": false, - "help": "When exporting a mutable virtualenv for a resolve, do PEP-660 editable installs of all 'python_distribution' targets that own code in the exported resolve.\n\nIf a resolve name is not in this list, 'python_distribution' targets will not be installed in the virtualenv. This defaults to an empty list for backwards compatibility and to prevent unnecessary work to generate and install the PEP-660 editable wheels.\n\nThis only applies when '[python].enable_resolves' is true and when exporting a 'mutable_virtualenv' ('symlinked_immutable_virtualenv' exports are not \"full\" virtualenvs because they must not be edited, and do not include 'pip').\n\nNOTE: If you are using legacy exports (not using the '--resolve' option), then this option has no effect. Legacy exports will not include any editable installs.", + "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--export-py-editable-in-resolve"], + "scoped_cmd_line_args": ["--docformatter-requirements"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--py-editable-in-resolve"], + "unscoped_cmd_line_args": ["--requirements"], "value_history": { "ranked_values": [ { @@ -5429,26 +5149,24 @@ ] } }, - "PANTS_EXPORT_PY_RESOLVE_FORMAT": { - "choices": ["mutable_virtualenv", "symlinked_immutable_virtualenv"], - "comma_separated_choices": "mutable_virtualenv, symlinked_immutable_virtualenv", - "comma_separated_display_args": "--export-py-resolve-format=", - "config_key": "py_resolve_format", - "default": "mutable_virtualenv", + "PANTS_DOCFORMATTER_SKIP": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]docformatter-skip", + "config_key": "skip", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--export-py-resolve-format=" - ], - "env_var": "PANTS_EXPORT_PY_RESOLVE_FORMAT", + "display_args": ["--[no-]docformatter-skip"], + "env_var": "PANTS_DOCFORMATTER_SKIP", "fromfile": false, - "help": "Export Python resolves using this format. Options are:\n - `mutable_virtualenv`: Export a standalone mutable virtualenv that you can\n further modify.\n - `symlinked_immutable_virtualenv`: Export a symlink into a cached Python virtualenv.\n This virtualenv will have no pip binary, and will be immutable. Any attempt to\n modify it will corrupt the cache! It may, however, take significantly less time\n to export than a standalone, mutable virtualenv.", + "help": "If true, don't use docformatter when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--export-py-resolve-format"], + "scoped_cmd_line_args": ["--docformatter-skip", "--no-docformatter-skip"], "target_field_name": null, - "typ": "PythonResolveExportFormat", - "unscoped_cmd_line_args": ["--py-resolve-format"], + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -5459,231 +5177,200 @@ { "details": null, "rank": "HARDCODED", - "value": "mutable_virtualenv" + "value": false } ] } }, - "PANTS_EXPORT_RESOLVE": { + "PANTS_DOCKERFILE_PARSER_INSTALL_FROM_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--export-resolve=\"['', '', ...]\"", - "config_key": "resolve", - "default": [], + "comma_separated_display_args": "--dockerfile-parser-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--export-resolve=\"['', '', ...]\""], - "env_var": "PANTS_EXPORT_RESOLVE", + "display_args": ["--dockerfile-parser-install-from-resolve="], + "env_var": "PANTS_DOCKERFILE_PARSER_INSTALL_FROM_RESOLVE", "fromfile": false, - "help": "Export the specified resolve(s). The export format is backend-specific, e.g., Python resolves are exported as virtualenvs.", + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `dockerfile-parser` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--export-resolve"], - "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--resolve"], - "value_history": { - "ranked_values": [ - { - "details": "", - "rank": "NONE", - "value": [] - }, - { - "details": "", - "rank": "HARDCODED", - "value": [] - } - ] - } - }, - "PANTS_EXPORT_SYMLINK_PYTHON_VIRTUALENV": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]export-symlink-python-virtualenv", - "config_key": "symlink_python_virtualenv", - "default": false, - "deprecated_message": "Deprecated, is scheduled to be removed in version: 2.20.0.dev0.", - "deprecation_active": true, - "display_args": ["--[no-]export-symlink-python-virtualenv"], - "env_var": "PANTS_EXPORT_SYMLINK_PYTHON_VIRTUALENV", - "fromfile": false, - "help": "Export a symlink into a cached Python virtualenv. This virtualenv will have no pip binary, and will be immutable. Any attempt to modify it will corrupt the cache! It may, however, take significantly less time to export than a standalone, mutable virtualenv will.", - "removal_hint": "Set the `[export].py_resolve_format` option to 'symlinked_immutable_virtualenv'", - "removal_version": "2.20.0.dev0", - "scoped_cmd_line_args": [ - "--export-symlink-python-virtualenv", - "--no-export-symlink-python-virtualenv" - ], + "scoped_cmd_line_args": ["--dockerfile-parser-install-from-resolve"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--symlink-python-virtualenv", - "--no-symlink-python-virtualenv" - ], + "typ": "str", + "unscoped_cmd_line_args": ["--install-from-resolve"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": false } ] } }, - "PANTS_FILEDEPS_ABSOLUTE": { + "PANTS_DOCKERFILE_PARSER_INTERPRETER_CONSTRAINTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]filedeps-absolute", - "config_key": "absolute", - "default": false, + "comma_separated_display_args": "--dockerfile-parser-interpreter-constraints=\"['', '', ...]\"", + "config_key": "interpreter_constraints", + "default": ["CPython>=3.7,<4"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]filedeps-absolute"], - "env_var": "PANTS_FILEDEPS_ABSOLUTE", + "display_args": [ + "--dockerfile-parser-interpreter-constraints=\"['', '', ...]\"" + ], + "env_var": "PANTS_DOCKERFILE_PARSER_INTERPRETER_CONSTRAINTS", "fromfile": false, - "help": "If True, output with absolute path. If unspecified, output with path relative to the build root.", + "help": "Python interpreter constraints for this tool.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--filedeps-absolute", "--no-filedeps-absolute"], + "scoped_cmd_line_args": ["--dockerfile-parser-interpreter-constraints"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--absolute", "--no-absolute"], + "typ": "list", + "unscoped_cmd_line_args": ["--interpreter-constraints"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": ["CPython>=3.7,<4"] } ] } }, - "PANTS_FILEDEPS_GLOBS": { + "PANTS_DOCKERFILE_PARSER_REQUIREMENTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]filedeps-globs", - "config_key": "globs", - "default": false, + "comma_separated_display_args": "--dockerfile-parser-requirements=\"['', '', ...]\"", + "config_key": "requirements", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]filedeps-globs"], - "env_var": "PANTS_FILEDEPS_GLOBS", + "display_args": [ + "--dockerfile-parser-requirements=\"['', '', ...]\"" + ], + "env_var": "PANTS_DOCKERFILE_PARSER_REQUIREMENTS", "fromfile": false, - "help": "Instead of outputting filenames, output the original globs used in the BUILD file. This will not include exclude globs (i.e. globs that start with `!`).", + "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--filedeps-globs", "--no-filedeps-globs"], + "scoped_cmd_line_args": ["--dockerfile-parser-requirements"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--globs", "--no-globs"], + "typ": "list", + "unscoped_cmd_line_args": ["--requirements"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": [] } ] } }, - "PANTS_FILEDEPS_OUTPUT_FILE": { + "PANTS_DOCKER_BUILD_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--filedeps-output-file=", - "config_key": "output_file", - "default": null, + "comma_separated_display_args": "--docker-build-args=\"[, , ...]\"", + "config_key": "build_args", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--filedeps-output-file="], - "env_var": "PANTS_FILEDEPS_OUTPUT_FILE", + "display_args": [ + "--docker-build-args=\"[, , ...]\"" + ], + "env_var": "PANTS_DOCKER_BUILD_ARGS", "fromfile": false, - "help": "Output the goal's stdout to this file. If unspecified, outputs to stdout.", + "help": "Global build arguments (for Docker `--build-arg` options) to use for all `docker build` invocations.\n\nEntries are either strings in the form `ARG_NAME=value` to set an explicit value; or just `ARG_NAME` to copy the value from Pants's own environment.\n\nExample:\n\n [docker]\n build_args = [\"VAR1=value\", \"VAR2\"]\n\nUse the `extra_build_args` field on a `docker_image` target for additional image specific build arguments.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--filedeps-output-file"], + "scoped_cmd_line_args": ["--docker-build-args"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--output-file"], + "typ": "list", + "unscoped_cmd_line_args": ["--build-args"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] } ] } }, - "PANTS_FILEDEPS_SEP": { + "PANTS_DOCKER_BUILD_HOSTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--filedeps-sep=", - "config_key": "sep", - "default": "\\n", + "comma_separated_display_args": "--docker-build-hosts=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "build_hosts", + "default": {}, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--filedeps-sep="], - "env_var": "PANTS_FILEDEPS_SEP", + "display_args": [ + "--docker-build-hosts=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_DOCKER_BUILD_HOSTS", "fromfile": false, - "help": "String to use to separate lines in line-oriented output.", + "help": "Hosts entries to be added to the `/etc/hosts` file in all built images.\n\nExample:\n\n [docker]\n build_hosts = {\"docker\": \"10.180.0.1\", \"docker2\": \"10.180.0.2\"}\n\nUse the `extra_build_hosts` field on a `docker_image` target for additional image specific host entries.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--filedeps-sep"], + "scoped_cmd_line_args": ["--docker-build-hosts"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--sep"], + "typ": "dict", + "unscoped_cmd_line_args": ["--build-hosts"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": {} }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "\\n" + "value": {} } ] } }, - "PANTS_FILEDEPS_TRANSITIVE": { + "PANTS_DOCKER_BUILD_NO_CACHE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]filedeps-transitive", - "config_key": "transitive", + "comma_separated_display_args": "--[no-]docker-build-no-cache", + "config_key": "build_no_cache", "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]filedeps-transitive"], - "env_var": "PANTS_FILEDEPS_TRANSITIVE", + "display_args": ["--[no-]docker-build-no-cache"], + "env_var": "PANTS_DOCKER_BUILD_NO_CACHE", "fromfile": false, - "help": "If True, list files from all dependencies, including transitive dependencies. If unspecified, only list files from the target.", + "help": "Do not use the Docker cache when building images.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--filedeps-transitive", - "--no-filedeps-transitive" + "--docker-build-no-cache", + "--no-docker-build-no-cache" ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--transitive", "--no-transitive"], + "unscoped_cmd_line_args": ["--build-no-cache", "--no-build-no-cache"], "value_history": { "ranked_values": [ { @@ -5699,59 +5386,55 @@ ] } }, - "PANTS_FILTER_ADDRESS_REGEX": { + "PANTS_DOCKER_BUILD_TARGET_STAGE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--filter-address-regex=\"[[+-]regex1,regex2,..., [+-]regex1,regex2,..., ...]\"", - "config_key": "address_regex", - "default": [], + "comma_separated_display_args": "--docker-build-target-stage=", + "config_key": "build_target_stage", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--filter-address-regex=\"[[+-]regex1,regex2,..., [+-]regex1,regex2,..., ...]\"" - ], - "env_var": "PANTS_FILTER_ADDRESS_REGEX", + "display_args": ["--docker-build-target-stage="], + "env_var": "PANTS_DOCKER_BUILD_TARGET_STAGE", "fromfile": false, - "help": "Filter on target addresses matching these regexes.", + "help": "Global default value for `target_stage` on `docker_image` targets, overriding the field value on the targets, if there is a matching stage in the `Dockerfile`.\n\nThis is useful to provide from the command line, to specify the target stage to build for at execution time.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--filter-address-regex"], + "scoped_cmd_line_args": ["--docker-build-target-stage"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--address-regex"], + "typ": "str", + "unscoped_cmd_line_args": ["--build-target-stage"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] - }, - { - "details": "", - "rank": "HARDCODED", - "value": [] + "value": null } ] } }, - "PANTS_FILTER_GRANULARITY": { - "choices": ["all", "file", "BUILD"], - "comma_separated_choices": "all, file, BUILD", - "comma_separated_display_args": "--filter-granularity=", - "config_key": "granularity", - "default": "all", + "PANTS_DOCKER_BUILD_VERBOSE": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]docker-build-verbose", + "config_key": "build_verbose", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--filter-granularity="], - "env_var": "PANTS_FILTER_GRANULARITY", + "display_args": ["--[no-]docker-build-verbose"], + "env_var": "PANTS_DOCKER_BUILD_VERBOSE", "fromfile": false, - "help": "Filter to rendering only targets declared in BUILD files, only file-level targets, or all targets.", + "help": "Whether to log the Docker output to the console. If false, only the image ID is logged.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--filter-granularity"], + "scoped_cmd_line_args": [ + "--docker-build-verbose", + "--no-docker-build-verbose" + ], "target_field_name": null, - "typ": "TargetGranularity", - "unscoped_cmd_line_args": ["--granularity"], + "typ": "bool", + "unscoped_cmd_line_args": ["--build-verbose", "--no-build-verbose"], "value_history": { "ranked_values": [ { @@ -5762,57 +5445,62 @@ { "details": null, "rank": "HARDCODED", - "value": "all" + "value": false } ] } }, - "PANTS_FILTER_OUTPUT_FILE": { + "PANTS_DOCKER_DEFAULT_CONTEXT_ROOT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--filter-output-file=", - "config_key": "output_file", - "default": null, + "comma_separated_display_args": "--docker-default-context-root=", + "config_key": "default_context_root", + "default": "", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--filter-output-file="], - "env_var": "PANTS_FILTER_OUTPUT_FILE", + "display_args": ["--docker-default-context-root="], + "env_var": "PANTS_DOCKER_DEFAULT_CONTEXT_ROOT", "fromfile": false, - "help": "Output the goal's stdout to this file. If unspecified, outputs to stdout.", + "help": "Provide a default Docker build context root path for `docker_image` targets that does not specify their own `context_root` field.\n\nThe context root is relative to the build root by default, but may be prefixed with `./` to be relative to the directory of the BUILD file of the `docker_image`.\n\nExamples:\n\n --default-context-root=src/docker\n --default-context-root=./relative_to_the_build_file", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--filter-output-file"], + "scoped_cmd_line_args": ["--docker-default-context-root"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--output-file"], + "typ": "workspace_path", + "unscoped_cmd_line_args": ["--default-context-root"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "" } ] } }, - "PANTS_FILTER_SEP": { + "PANTS_DOCKER_DEFAULT_REPOSITORY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--filter-sep=", - "config_key": "sep", - "default": "\\n", + "comma_separated_display_args": "--docker-default-repository=", + "config_key": "default_repository", + "default": "{name}", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--filter-sep="], - "env_var": "PANTS_FILTER_SEP", + "display_args": ["--docker-default-repository="], + "env_var": "PANTS_DOCKER_DEFAULT_REPOSITORY", "fromfile": false, - "help": "String to use to separate lines in line-oriented output.", + "help": "Configure the default repository name used in the Docker image tag.\n\nThe value is formatted and may reference these variables (in addition to the normal placeheolders derived from the Dockerfile and build args etc):\n\n * name\n * directory\n * parent_directory\n * target_repository\n\nExample: `--default-repository=\"{directory}/{name}\"`.\n\nThe `name` variable is the `docker_image`'s target name, `directory` and `parent_directory` are the name of the directory in which the BUILD file is for the target, and its parent directory respectively.\n\nUse the `repository` field to set this value directly on a `docker_image` target.\n\nRegistries may override the repository value for a specific registry.\n\nAny registries or tags are added to the image name as required, and should not be part of the repository name.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--filter-sep"], + "scoped_cmd_line_args": ["--docker-default-repository"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--sep"], + "unscoped_cmd_line_args": ["--default-repository"], "value_history": { "ranked_values": [ { @@ -5823,31 +5511,29 @@ { "details": null, "rank": "HARDCODED", - "value": "\\n" + "value": "{name}" } ] } }, - "PANTS_FILTER_TAG_REGEX": { + "PANTS_DOCKER_ENV_VARS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--filter-tag-regex=\"[[+-]regex1,regex2,..., [+-]regex1,regex2,..., ...]\"", - "config_key": "tag_regex", + "comma_separated_display_args": "--docker-env-vars=\"[, , ...]\"", + "config_key": "env_vars", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--filter-tag-regex=\"[[+-]regex1,regex2,..., [+-]regex1,regex2,..., ...]\"" - ], - "env_var": "PANTS_FILTER_TAG_REGEX", + "display_args": ["--docker-env-vars=\"[, , ...]\""], + "env_var": "PANTS_DOCKER_ENV_VARS", "fromfile": false, - "help": "Filter on targets with tags matching these regexes.", + "help": "Environment variables to set for `docker` invocations.\n\nEntries are either strings in the form `ENV_VAR=value` to set an explicit value; or just `ENV_VAR` to copy the value from Pants's own environment.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--filter-tag-regex"], - "target_field_name": null, + "scoped_cmd_line_args": ["--docker-env-vars"], + "target_field_name": "docker_env_vars", "typ": "list", - "unscoped_cmd_line_args": ["--tag-regex"], + "unscoped_cmd_line_args": ["--env-vars"], "value_history": { "ranked_values": [ { @@ -5863,26 +5549,26 @@ ] } }, - "PANTS_FILTER_TARGET_TYPE": { + "PANTS_DOCKER_EXECUTABLE_SEARCH_PATHS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--filter-target-type=\"[[+-]type1,type2,..., [+-]type1,type2,..., ...]\"", - "config_key": "target_type", - "default": [], + "comma_separated_display_args": "--docker-executable-search-paths=\"[, , ...]\"", + "config_key": "executable_search_paths", + "default": [""], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--filter-target-type=\"[[+-]type1,type2,..., [+-]type1,type2,..., ...]\"" + "--docker-executable-search-paths=\"[, , ...]\"" ], - "env_var": "PANTS_FILTER_TARGET_TYPE", + "env_var": "PANTS_DOCKER_EXECUTABLE_SEARCH_PATHS", "fromfile": false, - "help": "Filter on these target types, e.g. `resources` or `python_sources`.", + "help": "The PATH value that will be used to find the Docker client and any tools required. The special string `\"\"` will expand to the contents of the PATH env var.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--filter-target-type"], - "target_field_name": null, + "scoped_cmd_line_args": ["--docker-executable-search-paths"], + "target_field_name": "docker_executable_search_paths", "typ": "list", - "unscoped_cmd_line_args": ["--target-type"], + "unscoped_cmd_line_args": ["--executable-search-paths"], "value_history": { "ranked_values": [ { @@ -5893,29 +5579,29 @@ { "details": "", "rank": "HARDCODED", - "value": [] + "value": [""] } ] } }, - "PANTS_FIX_BATCH_SIZE": { + "PANTS_DOCKER_EXECUTION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--fix-batch-size=", - "config_key": "batch_size", - "default": 128, + "comma_separated_display_args": "--[no-]docker-execution", + "config_key": "docker_execution", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--fix-batch-size="], - "env_var": "PANTS_FIX_BATCH_SIZE", + "display_args": ["--[no-]docker-execution"], + "env_var": "PANTS_DOCKER_EXECUTION", "fromfile": false, - "help": "The target number of files to be included in each fixer batch.\n\nFixer processes are batched for a few reasons:\n\n 1. to avoid OS argument length limits (in processes which don't support argument files)\n 2. to support more stable cache keys than would be possible if all files were operated on in a single batch.\n 3. to allow for parallelism in fixer processes which don't have internal parallelism, or -- if they do support internal parallelism -- to improve scheduling behavior when multiple processes are competing for cores and so internal parallelism cannot be used perfectly.\n\nIn order to improve cache hit rates (see 2.), batches are created at stable boundaries, and so this value is only a \"target\" batch size (rather than an exact value).", + "help": "If true, `docker_environment` targets can be used to run builds inside a Docker container.\n\nIf false, anytime a `docker_environment` target is used, Pants will instead fallback to whatever the target's `fallback_environment` field is set to.\n\nThis can be useful, for example, if you want to always use Docker locally, but disable it in CI, or vice versa.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--fix-batch-size"], + "scoped_cmd_line_args": ["--docker-execution", "--no-docker-execution"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--batch-size"], + "typ": "bool", + "unscoped_cmd_line_args": ["--docker-execution", "--no-docker-execution"], "value_history": { "ranked_values": [ { @@ -5926,29 +5612,64 @@ { "details": null, "rank": "HARDCODED", - "value": 128 + "value": true } ] } }, - "PANTS_FIX_ONLY": { + "PANTS_DOCKER_REGISTRIES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--fix-only=\"['', '', ...]\"", - "config_key": "only", + "comma_separated_display_args": "--docker-registries=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "registries", + "default": {}, + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--docker-registries=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_DOCKER_REGISTRIES", + "fromfile": true, + "help": "Configure Docker registries. The schema for a registry entry is as follows:\n\n {\n \"registry-alias\": {\n \"address\": \"registry-domain:port\",\n \"default\": bool,\n \"extra_image_tags\": [],\n \"skip_push\": bool,\n \"repository\": str,\n \"use_local_alias\": bool,\n },\n ...\n }\n\nIf no registries are provided in a `docker_image` target, then all default addresses will be used, if any.\n\nThe `docker_image.registries` may be provided with a list of registry addresses and registry aliases prefixed with `@` to be used instead of the defaults.\n\nA configured registry is marked as default either by setting `default = true` or with an alias of `\"default\"`.\n\nA `docker_image` may be pushed to a subset of registries using the per registry `skip_push` option rather then the all or nothing toggle of the field option `skip_push` on the `docker_image` target.\n\nAny image tags that should only be added for specific registries may be provided as the `extra_image_tags` option. The tags may use value formatting the same as for the `image_tags` field of the `docker_image` target.\n\nWhen a registry provides a `repository` value, it will be used instead of the `docker_image.repository` or the default repository. Using the placeholders `{target_repository}` or `{default_repository}` those overridden values may be incorporated into the registry specific repository value.\n\nIf `use_local_alias` is true, a built image is additionally tagged locally using the registry alias as the value for repository (i.e. the additional image tag is not pushed) and will be used for any `pants run` requests.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--docker-registries"], + "target_field_name": null, + "typ": "dict", + "unscoped_cmd_line_args": ["--registries"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": {} + }, + { + "details": "", + "rank": "HARDCODED", + "value": {} + } + ] + } + }, + "PANTS_DOCKER_RUN_ARGS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--docker-run-args=\"[, , ...]\"", + "config_key": "run_args", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--fix-only=\"['', '', ...]\""], - "env_var": "PANTS_FIX_ONLY", + "display_args": ["--docker-run-args=\"[, , ...]\""], + "env_var": "PANTS_DOCKER_RUN_ARGS", "fromfile": false, - "help": "Only run these fixers and skip all others.\n\nThe fixer names are outputted at the final summary of running this goal, e.g. `autoflake` and `pyupgrade`. You can also run `fix --only=fake` to get a list of all activated fixers.\n\nYou can repeat this option, e.g. `fix --only=autoflake --only=pyupgrade` or `fix --only=['autoflake', 'pyupgrade']`.", + "help": "Additional arguments to use for `docker run` invocations.\n\nExample:\n\n $ pants run --docker-run-args=\"-p 127.0.0.1:80:8080/tcp --name demo\" src/example:image -- [image entrypoint args]\n\nTo provide the top-level options to the `docker` client, use `[docker].env_vars` to configure the [Environment variables](https://docs.docker.com/engine/reference/commandline/cli/#environment-variables) as appropriate.\n\nThe arguments for the image entrypoint may be passed on the command line after a double dash (`--`), or using the `--run-args` option.\n\nDefaults to `--interactive --tty` when stdout is connected to a terminal.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--fix-only"], + "scoped_cmd_line_args": ["--docker-run-args"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--only"], + "unscoped_cmd_line_args": ["--run-args"], "value_history": { "ranked_values": [ { @@ -5964,27 +5685,24 @@ ] } }, - "PANTS_FIX_SKIP_FORMATTERS": { + "PANTS_DOCKER_TAILOR": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]fix-skip-formatters", - "config_key": "skip_formatters", - "default": false, + "comma_separated_display_args": "--[no-]docker-tailor", + "config_key": "tailor", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]fix-skip-formatters"], - "env_var": "PANTS_FIX_SKIP_FORMATTERS", + "display_args": ["--[no-]docker-tailor"], + "env_var": "PANTS_DOCKER_TAILOR", "fromfile": false, - "help": "If true, skip running all formatters.\n\nFYI: when running `scie-pants-linux-x86_64 fix fmt ::`, there should be diminishing performance benefit to using this flag. Pants attempts to reuse the results from `fmt` when running `fix` where possible.", + "help": "If true, add `docker_image` targets with the `tailor` goal.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--fix-skip-formatters", - "--no-fix-skip-formatters" - ], + "scoped_cmd_line_args": ["--docker-tailor", "--no-docker-tailor"], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--skip-formatters", "--no-skip-formatters"], + "unscoped_cmd_line_args": ["--tailor", "--no-tailor"], "value_history": { "ranked_values": [ { @@ -5995,29 +5713,29 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": true } ] } }, - "PANTS_FLAKE8_ARGS": { + "PANTS_DOCKER_TOOLS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--flake8-args=\"[, , ...]\"", - "config_key": "args", + "comma_separated_display_args": "--docker-tools=\"['', '', ...]\"", + "config_key": "tools", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--flake8-args=\"[, , ...]\""], - "env_var": "PANTS_FLAKE8_ARGS", + "display_args": ["--docker-tools=\"['', '', ...]\""], + "env_var": "PANTS_DOCKER_TOOLS", "fromfile": false, - "help": "Arguments to pass directly to Flake8, e.g. `--flake8-args='--ignore E123,W456 --enable-extensions H111'`.", + "help": "List any additional executable tools required for Docker to work. The paths to these tools will be included in the PATH used in the execution sandbox, so that they may be used by the Docker client.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--flake8-args"], + "scoped_cmd_line_args": ["--docker-tools"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "unscoped_cmd_line_args": ["--tools"], "value_history": { "ranked_values": [ { @@ -6033,245 +5751,592 @@ ] } }, - "PANTS_FLAKE8_CONFIG": { + "PANTS_DOWNLOAD_TERRAFORM_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--flake8-config=", - "config_key": "config", - "default": null, + "comma_separated_display_args": "--download-terraform-args=\"[, , ...]\", ... -- [ [ [...]]]", + "config_key": "args", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--flake8-config="], - "env_var": "PANTS_FLAKE8_CONFIG", + "display_args": [ + "--download-terraform-args=\"[, , ...]\"", + "... -- [ [ [...]]]" + ], + "env_var": "PANTS_DOWNLOAD_TERRAFORM_ARGS", "fromfile": false, - "help": "Path to an INI config file understood by Flake8 (https://flake8.pycqa.org/en/latest/user/configuration.html).\n\nSetting this option will disable `[flake8].config_discovery`. Use this option if the config is located in a non-standard location.", + "help": "Arguments to pass directly to terraform, e.g. `--download-terraform-args='-auto-approve'`.\n\nAdditional arguments to pass to the Terraform command line.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--flake8-config"], + "scoped_cmd_line_args": ["--download-terraform-args"], "target_field_name": null, - "typ": "file_option", - "unscoped_cmd_line_args": ["--config"], + "typ": "list", + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] } ] } }, - "PANTS_FLAKE8_CONFIG_DISCOVERY": { + "PANTS_DOWNLOAD_TERRAFORM_EXTRA_ENV_VARS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]flake8-config-discovery", - "config_key": "config_discovery", - "default": true, + "comma_separated_display_args": "--download-terraform-extra-env-vars=\"['', '', ...]\"", + "config_key": "extra_env_vars", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]flake8-config-discovery"], - "env_var": "PANTS_FLAKE8_CONFIG_DISCOVERY", + "display_args": [ + "--download-terraform-extra-env-vars=\"['', '', ...]\"" + ], + "env_var": "PANTS_DOWNLOAD_TERRAFORM_EXTRA_ENV_VARS", "fromfile": false, - "help": "If true, Pants will include any relevant config files during runs (`.flake8`, `flake8`, `setup.cfg`, and `tox.ini`).\n\nUse `[flake8].config` instead if your config is in a non-standard location.", + "help": "Additional environment variables that would be made available to all Terraform processes.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--flake8-config-discovery", - "--no-flake8-config-discovery" - ], + "scoped_cmd_line_args": ["--download-terraform-extra-env-vars"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], + "typ": "list", + "unscoped_cmd_line_args": ["--extra-env-vars"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": true + "value": [] } ] } }, - "PANTS_FLAKE8_CONSOLE_SCRIPT": { + "PANTS_DOWNLOAD_TERRAFORM_KNOWN_VERSIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--flake8-console-script=", - "config_key": "console_script", - "default": "flake8", + "comma_separated_display_args": "--download-terraform-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", + "default": [ + "1.4.6|macos_x86_64|5d8332994b86411b049391d31ad1a0785dfb470db8b9c50617de28ddb5d1f25d|22051279", + "1.4.6|macos_arm64|30a2f87298ff9f299452119bd14afaa8d5b000c572f62fa64baf432e35d9dec1|20613318", + "1.4.6|linux_x86_64|e079db1a8945e39b1f8ba4e513946b3ab9f32bd5a2bdf19b9b186d22c5a3d53b|20779821", + "1.4.6|linux_arm64|b38f5db944ac4942f11ceea465a91e365b0636febd9998c110fbbe95d61c3b26|18834675", + "1.4.5|macos_x86_64|808e54d826737e9a0ca79bbe29330e50d3622bbeeb26066c63b371a291731711|22031074", + "1.4.5|macos_arm64|7104d9d13632aa61b494a349c589048d21bd550e579404c3a41c4932e4d6aa97|20592841", + "1.4.5|linux_x86_64|ce10e941cd11554b15a189cd00191c05abc20dff865599d361bdb863c5f406a9|20767621", + "1.4.5|linux_arm64|ca2c48f518f72fef668255150cc5e63b92545edc62a05939bbff8a350bceb357|18813058", + "1.4.4|macos_x86_64|0303ed9d7e5a225fc2e6fa9bf76fc6574c0c0359f22d5dfc04bc8b3234444f7c|22032187", + "1.4.4|macos_arm64|75602d9ec491982ceabea813569579b2991093a4e0d76b7ca86ffd9b7a2a1d1e|20594012", + "1.4.4|linux_x86_64|67541c1f6631befcc25b764028e5605e59234d4424e60a256518ee1e8dd50593|20767354", + "1.4.4|linux_arm64|f0b4e092f2aa6de3324e5e4b5b51260ecf5e8c2f5335ff7a2ffdc4fb54a8922d|18814310", + "1.4.3|macos_x86_64|89bdb242bfacf24167f365ef7a3bf0ad0e443ddd27ebde425fb71d77ce1a2597|22032267", + "1.4.3|macos_arm64|20b9d484bf99ada6c0de89316176ba33f7c87f64c0738991188465147bba221b|20574247", + "1.4.3|linux_x86_64|2252ee6ac8437b93db2b2ba341edc87951e2916afaeb50a88b858e80796e9111|20781685", + "1.4.3|linux_arm64|d3d9464953d390970e7f4f7cbcd94dbf63136da6fe1cbb4955d944a9315bdcdb|18814307", + "1.4.2|macos_x86_64|c218a6c0ef6692b25af16995c8c7bdf6739e9638fef9235c6aced3cd84afaf66|22030042", + "1.4.2|macos_arm64|af8ff7576c8fc41496fdf97e9199b00d8d81729a6a0e821eaf4dfd08aa763540|20588400", + "1.4.2|linux_x86_64|9f3ca33d04f5335472829d1df7785115b60176d610ae6f1583343b0a2221a931|20234129", + "1.4.2|linux_arm64|39c182670c4e63e918e0a16080b1cc47bb16e158d7da96333d682d6a9cb8eb91|18206088", + "1.4.1|macos_x86_64|96466364a7e66e3d456ecb6c85a63c83e124c004f8835fb8ea9b7bbb7542a9d0|22077050", + "1.4.1|macos_arm64|61f76e130b97c8a9017d8aaff15d252af29117e35ea1a0fc30bcaab7ceafce73|20634145", + "1.4.1|linux_x86_64|9e9f3e6752168dea8ecb3643ea9c18c65d5a52acc06c22453ebc4e3fc2d34421|20276168", + "1.4.1|linux_arm64|53322cc70b6e50ac1985bf26a78ffa2814789a4704880f071eaf3e67a463d6f6|18248378", + "1.4.0|macos_x86_64|e897a4217f1c3bfe37c694570dcc6371336fbda698790bb6b0547ec8daf1ffb3|21935694", + "1.4.0|macos_arm64|d4a1e564714c6acf848e86dc020ff182477b49f932e3f550a5d9c8f5da7636fb|20508091", + "1.4.0|linux_x86_64|5da60da508d6d1941ffa8b9216147456a16bbff6db7622ae9ad01d314cbdd188|20144407", + "1.4.0|linux_arm64|33e0f4f0b75f507fc19012111de008308df343153cd6a3992507f4566c0bb723|18130960", + "1.3.9|macos_x86_64|a73326ea8fb06f6976597e005f8047cbd55ac76ed1e517303d8f6395db6c7805|21194871", + "1.3.9|macos_arm64|d8a59a794a7f99b484a07a0ed2aa6520921d146ac5a7f4b1b806dcf5c4af0525|19793371", + "1.3.9|linux_x86_64|53048fa573effdd8f2a59b726234c6f450491fe0ded6931e9f4c6e3df6eece56|19477757", + "1.3.9|linux_arm64|da571087268c5faf884912c4239c6b9c8e1ed8e8401ab1dcb45712df70f42f1b|17513770", + "1.3.8|macos_x86_64|1a27a6fac31ecb05de610daf61a29fe83d304d7c519d773afbf56c11c3b6276b|21189878", + "1.3.8|macos_arm64|873b05ac81645cd7289d6ccfd3e73d4735af1a453f2cd19da0650bdabf7d2eb6|19780134", + "1.3.8|linux_x86_64|9d9e7d6a9b41cef8b837af688441d4fbbd84b503d24061d078ad662441c70240|19479266", + "1.3.8|linux_arm64|a42bf3c7d6327f45d2b212b692ab4229285fb44dbb8adb7c39e18be2b26167c8|17507360", + "1.3.7|macos_x86_64|eeae48adcd55212b34148ed203dd5843e9b2a84a852a9877f3386fadb0514980|21185288", + "1.3.7|macos_arm64|01d553db5f7b4cf0729b725e4402643efde5884b1dabf5eb80af328ce5e447cf|19774151", + "1.3.7|linux_x86_64|b8cf184dee15dfa89713fe56085313ab23db22e17284a9a27c0999c67ce3021e|19464102", + "1.3.7|linux_arm64|5b491c555ea8a62dda551675fd9f27d369f5cdbe87608d2a7367d3da2d38ea38|17499971", + "1.3.6|macos_x86_64|13881fe0100238577394243a90c0631783aad21b77a9a7ee830404f86c0d37bb|21183111", + "1.3.6|macos_arm64|dbff0aeeaeee877c254f5414bef5c9d186e159aa0019223aac678abad9442c53|19779986", + "1.3.6|linux_x86_64|bb44a4c2b0a832d49253b9034d8ccbd34f9feeb26eda71c665f6e7fa0861f49b|19466755", + "1.3.6|linux_arm64|f4b1af29094290f1b3935c29033c4e5291664ee2c015ca251a020dd425c847c3|17501845", + "1.3.5|macos_x86_64|e6c9836188265b20c2588e9c9d6b1727094b324a379337e68ba58a6d26be8b51|21182319", + "1.3.5|macos_arm64|fcec1cbff229fbe59b03257ba2451d5ad1f5129714f08ccf6372b2737647c063|19780547", + "1.3.5|linux_x86_64|ac28037216c3bc41de2c22724e863d883320a770056969b8d211ca8af3d477cf|19469337", + "1.3.5|linux_arm64|ba5b1761046b899197bbfce3ad9b448d14550106d2cc37c52a60fc6822b584ed|17502759", + "1.3.4|macos_x86_64|2a75c69ec5ed8506658b266a40075256b62a7d245ff6297df7e48fa72af23879|21181585", + "1.3.4|macos_arm64|a1f740f92afac6db84421a3ec07d9061c34a32f88b4b0b47d243de16c961169f|19773343", + "1.3.4|linux_x86_64|b24210f28191fa2a08efe69f54e3db2e87a63369ac4f5dcaf9f34dc9318eb1a8|19462529", + "1.3.4|linux_arm64|65381c6b61b2d1a98892199f649a5764ff5a772080a73d70f8663245e6402c39|17494667", + "1.3.3|macos_x86_64|2b3cf653cd106becdea562b6c8d3f8939641e5626c5278729cbef81678fa9f42|21163874", + "1.3.3|macos_arm64|51e94ecf88059e8a53c363a048b658230f560574f99b0d8396ebacead894d159|19755200", + "1.3.3|linux_x86_64|fa5cbf4274c67f2937cabf1a6544529d35d0b8b729ce814b40d0611fd26193c1|19451941", + "1.3.3|linux_arm64|b940a080c698564df5e6a2f1c4e1b51b2c70a5115358d2361e3697d3985ecbfe|17488660", + "1.3.2|macos_x86_64|3639461bbc712dc130913bbe632afb449fce8c0df692429d311e7cb808601901|21163990", + "1.3.2|macos_arm64|80480acbfee2e2d0b094f721f7568a40b790603080d6612e19b797a16b8ba82d|19757201", + "1.3.2|linux_x86_64|6372e02a7f04bef9dac4a7a12f4580a0ad96a37b5997e80738e070be330cb11c|19451510", + "1.3.2|linux_arm64|ce1a8770aaf27736a3352c5c31e95fb10d0944729b9d81013bf6848f8657da5f|17485206", + "1.3.1|macos_x86_64|4282ebe6d1d72ace0d93e8a4bcf9a6f3aceac107966216355bb516b1c49cc203|21161667", + "1.3.1|macos_arm64|f0514f29b08da2f39ba4fff0d7eb40093915c9c69ddc700b6f39b78275207d96|19756039", + "1.3.1|linux_x86_64|0847b14917536600ba743a759401c45196bf89937b51dd863152137f32791899|19450765", + "1.3.1|linux_arm64|7ebb3d1ff94017fbef8acd0193e0bd29dec1a8925e2b573c05a92fdb743d1d5b|17486534", + "1.3.0|macos_x86_64|80e55182d4495da867c93c25dc6ae29be83ece39d3225e6adedecd55b72d6bbf|21163947", + "1.3.0|macos_arm64|df703317b5c7f80dc7c61e46de4697c9f440e650a893623351ab5e184995b404|19741011", + "1.3.0|linux_x86_64|380ca822883176af928c80e5771d1c0ac9d69b13c6d746e6202482aedde7d457|19450952", + "1.3.0|linux_arm64|0a15de6f934cf2217e5055412e7600d342b4f7dcc133564690776fece6213a9a|17488551", + "1.2.9|macos_x86_64|84a678ece9929cebc34c7a9a1ba287c8b91820b336f4af8437af7feaa0117b7c|21672810", + "1.2.9|macos_arm64|bc3b94b53cdf1be3c4988faa61aad343f48e013928c64bfc6ebeb61657f97baa|20280541", + "1.2.9|linux_x86_64|0e0fc38641addac17103122e1953a9afad764a90e74daf4ff8ceeba4e362f2fb|19906116", + "1.2.9|linux_arm64|6da7bf01f5a72e61255c2d80eddeba51998e2bb1f50a6d81b0d3b71e70e18531|17946045", + "1.2.8|macos_x86_64|efd3e21a9bb1cfa68303f8d119ea8970dbb616f5f99caa0fe21d796e0cd70252|21678594", + "1.2.8|macos_arm64|2c83bfea9e1c202c449e91bee06a804afb45cb8ba64a73da48fb0f61df51b327|20277152", + "1.2.8|linux_x86_64|3e9c46d6f37338e90d5018c156d89961b0ffb0f355249679593aff99f9abe2a2|19907515", + "1.2.8|linux_arm64|26c05cadb05cdaa8ac64b90b982b4e9350715ec2e9995a6b03bb964d230de055|17947439", + "1.2.7|macos_x86_64|74e47b54ea78685be24c84e0e17b22b56220afcdb24ec853514b3863199f01e4|21673162", + "1.2.7|macos_arm64|ec4e623914b411f8cc93a1e71396a1e7f1fe1e96bb2e532ba3e955d2ca5cc442|20278743", + "1.2.7|linux_x86_64|dfd7c44a5b6832d62860a01095a15b53616fb3ea4441ab89542f9364e3fca718|19907183", + "1.2.7|linux_arm64|80d064008d57ba5dc97e189215c87275bf39ca14b1234430eae2f114394ea229|17943724", + "1.2.6|macos_x86_64|d896d2776af8b06cd4acd695ad75913040ce31234f5948688fd3c3fde53b1f75|21670957", + "1.2.6|macos_arm64|c88ceb34f343a2bb86960e32925c5ec43b41922ee9ede1019c5cf7d7b4097718|20279669", + "1.2.6|linux_x86_64|9fd445e7a191317dcfc99d012ab632f2cc01f12af14a44dfbaba82e0f9680365|19905977", + "1.2.6|linux_arm64|322755d11f0da11169cdb234af74ada5599046c698dccc125859505f85da2a20|17943213", + "1.2.5|macos_x86_64|2520fde736b43332b0c2648f4f6dde407335f322a3085114dc4f70e6e50eadc0|21659883", + "1.2.5|macos_arm64|92ad40db4a0930bdf872d6336a7b3a18b17c6fd04d9fc769b554bf51c8add505|20266441", + "1.2.5|linux_x86_64|281344ed7e2b49b3d6af300b1fe310beed8778c56f3563c4d60e5541c0978f1b|19897064", + "1.2.5|linux_arm64|0544420eb29b792444014988018ae77a7c8df6b23d84983728695ba73e38f54a|17938208", + "1.2.4|macos_x86_64|e7d2c66264a3da94854ae6ff692bbb9a1bc11c36bb5658e3ef19841388a07430|21658356", + "1.2.4|macos_arm64|c31754ff5553707ef9fd2f913b833c779ab05ce192eb14913f51816a077c6798|20263133", + "1.2.4|linux_x86_64|705ea62a44a0081594dad6b2b093eefefb12d54fa5a20a66562f9e082b00414c|19895510", + "1.2.4|linux_arm64|11cfa2233dc708b51b16d5b923379db67e35c22b1b988773e5b31a7c2e251471|17936883", + "1.2.3|macos_x86_64|bdc22658463237530dc120dadb0221762d9fb9116e7a6e0dc063d8ae649c431e|21658937", + "1.2.3|macos_arm64|6f06debac2ac54951464bf490e1606f973ab53ad8ba5decea76646e8f9309512|20256836", + "1.2.3|linux_x86_64|728b6fbcb288ad1b7b6590585410a98d3b7e05efe4601ef776c37e15e9a83a96|19891436", + "1.2.3|linux_arm64|a48991e938a25bfe5d257f4b6cbbdc73d920cc34bbc8f0e685e28b9610ad75fe|17933271", + "1.2.2|macos_x86_64|1d22663c1ab22ecea774ae63aee21eecfee0bbc23b953206d889a5ba3c08525a|21656824", + "1.2.2|macos_arm64|b87716b55a3b10cced60db5285bae57aee9cc0f81c555dccdc4f54f62c2a3b60|20254768", + "1.2.2|linux_x86_64|2934a0e8824925beb956b2edb5fef212a6141c089d29d8568150a43f95b3a626|19889133", + "1.2.2|linux_arm64|9c6202237d7477412054dcd36fdc269da9ee66ecbc45bb07d0d63b7d36af7b21|17932829", + "1.2.1|macos_x86_64|31c0fd4deb7c6a77c08d2fdf59c37950e6df7165088c004e1dd7f5e09fbf6307|21645582", + "1.2.1|macos_arm64|70159b3e3eb49ee71193815943d9217c59203fd4ee8c6960aeded744094a2250|20253448", + "1.2.1|linux_x86_64|8cf8eb7ed2d95a4213fbfd0459ab303f890e79220196d1c4aae9ecf22547302e|19881618", + "1.2.1|linux_arm64|972ea512dac822274791dedceb6e7f8b9ac2ed36bd7759269b6806d0ab049128|17922073", + "1.2.0|macos_x86_64|1b102ba3bf0c60ff6cbee74f721bf8105793c1107a1c6d03dcab98d7079f0c77|21645732", + "1.2.0|macos_arm64|f5e46cabe5889b60597f0e9c365cbc663e4c952c90a16c10489897c2075ae4f0|20253335", + "1.2.0|linux_x86_64|b87de03adbdfdff3c2552c8c8377552d0eecd787154465100cf4e29de4a7be1f|19880608", + "1.2.0|linux_arm64|ee80b8635d8fdbaed57beffe281cf87b8b1fd1ddb29c08d20e25a152d9f0f871|17920355", + "1.1.9|macos_x86_64|685258b525eae94fb0b406faf661aa056d31666256bf28e625365a251cb89fdc|20850638", + "1.1.9|macos_arm64|39fac4be74462be86b2290dd09fe1092f73dfb48e2df92406af0e199cfa6a16c|20093184", + "1.1.9|linux_x86_64|9d2d8a89f5cc8bc1c06cb6f34ce76ec4b99184b07eb776f8b39183b513d7798a|19262029", + "1.1.9|linux_arm64|e8a09d1fe5a68ed75e5fabe26c609ad12a7e459002dea6543f1084993b87a266|17521011", + "1.1.8|macos_x86_64|48f1f1e04d0aa8f5f1a661de95e3c2b8fd8ab16b3d44015372aff7693d36c2cf|20354970", + "1.1.8|macos_arm64|943e1948c4eae82cf8b490bb274939fe666252bbc146f098e7da65b23416264a|19631574", + "1.1.8|linux_x86_64|fbd37c1ec3d163f493075aa0fa85147e7e3f88dd98760ee7af7499783454f4c5|18796132", + "1.1.8|linux_arm64|10b2c063dcff91329ee44bce9d71872825566b713308b3da1e5768c6998fb84f|17107405", + "1.1.7|macos_x86_64|6e56eea328683541f6de0d5f449251a974d173e6d8161530956a20d9c239731a|20351873", + "1.1.7|macos_arm64|8919ceee34f6bfb16a6e9ff61c95f4043c35c6d70b21de27e5a153c19c7eba9c|19625836", + "1.1.7|linux_x86_64|e4add092a54ff6febd3325d1e0c109c9e590dc6c38f8bb7f9632e4e6bcca99d4|18795309", + "1.1.7|linux_arm64|2f72982008c52d2d57294ea50794d7c6ae45d2948e08598bfec3e492bce8d96e|17109768", + "1.1.6|macos_x86_64|7a499c1f08d89548ae4c0e829eea43845fa1bd7b464e7df46102b35e6081fe44|20303856", + "1.1.6|macos_arm64|f06a14fdb610ec5a7f18bdbb2f67187230eb418329756732d970b6ca3dae12c3|19577273", + "1.1.6|linux_x86_64|3e330ce4c8c0434cdd79fe04ed6f6e28e72db44c47ae50d01c342c8a2b05d331|18751464", + "1.1.6|linux_arm64|a53fb63625af3572f7252b9fb61d787ab153132a8984b12f4bb84b8ee408ec53|17069580", + "1.1.5|macos_x86_64|dcf7133ebf61d195e432ddcb70e604bf45056163d960e991881efbecdbd7892b|20300006", + "1.1.5|macos_arm64|6e5a8d22343722dc8bfcf1d2fd7b742f5b46287f87171e8143fc9b87db32c3d4|19581167", + "1.1.5|linux_x86_64|30942d5055c7151f051c8ea75481ff1dc95b2c4409dbb50196419c21168d6467|18748879", + "1.1.5|linux_arm64|2fb6324c24c14523ae63cedcbc94a8e6c1c317987eced0abfca2f6218d217ca5|17069683", + "1.1.4|macos_x86_64|4f3bc78fedd4aa17f67acc0db4eafdb6d70ba72392aaba65fe72855520f11f3d|20242050", + "1.1.4|macos_arm64|5642b46e9c7fb692f05eba998cd4065fb2e48aa8b0aac9d2a116472fbabe34a1|19498408", + "1.1.4|linux_x86_64|fca028d622f82788fdc35c1349e78d69ff07c7bb68c27d12f8b48c420e3ecdfb|18695508", + "1.1.4|linux_arm64|3c1982cf0d16276c82960db60c998d79ba19e413af4fa2c7f6f86e4994379437|16996040", + "1.1.3|macos_x86_64|016bab760c96d4e64d2140a5f25c614ccc13c3fe9b3889e70c564bd02099259f|20241648", + "1.1.3|macos_arm64|02ba769bb0a8d4bc50ff60989b0f201ce54fd2afac2fb3544a0791aca5d3f6d5|19493636", + "1.1.3|linux_x86_64|b215de2a18947fff41803716b1829a3c462c4f009b687c2cbdb52ceb51157c2f|18692580", + "1.1.3|linux_arm64|ad5a1f2c132bedc5105e3f9900e4fe46858d582c0f2a2d74355da718bbcef65d|16996972", + "1.1.2|macos_x86_64|78faa76db5dc0ecfe4bf7c6368dbf5cca019a806f9d203580a24a4e0f8cd8353|20240584", + "1.1.2|macos_arm64|cc3bd03b72db6247c9105edfeb9c8f674cf603e08259075143ffad66f5c25a07|19486800", + "1.1.2|linux_x86_64|734efa82e2d0d3df8f239ce17f7370dabd38e535d21e64d35c73e45f35dfa95c|18687805", + "1.1.2|linux_arm64|088e2226d1ddb7f68a4f65c704022a1cfdbf20fe40f02e0c3646942f211fd746|16994702", + "1.1.1|macos_x86_64|d125dd2e92b9245f2202199b52f234035f36bdcbcd9a06f08e647e14a9d9067a|20237718", + "1.1.1|macos_arm64|4cb6e5eb4f6036924caf934c509a1dfd61cd2c651bb3ee8fbfe2e2914dd9ed17|19488315", + "1.1.1|linux_x86_64|07b8dc444540918597a60db9351af861335c3941f28ea8774e168db97dd74557|18687006", + "1.1.1|linux_arm64|d6fd14da47af9ec5fa3ad5962eaef8eed6ff2f8a5041671f9c90ec5f4f8bb554|16995635", + "1.1.0|macos_x86_64|6e0ba9afb8795a544e70dc0459f0095fea7df15e38f5d88a7dd3f620d50f8bfe|20226329", + "1.1.0|macos_arm64|7955e173c7eadb87123fc0633c3ee67d5ba3b7d6c7f485fe803efed9f99dce54|19491369", + "1.1.0|linux_x86_64|763378aa75500ce5ba67d0cba8aa605670cd28bf8bafc709333a30908441acb5|18683106", + "1.1.0|linux_arm64|6697e9a263e264310373f3c91bf83f4cbfeb67b13994d2a8f7bcc492b554552e|16987201", + "1.0.11|macos_x86_64|551a16b612edaae1037925d0e2dba30d16504ff4bd66606955172c2ed8d76131|19422757", + "1.0.11|macos_arm64|737e1765afbadb3d76e1929d4b4af8da55010839aa08e9e730d46791eb8ea5a6|18467868", + "1.0.11|linux_x86_64|eeb46091a42dc303c3a3c300640c7774ab25cbee5083dafa5fd83b54c8aca664|18082446", + "1.0.11|linux_arm64|30c650f4bc218659d43e07d911c00f08e420664a3d12c812228e66f666758645|16148492", + "1.0.10|macos_x86_64|077479e98701bc9be88db21abeec684286fd85a3463ce437d7739d2a4e372f18|33140832", + "1.0.10|macos_arm64|776f2e144039ece66ae326ebda0884254848a2e11f0590757d02e3a74f058c81|32013985", + "1.0.10|linux_x86_64|a221682fcc9cbd7fde22f305ead99b3ad49d8303f152e118edda086a2807716d|32674953", + "1.0.10|linux_arm64|b091dbe5c00785ae8b5cb64149d697d61adea75e495d9e3d910f61d8c9967226|30505040", + "1.0.9|macos_x86_64|be122ff7fb925643c5ebf4e5704b18426e18d3ca49ab59ae33d208c908cb6d5a|33140006", + "1.0.9|macos_arm64|89b2b4fd1a0c57fabc08ad3180ad148b1f7c1c0492ed865408f75f12e11a083b|32010657", + "1.0.9|linux_x86_64|f06ac64c6a14ed6a923d255788e4a5daefa2b50e35f32d7a3b5a2f9a5a91e255|32674820", + "1.0.9|linux_arm64|457ac590301126e7b151ea08c5b9586a882c60039a0605fb1e44b8d23d2624fd|30510941", + "1.0.8|macos_x86_64|909781ee76250cf7445f3b7d2b82c701688725fa1db3fb5543dfeed8c47b59de|33140123", + "1.0.8|macos_arm64|92fa31b93d736fab6f3d105beb502a9da908445ed942a3d46952eae88907c53e|32011344", + "1.0.8|linux_x86_64|a73459d406067ce40a46f026dce610740d368c3b4a3d96591b10c7a577984c2e|32681118", + "1.0.8|linux_arm64|01aaef769f4791f9b28530e750aadbc983a8eabd0d55909e26392b333a1a26e4|30515501", + "1.0.7|macos_x86_64|23b85d914465882b027d3819cc05cd114a1aaf39b550de742e81a99daa998183|33140742", + "1.0.7|macos_arm64|d9062959f28ba0f934bfe2b6e0b021e0c01a48fa065102554ca103b8274e8e0c|32012708", + "1.0.7|linux_x86_64|bc79e47649e2529049a356f9e60e06b47462bf6743534a10a4c16594f443be7b|32671441", + "1.0.7|linux_arm64|4e71a9e759578020750be41e945c086e387affb58568db6d259d80d123ac80d3|30529105", + "1.0.6|macos_x86_64|5ac4f41d5e28f31817927f2c5766c5d9b98b68d7b342e25b22d053f9ecd5a9f1|33141677", + "1.0.6|macos_arm64|613020f90a6a5d0b98ebeb4e7cdc4b392aa06ce738fbb700159a465cd27dcbfa|32024047", + "1.0.6|linux_x86_64|6a454323d252d34e928785a3b7c52bfaff1192f82685dfee4da1279bb700b733|32677516", + "1.0.6|linux_arm64|2047f8afc7d0d7b645a0422181ba3fe47b3547c4fe658f95eebeb872752ec129|30514636" + ], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--flake8-console-script="], - "env_var": "PANTS_FLAKE8_CONSOLE_SCRIPT", + "display_args": [ + "--download-terraform-known-versions=\"['', '', ...]\"" + ], + "env_var": "PANTS_DOWNLOAD_TERRAFORM_KNOWN_VERSIONS", "fromfile": false, - "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--flake8-console-script"], + "scoped_cmd_line_args": ["--download-terraform-known-versions"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--console-script"], + "typ": "list", + "unscoped_cmd_line_args": ["--known-versions"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "flake8" + "value": [ + "1.4.6|macos_x86_64|5d8332994b86411b049391d31ad1a0785dfb470db8b9c50617de28ddb5d1f25d|22051279", + "1.4.6|macos_arm64|30a2f87298ff9f299452119bd14afaa8d5b000c572f62fa64baf432e35d9dec1|20613318", + "1.4.6|linux_x86_64|e079db1a8945e39b1f8ba4e513946b3ab9f32bd5a2bdf19b9b186d22c5a3d53b|20779821", + "1.4.6|linux_arm64|b38f5db944ac4942f11ceea465a91e365b0636febd9998c110fbbe95d61c3b26|18834675", + "1.4.5|macos_x86_64|808e54d826737e9a0ca79bbe29330e50d3622bbeeb26066c63b371a291731711|22031074", + "1.4.5|macos_arm64|7104d9d13632aa61b494a349c589048d21bd550e579404c3a41c4932e4d6aa97|20592841", + "1.4.5|linux_x86_64|ce10e941cd11554b15a189cd00191c05abc20dff865599d361bdb863c5f406a9|20767621", + "1.4.5|linux_arm64|ca2c48f518f72fef668255150cc5e63b92545edc62a05939bbff8a350bceb357|18813058", + "1.4.4|macos_x86_64|0303ed9d7e5a225fc2e6fa9bf76fc6574c0c0359f22d5dfc04bc8b3234444f7c|22032187", + "1.4.4|macos_arm64|75602d9ec491982ceabea813569579b2991093a4e0d76b7ca86ffd9b7a2a1d1e|20594012", + "1.4.4|linux_x86_64|67541c1f6631befcc25b764028e5605e59234d4424e60a256518ee1e8dd50593|20767354", + "1.4.4|linux_arm64|f0b4e092f2aa6de3324e5e4b5b51260ecf5e8c2f5335ff7a2ffdc4fb54a8922d|18814310", + "1.4.3|macos_x86_64|89bdb242bfacf24167f365ef7a3bf0ad0e443ddd27ebde425fb71d77ce1a2597|22032267", + "1.4.3|macos_arm64|20b9d484bf99ada6c0de89316176ba33f7c87f64c0738991188465147bba221b|20574247", + "1.4.3|linux_x86_64|2252ee6ac8437b93db2b2ba341edc87951e2916afaeb50a88b858e80796e9111|20781685", + "1.4.3|linux_arm64|d3d9464953d390970e7f4f7cbcd94dbf63136da6fe1cbb4955d944a9315bdcdb|18814307", + "1.4.2|macos_x86_64|c218a6c0ef6692b25af16995c8c7bdf6739e9638fef9235c6aced3cd84afaf66|22030042", + "1.4.2|macos_arm64|af8ff7576c8fc41496fdf97e9199b00d8d81729a6a0e821eaf4dfd08aa763540|20588400", + "1.4.2|linux_x86_64|9f3ca33d04f5335472829d1df7785115b60176d610ae6f1583343b0a2221a931|20234129", + "1.4.2|linux_arm64|39c182670c4e63e918e0a16080b1cc47bb16e158d7da96333d682d6a9cb8eb91|18206088", + "1.4.1|macos_x86_64|96466364a7e66e3d456ecb6c85a63c83e124c004f8835fb8ea9b7bbb7542a9d0|22077050", + "1.4.1|macos_arm64|61f76e130b97c8a9017d8aaff15d252af29117e35ea1a0fc30bcaab7ceafce73|20634145", + "1.4.1|linux_x86_64|9e9f3e6752168dea8ecb3643ea9c18c65d5a52acc06c22453ebc4e3fc2d34421|20276168", + "1.4.1|linux_arm64|53322cc70b6e50ac1985bf26a78ffa2814789a4704880f071eaf3e67a463d6f6|18248378", + "1.4.0|macos_x86_64|e897a4217f1c3bfe37c694570dcc6371336fbda698790bb6b0547ec8daf1ffb3|21935694", + "1.4.0|macos_arm64|d4a1e564714c6acf848e86dc020ff182477b49f932e3f550a5d9c8f5da7636fb|20508091", + "1.4.0|linux_x86_64|5da60da508d6d1941ffa8b9216147456a16bbff6db7622ae9ad01d314cbdd188|20144407", + "1.4.0|linux_arm64|33e0f4f0b75f507fc19012111de008308df343153cd6a3992507f4566c0bb723|18130960", + "1.3.9|macos_x86_64|a73326ea8fb06f6976597e005f8047cbd55ac76ed1e517303d8f6395db6c7805|21194871", + "1.3.9|macos_arm64|d8a59a794a7f99b484a07a0ed2aa6520921d146ac5a7f4b1b806dcf5c4af0525|19793371", + "1.3.9|linux_x86_64|53048fa573effdd8f2a59b726234c6f450491fe0ded6931e9f4c6e3df6eece56|19477757", + "1.3.9|linux_arm64|da571087268c5faf884912c4239c6b9c8e1ed8e8401ab1dcb45712df70f42f1b|17513770", + "1.3.8|macos_x86_64|1a27a6fac31ecb05de610daf61a29fe83d304d7c519d773afbf56c11c3b6276b|21189878", + "1.3.8|macos_arm64|873b05ac81645cd7289d6ccfd3e73d4735af1a453f2cd19da0650bdabf7d2eb6|19780134", + "1.3.8|linux_x86_64|9d9e7d6a9b41cef8b837af688441d4fbbd84b503d24061d078ad662441c70240|19479266", + "1.3.8|linux_arm64|a42bf3c7d6327f45d2b212b692ab4229285fb44dbb8adb7c39e18be2b26167c8|17507360", + "1.3.7|macos_x86_64|eeae48adcd55212b34148ed203dd5843e9b2a84a852a9877f3386fadb0514980|21185288", + "1.3.7|macos_arm64|01d553db5f7b4cf0729b725e4402643efde5884b1dabf5eb80af328ce5e447cf|19774151", + "1.3.7|linux_x86_64|b8cf184dee15dfa89713fe56085313ab23db22e17284a9a27c0999c67ce3021e|19464102", + "1.3.7|linux_arm64|5b491c555ea8a62dda551675fd9f27d369f5cdbe87608d2a7367d3da2d38ea38|17499971", + "1.3.6|macos_x86_64|13881fe0100238577394243a90c0631783aad21b77a9a7ee830404f86c0d37bb|21183111", + "1.3.6|macos_arm64|dbff0aeeaeee877c254f5414bef5c9d186e159aa0019223aac678abad9442c53|19779986", + "1.3.6|linux_x86_64|bb44a4c2b0a832d49253b9034d8ccbd34f9feeb26eda71c665f6e7fa0861f49b|19466755", + "1.3.6|linux_arm64|f4b1af29094290f1b3935c29033c4e5291664ee2c015ca251a020dd425c847c3|17501845", + "1.3.5|macos_x86_64|e6c9836188265b20c2588e9c9d6b1727094b324a379337e68ba58a6d26be8b51|21182319", + "1.3.5|macos_arm64|fcec1cbff229fbe59b03257ba2451d5ad1f5129714f08ccf6372b2737647c063|19780547", + "1.3.5|linux_x86_64|ac28037216c3bc41de2c22724e863d883320a770056969b8d211ca8af3d477cf|19469337", + "1.3.5|linux_arm64|ba5b1761046b899197bbfce3ad9b448d14550106d2cc37c52a60fc6822b584ed|17502759", + "1.3.4|macos_x86_64|2a75c69ec5ed8506658b266a40075256b62a7d245ff6297df7e48fa72af23879|21181585", + "1.3.4|macos_arm64|a1f740f92afac6db84421a3ec07d9061c34a32f88b4b0b47d243de16c961169f|19773343", + "1.3.4|linux_x86_64|b24210f28191fa2a08efe69f54e3db2e87a63369ac4f5dcaf9f34dc9318eb1a8|19462529", + "1.3.4|linux_arm64|65381c6b61b2d1a98892199f649a5764ff5a772080a73d70f8663245e6402c39|17494667", + "1.3.3|macos_x86_64|2b3cf653cd106becdea562b6c8d3f8939641e5626c5278729cbef81678fa9f42|21163874", + "1.3.3|macos_arm64|51e94ecf88059e8a53c363a048b658230f560574f99b0d8396ebacead894d159|19755200", + "1.3.3|linux_x86_64|fa5cbf4274c67f2937cabf1a6544529d35d0b8b729ce814b40d0611fd26193c1|19451941", + "1.3.3|linux_arm64|b940a080c698564df5e6a2f1c4e1b51b2c70a5115358d2361e3697d3985ecbfe|17488660", + "1.3.2|macos_x86_64|3639461bbc712dc130913bbe632afb449fce8c0df692429d311e7cb808601901|21163990", + "1.3.2|macos_arm64|80480acbfee2e2d0b094f721f7568a40b790603080d6612e19b797a16b8ba82d|19757201", + "1.3.2|linux_x86_64|6372e02a7f04bef9dac4a7a12f4580a0ad96a37b5997e80738e070be330cb11c|19451510", + "1.3.2|linux_arm64|ce1a8770aaf27736a3352c5c31e95fb10d0944729b9d81013bf6848f8657da5f|17485206", + "1.3.1|macos_x86_64|4282ebe6d1d72ace0d93e8a4bcf9a6f3aceac107966216355bb516b1c49cc203|21161667", + "1.3.1|macos_arm64|f0514f29b08da2f39ba4fff0d7eb40093915c9c69ddc700b6f39b78275207d96|19756039", + "1.3.1|linux_x86_64|0847b14917536600ba743a759401c45196bf89937b51dd863152137f32791899|19450765", + "1.3.1|linux_arm64|7ebb3d1ff94017fbef8acd0193e0bd29dec1a8925e2b573c05a92fdb743d1d5b|17486534", + "1.3.0|macos_x86_64|80e55182d4495da867c93c25dc6ae29be83ece39d3225e6adedecd55b72d6bbf|21163947", + "1.3.0|macos_arm64|df703317b5c7f80dc7c61e46de4697c9f440e650a893623351ab5e184995b404|19741011", + "1.3.0|linux_x86_64|380ca822883176af928c80e5771d1c0ac9d69b13c6d746e6202482aedde7d457|19450952", + "1.3.0|linux_arm64|0a15de6f934cf2217e5055412e7600d342b4f7dcc133564690776fece6213a9a|17488551", + "1.2.9|macos_x86_64|84a678ece9929cebc34c7a9a1ba287c8b91820b336f4af8437af7feaa0117b7c|21672810", + "1.2.9|macos_arm64|bc3b94b53cdf1be3c4988faa61aad343f48e013928c64bfc6ebeb61657f97baa|20280541", + "1.2.9|linux_x86_64|0e0fc38641addac17103122e1953a9afad764a90e74daf4ff8ceeba4e362f2fb|19906116", + "1.2.9|linux_arm64|6da7bf01f5a72e61255c2d80eddeba51998e2bb1f50a6d81b0d3b71e70e18531|17946045", + "1.2.8|macos_x86_64|efd3e21a9bb1cfa68303f8d119ea8970dbb616f5f99caa0fe21d796e0cd70252|21678594", + "1.2.8|macos_arm64|2c83bfea9e1c202c449e91bee06a804afb45cb8ba64a73da48fb0f61df51b327|20277152", + "1.2.8|linux_x86_64|3e9c46d6f37338e90d5018c156d89961b0ffb0f355249679593aff99f9abe2a2|19907515", + "1.2.8|linux_arm64|26c05cadb05cdaa8ac64b90b982b4e9350715ec2e9995a6b03bb964d230de055|17947439", + "1.2.7|macos_x86_64|74e47b54ea78685be24c84e0e17b22b56220afcdb24ec853514b3863199f01e4|21673162", + "1.2.7|macos_arm64|ec4e623914b411f8cc93a1e71396a1e7f1fe1e96bb2e532ba3e955d2ca5cc442|20278743", + "1.2.7|linux_x86_64|dfd7c44a5b6832d62860a01095a15b53616fb3ea4441ab89542f9364e3fca718|19907183", + "1.2.7|linux_arm64|80d064008d57ba5dc97e189215c87275bf39ca14b1234430eae2f114394ea229|17943724", + "1.2.6|macos_x86_64|d896d2776af8b06cd4acd695ad75913040ce31234f5948688fd3c3fde53b1f75|21670957", + "1.2.6|macos_arm64|c88ceb34f343a2bb86960e32925c5ec43b41922ee9ede1019c5cf7d7b4097718|20279669", + "1.2.6|linux_x86_64|9fd445e7a191317dcfc99d012ab632f2cc01f12af14a44dfbaba82e0f9680365|19905977", + "1.2.6|linux_arm64|322755d11f0da11169cdb234af74ada5599046c698dccc125859505f85da2a20|17943213", + "1.2.5|macos_x86_64|2520fde736b43332b0c2648f4f6dde407335f322a3085114dc4f70e6e50eadc0|21659883", + "1.2.5|macos_arm64|92ad40db4a0930bdf872d6336a7b3a18b17c6fd04d9fc769b554bf51c8add505|20266441", + "1.2.5|linux_x86_64|281344ed7e2b49b3d6af300b1fe310beed8778c56f3563c4d60e5541c0978f1b|19897064", + "1.2.5|linux_arm64|0544420eb29b792444014988018ae77a7c8df6b23d84983728695ba73e38f54a|17938208", + "1.2.4|macos_x86_64|e7d2c66264a3da94854ae6ff692bbb9a1bc11c36bb5658e3ef19841388a07430|21658356", + "1.2.4|macos_arm64|c31754ff5553707ef9fd2f913b833c779ab05ce192eb14913f51816a077c6798|20263133", + "1.2.4|linux_x86_64|705ea62a44a0081594dad6b2b093eefefb12d54fa5a20a66562f9e082b00414c|19895510", + "1.2.4|linux_arm64|11cfa2233dc708b51b16d5b923379db67e35c22b1b988773e5b31a7c2e251471|17936883", + "1.2.3|macos_x86_64|bdc22658463237530dc120dadb0221762d9fb9116e7a6e0dc063d8ae649c431e|21658937", + "1.2.3|macos_arm64|6f06debac2ac54951464bf490e1606f973ab53ad8ba5decea76646e8f9309512|20256836", + "1.2.3|linux_x86_64|728b6fbcb288ad1b7b6590585410a98d3b7e05efe4601ef776c37e15e9a83a96|19891436", + "1.2.3|linux_arm64|a48991e938a25bfe5d257f4b6cbbdc73d920cc34bbc8f0e685e28b9610ad75fe|17933271", + "1.2.2|macos_x86_64|1d22663c1ab22ecea774ae63aee21eecfee0bbc23b953206d889a5ba3c08525a|21656824", + "1.2.2|macos_arm64|b87716b55a3b10cced60db5285bae57aee9cc0f81c555dccdc4f54f62c2a3b60|20254768", + "1.2.2|linux_x86_64|2934a0e8824925beb956b2edb5fef212a6141c089d29d8568150a43f95b3a626|19889133", + "1.2.2|linux_arm64|9c6202237d7477412054dcd36fdc269da9ee66ecbc45bb07d0d63b7d36af7b21|17932829", + "1.2.1|macos_x86_64|31c0fd4deb7c6a77c08d2fdf59c37950e6df7165088c004e1dd7f5e09fbf6307|21645582", + "1.2.1|macos_arm64|70159b3e3eb49ee71193815943d9217c59203fd4ee8c6960aeded744094a2250|20253448", + "1.2.1|linux_x86_64|8cf8eb7ed2d95a4213fbfd0459ab303f890e79220196d1c4aae9ecf22547302e|19881618", + "1.2.1|linux_arm64|972ea512dac822274791dedceb6e7f8b9ac2ed36bd7759269b6806d0ab049128|17922073", + "1.2.0|macos_x86_64|1b102ba3bf0c60ff6cbee74f721bf8105793c1107a1c6d03dcab98d7079f0c77|21645732", + "1.2.0|macos_arm64|f5e46cabe5889b60597f0e9c365cbc663e4c952c90a16c10489897c2075ae4f0|20253335", + "1.2.0|linux_x86_64|b87de03adbdfdff3c2552c8c8377552d0eecd787154465100cf4e29de4a7be1f|19880608", + "1.2.0|linux_arm64|ee80b8635d8fdbaed57beffe281cf87b8b1fd1ddb29c08d20e25a152d9f0f871|17920355", + "1.1.9|macos_x86_64|685258b525eae94fb0b406faf661aa056d31666256bf28e625365a251cb89fdc|20850638", + "1.1.9|macos_arm64|39fac4be74462be86b2290dd09fe1092f73dfb48e2df92406af0e199cfa6a16c|20093184", + "1.1.9|linux_x86_64|9d2d8a89f5cc8bc1c06cb6f34ce76ec4b99184b07eb776f8b39183b513d7798a|19262029", + "1.1.9|linux_arm64|e8a09d1fe5a68ed75e5fabe26c609ad12a7e459002dea6543f1084993b87a266|17521011", + "1.1.8|macos_x86_64|48f1f1e04d0aa8f5f1a661de95e3c2b8fd8ab16b3d44015372aff7693d36c2cf|20354970", + "1.1.8|macos_arm64|943e1948c4eae82cf8b490bb274939fe666252bbc146f098e7da65b23416264a|19631574", + "1.1.8|linux_x86_64|fbd37c1ec3d163f493075aa0fa85147e7e3f88dd98760ee7af7499783454f4c5|18796132", + "1.1.8|linux_arm64|10b2c063dcff91329ee44bce9d71872825566b713308b3da1e5768c6998fb84f|17107405", + "1.1.7|macos_x86_64|6e56eea328683541f6de0d5f449251a974d173e6d8161530956a20d9c239731a|20351873", + "1.1.7|macos_arm64|8919ceee34f6bfb16a6e9ff61c95f4043c35c6d70b21de27e5a153c19c7eba9c|19625836", + "1.1.7|linux_x86_64|e4add092a54ff6febd3325d1e0c109c9e590dc6c38f8bb7f9632e4e6bcca99d4|18795309", + "1.1.7|linux_arm64|2f72982008c52d2d57294ea50794d7c6ae45d2948e08598bfec3e492bce8d96e|17109768", + "1.1.6|macos_x86_64|7a499c1f08d89548ae4c0e829eea43845fa1bd7b464e7df46102b35e6081fe44|20303856", + "1.1.6|macos_arm64|f06a14fdb610ec5a7f18bdbb2f67187230eb418329756732d970b6ca3dae12c3|19577273", + "1.1.6|linux_x86_64|3e330ce4c8c0434cdd79fe04ed6f6e28e72db44c47ae50d01c342c8a2b05d331|18751464", + "1.1.6|linux_arm64|a53fb63625af3572f7252b9fb61d787ab153132a8984b12f4bb84b8ee408ec53|17069580", + "1.1.5|macos_x86_64|dcf7133ebf61d195e432ddcb70e604bf45056163d960e991881efbecdbd7892b|20300006", + "1.1.5|macos_arm64|6e5a8d22343722dc8bfcf1d2fd7b742f5b46287f87171e8143fc9b87db32c3d4|19581167", + "1.1.5|linux_x86_64|30942d5055c7151f051c8ea75481ff1dc95b2c4409dbb50196419c21168d6467|18748879", + "1.1.5|linux_arm64|2fb6324c24c14523ae63cedcbc94a8e6c1c317987eced0abfca2f6218d217ca5|17069683", + "1.1.4|macos_x86_64|4f3bc78fedd4aa17f67acc0db4eafdb6d70ba72392aaba65fe72855520f11f3d|20242050", + "1.1.4|macos_arm64|5642b46e9c7fb692f05eba998cd4065fb2e48aa8b0aac9d2a116472fbabe34a1|19498408", + "1.1.4|linux_x86_64|fca028d622f82788fdc35c1349e78d69ff07c7bb68c27d12f8b48c420e3ecdfb|18695508", + "1.1.4|linux_arm64|3c1982cf0d16276c82960db60c998d79ba19e413af4fa2c7f6f86e4994379437|16996040", + "1.1.3|macos_x86_64|016bab760c96d4e64d2140a5f25c614ccc13c3fe9b3889e70c564bd02099259f|20241648", + "1.1.3|macos_arm64|02ba769bb0a8d4bc50ff60989b0f201ce54fd2afac2fb3544a0791aca5d3f6d5|19493636", + "1.1.3|linux_x86_64|b215de2a18947fff41803716b1829a3c462c4f009b687c2cbdb52ceb51157c2f|18692580", + "1.1.3|linux_arm64|ad5a1f2c132bedc5105e3f9900e4fe46858d582c0f2a2d74355da718bbcef65d|16996972", + "1.1.2|macos_x86_64|78faa76db5dc0ecfe4bf7c6368dbf5cca019a806f9d203580a24a4e0f8cd8353|20240584", + "1.1.2|macos_arm64|cc3bd03b72db6247c9105edfeb9c8f674cf603e08259075143ffad66f5c25a07|19486800", + "1.1.2|linux_x86_64|734efa82e2d0d3df8f239ce17f7370dabd38e535d21e64d35c73e45f35dfa95c|18687805", + "1.1.2|linux_arm64|088e2226d1ddb7f68a4f65c704022a1cfdbf20fe40f02e0c3646942f211fd746|16994702", + "1.1.1|macos_x86_64|d125dd2e92b9245f2202199b52f234035f36bdcbcd9a06f08e647e14a9d9067a|20237718", + "1.1.1|macos_arm64|4cb6e5eb4f6036924caf934c509a1dfd61cd2c651bb3ee8fbfe2e2914dd9ed17|19488315", + "1.1.1|linux_x86_64|07b8dc444540918597a60db9351af861335c3941f28ea8774e168db97dd74557|18687006", + "1.1.1|linux_arm64|d6fd14da47af9ec5fa3ad5962eaef8eed6ff2f8a5041671f9c90ec5f4f8bb554|16995635", + "1.1.0|macos_x86_64|6e0ba9afb8795a544e70dc0459f0095fea7df15e38f5d88a7dd3f620d50f8bfe|20226329", + "1.1.0|macos_arm64|7955e173c7eadb87123fc0633c3ee67d5ba3b7d6c7f485fe803efed9f99dce54|19491369", + "1.1.0|linux_x86_64|763378aa75500ce5ba67d0cba8aa605670cd28bf8bafc709333a30908441acb5|18683106", + "1.1.0|linux_arm64|6697e9a263e264310373f3c91bf83f4cbfeb67b13994d2a8f7bcc492b554552e|16987201", + "1.0.11|macos_x86_64|551a16b612edaae1037925d0e2dba30d16504ff4bd66606955172c2ed8d76131|19422757", + "1.0.11|macos_arm64|737e1765afbadb3d76e1929d4b4af8da55010839aa08e9e730d46791eb8ea5a6|18467868", + "1.0.11|linux_x86_64|eeb46091a42dc303c3a3c300640c7774ab25cbee5083dafa5fd83b54c8aca664|18082446", + "1.0.11|linux_arm64|30c650f4bc218659d43e07d911c00f08e420664a3d12c812228e66f666758645|16148492", + "1.0.10|macos_x86_64|077479e98701bc9be88db21abeec684286fd85a3463ce437d7739d2a4e372f18|33140832", + "1.0.10|macos_arm64|776f2e144039ece66ae326ebda0884254848a2e11f0590757d02e3a74f058c81|32013985", + "1.0.10|linux_x86_64|a221682fcc9cbd7fde22f305ead99b3ad49d8303f152e118edda086a2807716d|32674953", + "1.0.10|linux_arm64|b091dbe5c00785ae8b5cb64149d697d61adea75e495d9e3d910f61d8c9967226|30505040", + "1.0.9|macos_x86_64|be122ff7fb925643c5ebf4e5704b18426e18d3ca49ab59ae33d208c908cb6d5a|33140006", + "1.0.9|macos_arm64|89b2b4fd1a0c57fabc08ad3180ad148b1f7c1c0492ed865408f75f12e11a083b|32010657", + "1.0.9|linux_x86_64|f06ac64c6a14ed6a923d255788e4a5daefa2b50e35f32d7a3b5a2f9a5a91e255|32674820", + "1.0.9|linux_arm64|457ac590301126e7b151ea08c5b9586a882c60039a0605fb1e44b8d23d2624fd|30510941", + "1.0.8|macos_x86_64|909781ee76250cf7445f3b7d2b82c701688725fa1db3fb5543dfeed8c47b59de|33140123", + "1.0.8|macos_arm64|92fa31b93d736fab6f3d105beb502a9da908445ed942a3d46952eae88907c53e|32011344", + "1.0.8|linux_x86_64|a73459d406067ce40a46f026dce610740d368c3b4a3d96591b10c7a577984c2e|32681118", + "1.0.8|linux_arm64|01aaef769f4791f9b28530e750aadbc983a8eabd0d55909e26392b333a1a26e4|30515501", + "1.0.7|macos_x86_64|23b85d914465882b027d3819cc05cd114a1aaf39b550de742e81a99daa998183|33140742", + "1.0.7|macos_arm64|d9062959f28ba0f934bfe2b6e0b021e0c01a48fa065102554ca103b8274e8e0c|32012708", + "1.0.7|linux_x86_64|bc79e47649e2529049a356f9e60e06b47462bf6743534a10a4c16594f443be7b|32671441", + "1.0.7|linux_arm64|4e71a9e759578020750be41e945c086e387affb58568db6d259d80d123ac80d3|30529105", + "1.0.6|macos_x86_64|5ac4f41d5e28f31817927f2c5766c5d9b98b68d7b342e25b22d053f9ecd5a9f1|33141677", + "1.0.6|macos_arm64|613020f90a6a5d0b98ebeb4e7cdc4b392aa06ce738fbb700159a465cd27dcbfa|32024047", + "1.0.6|linux_x86_64|6a454323d252d34e928785a3b7c52bfaff1192f82685dfee4da1279bb700b733|32677516", + "1.0.6|linux_arm64|2047f8afc7d0d7b645a0422181ba3fe47b3547c4fe658f95eebeb872752ec129|30514636" + ] } ] } }, - "PANTS_FLAKE8_ENTRY_POINT": { + "PANTS_DOWNLOAD_TERRAFORM_TAILOR": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--flake8-entry-point=", - "config_key": "entry_point", - "default": null, + "comma_separated_display_args": "--[no-]download-terraform-tailor", + "config_key": "tailor", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--flake8-entry-point="], - "env_var": "PANTS_FLAKE8_ENTRY_POINT", + "display_args": ["--[no-]download-terraform-tailor"], + "env_var": "PANTS_DOWNLOAD_TERRAFORM_TAILOR", "fromfile": false, - "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", + "help": "If true, add `terraform_module` targets with the `tailor` goal.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--flake8-entry-point"], + "scoped_cmd_line_args": [ + "--download-terraform-tailor", + "--no-download-terraform-tailor" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--entry-point"], + "typ": "bool", + "unscoped_cmd_line_args": ["--tailor", "--no-tailor"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true } ] } }, - "PANTS_FLAKE8_EXTRA_FILES": { + "PANTS_DOWNLOAD_TERRAFORM_URL_PLATFORM_MAPPING": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--flake8-extra-files=\"[, , ...]\"", - "config_key": "extra_files", - "default": [], + "comma_separated_display_args": "--download-terraform-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "url_platform_mapping", + "default": { + "linux_arm64": "linux_arm64", + "linux_x86_64": "linux_amd64", + "macos_arm64": "darwin_arm64", + "macos_x86_64": "darwin_amd64" + }, "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--flake8-extra-files=\"[, , ...]\"" + "--download-terraform-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" ], - "env_var": "PANTS_FLAKE8_EXTRA_FILES", + "env_var": "PANTS_DOWNLOAD_TERRAFORM_URL_PLATFORM_MAPPING", "fromfile": false, - "help": "Paths to extra files to include in the sandbox. This can be useful for Flake8 plugins,\n like including config files for the `flake8-bandit` plugin.", + "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--flake8-extra-files"], + "scoped_cmd_line_args": ["--download-terraform-url-platform-mapping"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--extra-files"], + "typ": "dict", + "unscoped_cmd_line_args": ["--url-platform-mapping"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": [] + "value": {} }, { "details": "", "rank": "HARDCODED", - "value": [] + "value": { + "linux_arm64": "linux_arm64", + "linux_x86_64": "linux_amd64", + "macos_arm64": "darwin_arm64", + "macos_x86_64": "darwin_amd64" + } } ] } }, - "PANTS_FLAKE8_INSTALL_FROM_RESOLVE": { + "PANTS_DOWNLOAD_TERRAFORM_URL_TEMPLATE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--flake8-install-from-resolve=", - "config_key": "install_from_resolve", - "default": null, + "comma_separated_display_args": "--download-terraform-url-template=", + "config_key": "url_template", + "default": "https://releases.hashicorp.com/terraform/{version}/terraform_{version}_{platform}.zip", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--flake8-install-from-resolve="], - "env_var": "PANTS_FLAKE8_INSTALL_FROM_RESOLVE", - "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `flake8` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "display_args": ["--download-terraform-url-template="], + "env_var": "PANTS_DOWNLOAD_TERRAFORM_URL_TEMPLATE", + "fromfile": false, + "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--flake8-install-from-resolve"], + "scoped_cmd_line_args": ["--download-terraform-url-template"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--install-from-resolve"], + "unscoped_cmd_line_args": ["--url-template"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - } - ] - } - }, - "PANTS_FLAKE8_REQUIREMENTS": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--flake8-requirements=\"['', '', ...]\"", - "config_key": "requirements", - "default": [], - "deprecated_message": null, - "deprecation_active": false, - "display_args": ["--flake8-requirements=\"['', '', ...]\""], - "env_var": "PANTS_FLAKE8_REQUIREMENTS", - "fromfile": false, - "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--flake8-requirements"], - "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--requirements"], - "value_history": { - "ranked_values": [ - { - "details": "", - "rank": "NONE", - "value": [] }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": "https://releases.hashicorp.com/terraform/{version}/terraform_{version}_{platform}.zip" } ] } }, - "PANTS_FLAKE8_SKIP": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]flake8-skip", - "config_key": "skip", - "default": false, + "PANTS_DOWNLOAD_TERRAFORM_USE_UNSUPPORTED_VERSION": { + "choices": ["error", "warning"], + "comma_separated_choices": "error, warning", + "comma_separated_display_args": "--download-terraform-use-unsupported-version=", + "config_key": "use_unsupported_version", + "default": "error", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]flake8-skip"], - "env_var": "PANTS_FLAKE8_SKIP", + "display_args": [ + "--download-terraform-use-unsupported-version=" + ], + "env_var": "PANTS_DOWNLOAD_TERRAFORM_USE_UNSUPPORTED_VERSION", "fromfile": false, - "help": "If true, don't use Flake8 when running `scie-pants-linux-x86_64 lint`.", + "help": "\nWhat action to take in case the requested version of terraform is not supported.\n\nSupported terraform versions: unspecified\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--flake8-skip", "--no-flake8-skip"], + "scoped_cmd_line_args": ["--download-terraform-use-unsupported-version"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "typ": "UnsupportedVersionUsage", + "unscoped_cmd_line_args": ["--use-unsupported-version"], "value_history": { "ranked_values": [ { @@ -6282,64 +6347,62 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": "error" } ] } }, - "PANTS_FLAKE8_SOURCE_PLUGINS": { + "PANTS_DOWNLOAD_TERRAFORM_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--flake8-source-plugins=\"[, , ...]\"", - "config_key": "source_plugins", - "default": [], + "comma_separated_display_args": "--download-terraform-version=", + "config_key": "version", + "default": "1.4.6", "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--flake8-source-plugins=\"[, , ...]\"" - ], - "env_var": "PANTS_FLAKE8_SOURCE_PLUGINS", + "display_args": ["--download-terraform-version="], + "env_var": "PANTS_DOWNLOAD_TERRAFORM_VERSION", "fromfile": false, - "help": "An optional list of `python_sources` target addresses to load first-party plugins.\n\nYou must set the plugin's parent directory as a source root. For example, if your plugin is at `build-support/flake8/custom_plugin.py`, add `'build-support/flake8'` to `[source].root_patterns` in `pants.toml`. This is necessary for Pants to know how to tell Flake8 to discover your plugin. See https://www.pantsbuild.org/v2.18/docs/source-roots\n\nYou must also set `[flake8:local-plugins]` in your Flake8 config file.\n\nFor example:\n\n [flake8:local-plugins]\n extension =\n CUSTOMCODE = custom_plugin:MyChecker\n\nWhile your plugin's code can depend on other first-party code and third-party requirements, all first-party dependencies of the plugin must live in the same directory or a subdirectory.\n\nTo instead load third-party plugins, add them to a custom resolve alongside flake8 itself, as described in https://www.pantsbuild.org/v2.18/docs/python-lockfiles#lockfiles-for-tools.", + "help": "Use this version of terraform.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--flake8-source-plugins"], + "scoped_cmd_line_args": ["--download-terraform-version"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--source-plugins"], + "typ": "str", + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": "1.4.6" } ] } }, - "PANTS_FMT_BATCH_SIZE": { + "PANTS_DYNAMIC_UI": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--fmt-batch-size=", - "config_key": "batch_size", - "default": 128, + "comma_separated_display_args": "--[no-]dynamic-ui", + "config_key": "dynamic_ui", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--fmt-batch-size="], - "env_var": "PANTS_FMT_BATCH_SIZE", + "display_args": ["--[no-]dynamic-ui"], + "env_var": "PANTS_DYNAMIC_UI", "fromfile": false, - "help": "The target number of files to be included in each formatter batch.\n\nFormatter processes are batched for a few reasons:\n\n 1. to avoid OS argument length limits (in processes which don't support argument files)\n 2. to support more stable cache keys than would be possible if all files were operated on in a single batch.\n 3. to allow for parallelism in formatter processes which don't have internal parallelism, or -- if they do support internal parallelism -- to improve scheduling behavior when multiple processes are competing for cores and so internal parallelism cannot be used perfectly.\n\nIn order to improve cache hit rates (see 2.), batches are created at stable boundaries, and so this value is only a \"target\" batch size (rather than an exact value).", + "help": "Display a dynamically-updating console UI as Pants runs. This is true by default if Pants detects a TTY and there is no 'CI' environment variable indicating that Pants is running in a continuous integration environment.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--fmt-batch-size"], + "scoped_cmd_line_args": ["--dynamic-ui", "--no-dynamic-ui"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--batch-size"], + "typ": "bool", + "unscoped_cmd_line_args": ["--dynamic-ui", "--no-dynamic-ui"], "value_history": { "ranked_values": [ { @@ -6350,62 +6413,62 @@ { "details": null, "rank": "HARDCODED", - "value": 128 + "value": false } ] } }, - "PANTS_FMT_ONLY": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--fmt-only=\"['', '', ...]\"", - "config_key": "only", - "default": [], + "PANTS_DYNAMIC_UI_RENDERER": { + "choices": ["indicatif-spinner", "experimental-prodash"], + "comma_separated_choices": "indicatif-spinner, experimental-prodash", + "comma_separated_display_args": "--dynamic-ui-renderer=", + "config_key": "dynamic_ui_renderer", + "default": "indicatif-spinner", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--fmt-only=\"['', '', ...]\""], - "env_var": "PANTS_FMT_ONLY", + "display_args": ["--dynamic-ui-renderer="], + "env_var": "PANTS_DYNAMIC_UI_RENDERER", "fromfile": false, - "help": "Only run these formatters and skip all others.\n\nThe formatter names are outputted at the final summary of running this goal, e.g. `isort` and `shfmt`. You can also run `fmt --only=fake` to get a list of all activated formatters.\n\nYou can repeat this option, e.g. `fmt --only=isort --only=shfmt` or `fmt --only=['isort', 'shfmt']`.", + "help": "If `--dynamic-ui` is enabled, selects the renderer.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--fmt-only"], + "scoped_cmd_line_args": ["--dynamic-ui-renderer"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--only"], + "typ": "DynamicUIRenderer", + "unscoped_cmd_line_args": ["--dynamic-ui-renderer"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": "indicatif-spinner" } ] } }, - "PANTS_GENERATE_LOCKFILES_CUSTOM_COMMAND": { + "PANTS_ENGINE_VISUALIZE_TO": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--generate-lockfiles-custom-command=", - "config_key": "custom_command", + "comma_separated_display_args": "--engine-visualize-to=", + "config_key": "engine_visualize_to", "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--generate-lockfiles-custom-command="], - "env_var": "PANTS_GENERATE_LOCKFILES_CUSTOM_COMMAND", + "display_args": ["--engine-visualize-to="], + "env_var": "PANTS_ENGINE_VISUALIZE_TO", "fromfile": false, - "help": "If set, lockfile headers will say to run this command to regenerate the lockfile, rather than running `scie-pants-linux-x86_64 generate-lockfiles --resolve=` like normal.", + "help": "A directory to write execution and rule graphs to as `dot` files. The contents of the directory will be overwritten if any filenames collide.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--generate-lockfiles-custom-command"], + "scoped_cmd_line_args": ["--engine-visualize-to"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--custom-command"], + "typ": "dir_option", + "unscoped_cmd_line_args": ["--engine-visualize-to"], "value_history": { "ranked_values": [ { @@ -6416,101 +6479,61 @@ ] } }, - "PANTS_GENERATE_LOCKFILES_DIFF": { + "PANTS_ENVIRONMENTS_PREVIEW_NAMES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]generate-lockfiles-diff", - "config_key": "diff", - "default": false, + "comma_separated_display_args": "--environments-preview-names=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "names", + "default": {}, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]generate-lockfiles-diff"], - "env_var": "PANTS_GENERATE_LOCKFILES_DIFF", - "fromfile": false, - "help": "Print a summary of changed distributions after generating the lockfile.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": [ - "--generate-lockfiles-diff", - "--no-generate-lockfiles-diff" + "display_args": [ + "--environments-preview-names=\"{'key1': val1, 'key2': val2, ...}\"" ], - "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--diff", "--no-diff"], - "value_history": { - "ranked_values": [ - { - "details": null, - "rank": "NONE", - "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": false - } - ] - } - }, - "PANTS_GENERATE_LOCKFILES_DIFF_INCLUDE_UNCHANGED": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]generate-lockfiles-diff-include-unchanged", - "config_key": "diff_include_unchanged", - "default": false, - "deprecated_message": null, - "deprecation_active": false, - "display_args": ["--[no-]generate-lockfiles-diff-include-unchanged"], - "env_var": "PANTS_GENERATE_LOCKFILES_DIFF_INCLUDE_UNCHANGED", + "env_var": "PANTS_ENVIRONMENTS_PREVIEW_NAMES", "fromfile": false, - "help": "Include unchanged distributions in the diff summary output. Implies `diff=true`.", + "help": "A mapping of logical names to addresses to environment targets. For example:\n\n [environments-preview.names]\n linux_local = \"//:linux_env\"\n macos_local = \"//:macos_env\"\n centos6 = \"//:centos6_docker_env\"\n linux_ci = \"build-support:linux_ci_env\"\n macos_ci = \"build-support:macos_ci_env\"\n\nTo use an environment for a given target, specify the name in the `environment` field on that target. Pants will consume the environment target at the address mapped from that name.\n\nPants will ignore any environment targets that are not given a name via this option.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--generate-lockfiles-diff-include-unchanged", - "--no-generate-lockfiles-diff-include-unchanged" - ], + "scoped_cmd_line_args": ["--environments-preview-names"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--diff-include-unchanged", - "--no-diff-include-unchanged" - ], + "typ": "dict", + "unscoped_cmd_line_args": ["--names"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": {} }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": {} } ] } }, - "PANTS_GENERATE_LOCKFILES_RESOLVE": { + "PANTS_EXPERIMENTAL_BSP_GROUPS_CONFIG_FILES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--generate-lockfiles-resolve=\"['', '', ...]\"", - "config_key": "resolve", + "comma_separated_display_args": "--experimental-bsp-groups-config-files=\"[, , ...]\"", + "config_key": "groups_config_files", "default": [], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--generate-lockfiles-resolve=\"['', '', ...]\"" + "--experimental-bsp-groups-config-files=\"[, , ...]\"" ], - "env_var": "PANTS_GENERATE_LOCKFILES_RESOLVE", + "env_var": "PANTS_EXPERIMENTAL_BSP_GROUPS_CONFIG_FILES", "fromfile": false, - "help": "Only generate lockfiles for the specified resolve(s).\n\nResolves are the logical names for the different lockfiles used in your project. For your own code's dependencies, these come from backend-specific configuration such as `[python].resolves`. For tool lockfiles, resolve names are the options scope for that tool such as `black`, `pytest`, and `mypy-protobuf`.\n\nFor example, you can run `scie-pants-linux-x86_64 generate-lockfiles --resolve=black --resolve=pytest --resolve=data-science` to only generate lockfiles for those two tools and your resolve named `data-science`.\n\nIf you specify an invalid resolve name, like 'fake', Pants will output all possible values.\n\nIf not specified, Pants will generate lockfiles for all resolves.", + "help": "A list of config files that define groups of Pants targets to expose to IDEs via Build Server Protocol.\n\nPants generally uses fine-grained targets to define the components of a build (in many cases on a file-by-file basis). Many IDEs, however, favor coarse-grained targets that contain large numbers of source files. To accommodate this distinction, the Pants BSP server will compute a set of BSP build targets to use from the groups specified in the config files set for this option. Each group will become one or more BSP build targets.\n\nEach config file is a TOML file with a `groups` dictionary with the following format for an entry:\n\n # The dictionary key is used to identify the group. It must be unique.\n [groups.ID1]:\n # One or more Pants address specs defining what targets to include in the group.\n addresses = [\n \"src/jvm::\",\n \"tests/jvm::\",\n ]\n # Filter targets to a specific resolve. Targets in a group must be from a single resolve.\n # Format of filter is `TYPE:RESOLVE_NAME`. The only supported TYPE is `jvm`. RESOLVE_NAME must be\n # a valid resolve name.\n resolve = \"jvm:jvm-default\"\n display_name = \"Display Name\" # (Optional) Name shown to the user in the IDE.\n base_directory = \"path/from/build/root\" # (Optional) Hint to the IDE for where the build target should \"live.\"\n\nPants will merge the contents of the config files together. If the same ID is used for a group definition, in multiple config files, the definition in the latter config file will take effect.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--generate-lockfiles-resolve"], + "scoped_cmd_line_args": ["--experimental-bsp-groups-config-files"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--resolve"], + "unscoped_cmd_line_args": ["--groups-config-files"], "value_history": { "ranked_values": [ { @@ -6526,24 +6549,26 @@ ] } }, - "PANTS_GOFMT_ARGS": { + "PANTS_EXPERIMENTAL_BSP_RUNNER_ENV_VARS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--gofmt-args=\"[, , ...]\"", - "config_key": "args", - "default": [], + "comma_separated_display_args": "--experimental-bsp-runner-env-vars=\"['', '', ...]\"", + "config_key": "runner_env_vars", + "default": ["PATH"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--gofmt-args=\"[, , ...]\""], - "env_var": "PANTS_GOFMT_ARGS", + "display_args": [ + "--experimental-bsp-runner-env-vars=\"['', '', ...]\"" + ], + "env_var": "PANTS_EXPERIMENTAL_BSP_RUNNER_ENV_VARS", "fromfile": false, - "help": "Arguments to pass directly to gofmt, e.g. `--gofmt-args='-s -e'`.\n\nOnly the following style related options are supported: `-e`, `-r`, `-s`.", + "help": "Environment variables to set in the BSP runner script when setting up BSP in a repository. Entries are either strings in the form `ENV_VAR=value` to set an explicit value; or just `ENV_VAR` to copy the value from Pants' own environment when the experimental-bsp goal was run.\n\nThis option only takes effect when the BSP runner script is written. If the option changes, you must run `pants experimental-bsp` again to write a new copy of the BSP runner script.\n\nNote: The environment variables passed to the Pants BSP server will be those set for your IDE and not your shell. For example, on macOS, the IDE is generally launched by `launchd` after clicking on a Dock icon, and not from the shell. Thus, any environment variables set for your shell will likely not be seen by the Pants BSP server. At the very least, on macOS consider writing an explicit PATH into the BSP runner script via this option.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--gofmt-args"], + "scoped_cmd_line_args": ["--experimental-bsp-runner-env-vars"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "unscoped_cmd_line_args": ["--runner-env-vars"], "value_history": { "ranked_values": [ { @@ -6554,29 +6579,32 @@ { "details": "", "rank": "HARDCODED", - "value": [] + "value": ["PATH"] } ] } }, - "PANTS_GOFMT_SKIP": { + "PANTS_EXPERIMENTAL_BSP_SERVER": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]gofmt-skip", - "config_key": "skip", + "comma_separated_display_args": "--[no-]experimental-bsp-server", + "config_key": "server", "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]gofmt-skip"], - "env_var": "PANTS_GOFMT_SKIP", + "display_args": ["--[no-]experimental-bsp-server"], + "env_var": "PANTS_EXPERIMENTAL_BSP_SERVER", "fromfile": false, - "help": "If true, don't use gofmt when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "Run the Build Server Protocol server. Pants will receive BSP RPC requests via the console. This should only ever be invoked via the IDE.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--gofmt-skip", "--no-gofmt-skip"], + "scoped_cmd_line_args": [ + "--experimental-bsp-server", + "--no-experimental-bsp-server" + ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "unscoped_cmd_line_args": ["--server", "--no-server"], "value_history": { "ranked_values": [ { @@ -6592,24 +6620,24 @@ ] } }, - "PANTS_GOLANG_ASDF_BIN_RELPATH": { + "PANTS_EXPERIMENTAL_EXPLORER_ADDRESS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--golang-asdf-bin-relpath=", - "config_key": "asdf_bin_relpath", - "default": "bin", + "comma_separated_display_args": "--experimental-explorer-address=", + "config_key": "address", + "default": "localhost", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--golang-asdf-bin-relpath="], - "env_var": "PANTS_GOLANG_ASDF_BIN_RELPATH", + "display_args": ["--experimental-explorer-address="], + "env_var": "PANTS_EXPERIMENTAL_EXPLORER_ADDRESS", "fromfile": false, - "help": "The path relative to an ASDF install directory to use to find the `bin` directory within an installed Go distribution. The default value for this option works for the `go-sdk` ASDF plugin. Other ASDF plugins that install Go may have a different relative path to use.", + "help": "Server address to bind to.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--golang-asdf-bin-relpath"], + "scoped_cmd_line_args": ["--experimental-explorer-address"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--asdf-bin-relpath"], + "unscoped_cmd_line_args": ["--address"], "value_history": { "ranked_values": [ { @@ -6620,29 +6648,29 @@ { "details": null, "rank": "HARDCODED", - "value": "bin" + "value": "localhost" } ] } }, - "PANTS_GOLANG_ASDF_TOOL_NAME": { + "PANTS_EXPERIMENTAL_EXPLORER_PORT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--golang-asdf-tool-name=", - "config_key": "asdf_tool_name", - "default": "go-sdk", + "comma_separated_display_args": "--experimental-explorer-port=", + "config_key": "port", + "default": 8000, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--golang-asdf-tool-name="], - "env_var": "PANTS_GOLANG_ASDF_TOOL_NAME", + "display_args": ["--experimental-explorer-port="], + "env_var": "PANTS_EXPERIMENTAL_EXPLORER_PORT", "fromfile": false, - "help": "The ASDF tool name to use when searching for installed Go distributions using the ASDF tool manager (https://asdf-vm.com/). The default value for this option is for the `go-sdk` ASDF plugin (https://github.com/yacchi/asdf-go-sdk.git). There are other plugins. If you wish to use one of them, then set this option to the ASDF tool name under which that other plugin was installed into ASDF.", + "help": "Server port to bind to.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--golang-asdf-tool-name"], + "scoped_cmd_line_args": ["--experimental-explorer-port"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--asdf-tool-name"], + "typ": "int", + "unscoped_cmd_line_args": ["--port"], "value_history": { "ranked_values": [ { @@ -6653,29 +6681,31 @@ { "details": null, "rank": "HARDCODED", - "value": "go-sdk" + "value": 8000 } ] } }, - "PANTS_GOLANG_CGO_CXX_FLAGS": { + "PANTS_EXPORT_PY_EDITABLE_IN_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--golang-cgo-cxx-flags=\"['', '', ...]\"", - "config_key": "cgo_cxx_flags", - "default": ["-g", "-O2"], + "comma_separated_display_args": "--export-py-editable-in-resolve=\"['', '', ...]\"", + "config_key": "py_editable_in_resolve", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--golang-cgo-cxx-flags=\"['', '', ...]\""], - "env_var": "PANTS_GOLANG_CGO_CXX_FLAGS", + "display_args": [ + "--export-py-editable-in-resolve=\"['', '', ...]\"" + ], + "env_var": "PANTS_EXPORT_PY_EDITABLE_IN_RESOLVE", "fromfile": false, - "help": "Compiler options used when compiling C++ code when Cgo is enabled. Equivalent to setting the CGO_CXXFLAGS environment variable when invoking `go`.", + "help": "When exporting a mutable virtualenv for a resolve, do PEP-660 editable installs of all 'python_distribution' targets that own code in the exported resolve.\n\nIf a resolve name is not in this list, 'python_distribution' targets will not be installed in the virtualenv. This defaults to an empty list for backwards compatibility and to prevent unnecessary work to generate and install the PEP-660 editable wheels.\n\nThis only applies when '[python].enable_resolves' is true and when exporting a 'mutable_virtualenv' ('symlinked_immutable_virtualenv' exports are not \"full\" virtualenvs because they must not be edited, and do not include 'pip').\n\nNOTE: If you are using legacy exports (not using the '--resolve' option), then this option has no effect. Legacy exports will not include any editable installs.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--golang-cgo-cxx-flags"], - "target_field_name": "golang_cgo_cxx_flags", + "scoped_cmd_line_args": ["--export-py-editable-in-resolve"], + "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--cgo-cxx-flags"], + "unscoped_cmd_line_args": ["--py-editable-in-resolve"], "value_history": { "ranked_values": [ { @@ -6686,29 +6716,64 @@ { "details": "", "rank": "HARDCODED", - "value": ["-g", "-O2"] + "value": [] } ] } }, - "PANTS_GOLANG_CGO_C_FLAGS": { + "PANTS_EXPORT_PY_RESOLVE_FORMAT": { + "choices": ["mutable_virtualenv", "symlinked_immutable_virtualenv"], + "comma_separated_choices": "mutable_virtualenv, symlinked_immutable_virtualenv", + "comma_separated_display_args": "--export-py-resolve-format=", + "config_key": "py_resolve_format", + "default": "mutable_virtualenv", + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--export-py-resolve-format=" + ], + "env_var": "PANTS_EXPORT_PY_RESOLVE_FORMAT", + "fromfile": false, + "help": "Export Python resolves using this format. Options are:\n - `mutable_virtualenv`: Export a standalone mutable virtualenv that you can\n further modify.\n - `symlinked_immutable_virtualenv`: Export a symlink into a cached Python virtualenv.\n This virtualenv will have no pip binary, and will be immutable. Any attempt to\n modify it will corrupt the cache! It may, however, take significantly less time\n to export than a standalone, mutable virtualenv.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--export-py-resolve-format"], + "target_field_name": null, + "typ": "PythonResolveExportFormat", + "unscoped_cmd_line_args": ["--py-resolve-format"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "mutable_virtualenv" + } + ] + } + }, + "PANTS_EXPORT_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--golang-cgo-c-flags=\"['', '', ...]\"", - "config_key": "cgo_c_flags", - "default": ["-g", "-O2"], + "comma_separated_display_args": "--export-resolve=\"['', '', ...]\"", + "config_key": "resolve", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--golang-cgo-c-flags=\"['', '', ...]\""], - "env_var": "PANTS_GOLANG_CGO_C_FLAGS", + "display_args": ["--export-resolve=\"['', '', ...]\""], + "env_var": "PANTS_EXPORT_RESOLVE", "fromfile": false, - "help": "Compiler options used when compiling C code when Cgo is enabled. Equivalent to setting the CGO_CFLAGS environment variable when invoking `go`.", + "help": "Export the specified resolve(s). The export format is backend-specific, e.g., Python resolves are exported as virtualenvs.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--golang-cgo-c-flags"], - "target_field_name": "golang_cgo_c_flags", + "scoped_cmd_line_args": ["--export-resolve"], + "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--cgo-c-flags"], + "unscoped_cmd_line_args": ["--resolve"], "value_history": { "ranked_values": [ { @@ -6719,32 +6784,35 @@ { "details": "", "rank": "HARDCODED", - "value": ["-g", "-O2"] + "value": [] } ] } }, - "PANTS_GOLANG_CGO_ENABLED": { + "PANTS_EXPORT_SYMLINK_PYTHON_VIRTUALENV": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]golang-cgo-enabled", - "config_key": "cgo_enabled", - "default": true, - "deprecated_message": null, - "deprecation_active": false, - "display_args": ["--[no-]golang-cgo-enabled"], - "env_var": "PANTS_GOLANG_CGO_ENABLED", + "comma_separated_display_args": "--[no-]export-symlink-python-virtualenv", + "config_key": "symlink_python_virtualenv", + "default": false, + "deprecated_message": "Deprecated, is scheduled to be removed in version: 2.20.0.dev0.", + "deprecation_active": true, + "display_args": ["--[no-]export-symlink-python-virtualenv"], + "env_var": "PANTS_EXPORT_SYMLINK_PYTHON_VIRTUALENV", "fromfile": false, - "help": "Enable Cgo support, which allows Go and C code to interact. This option must be enabled for any packages making use of Cgo to actually be compiled with Cgo support.\n\nSee https://go.dev/blog/cgo and https://pkg.go.dev/cmd/cgo for additional information about Cgo.", - "removal_hint": null, - "removal_version": null, + "help": "Export a symlink into a cached Python virtualenv. This virtualenv will have no pip binary, and will be immutable. Any attempt to modify it will corrupt the cache! It may, however, take significantly less time to export than a standalone, mutable virtualenv will.", + "removal_hint": "Set the `[export].py_resolve_format` option to 'symlinked_immutable_virtualenv'", + "removal_version": "2.20.0.dev0", "scoped_cmd_line_args": [ - "--golang-cgo-enabled", - "--no-golang-cgo-enabled" + "--export-symlink-python-virtualenv", + "--no-export-symlink-python-virtualenv" ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--cgo-enabled", "--no-cgo-enabled"], + "unscoped_cmd_line_args": [ + "--symlink-python-virtualenv", + "--no-symlink-python-virtualenv" + ], "value_history": { "ranked_values": [ { @@ -6755,29 +6823,29 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": false } ] } }, - "PANTS_GOLANG_CGO_FORTRAN_BINARY_NAME": { + "PANTS_FILEDEPS_ABSOLUTE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--golang-cgo-fortran-binary-name=", - "config_key": "cgo_fortran_binary_name", - "default": "gfortran", + "comma_separated_display_args": "--[no-]filedeps-absolute", + "config_key": "absolute", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--golang-cgo-fortran-binary-name="], - "env_var": "PANTS_GOLANG_CGO_FORTRAN_BINARY_NAME", + "display_args": ["--[no-]filedeps-absolute"], + "env_var": "PANTS_FILEDEPS_ABSOLUTE", "fromfile": false, - "help": "Name of the tool to use to compile fortran code included via CGo in a Go package. Pants will search for the tool using the paths specified by the `[golang].cgo_tool_search_paths` option.", + "help": "If True, output with absolute path. If unspecified, output with path relative to the build root.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--golang-cgo-fortran-binary-name"], - "target_field_name": "golang_cgo_fortran_binary_name", - "typ": "str", - "unscoped_cmd_line_args": ["--cgo-fortran-binary-name"], + "scoped_cmd_line_args": ["--filedeps-absolute", "--no-filedeps-absolute"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--absolute", "--no-absolute"], "value_history": { "ranked_values": [ { @@ -6788,97 +6856,90 @@ { "details": null, "rank": "HARDCODED", - "value": "gfortran" + "value": false } ] } }, - "PANTS_GOLANG_CGO_FORTRAN_FLAGS": { + "PANTS_FILEDEPS_GLOBS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--golang-cgo-fortran-flags=\"['', '', ...]\"", - "config_key": "cgo_fortran_flags", - "default": ["-g", "-O2"], + "comma_separated_display_args": "--[no-]filedeps-globs", + "config_key": "globs", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--golang-cgo-fortran-flags=\"['', '', ...]\"" - ], - "env_var": "PANTS_GOLANG_CGO_FORTRAN_FLAGS", + "display_args": ["--[no-]filedeps-globs"], + "env_var": "PANTS_FILEDEPS_GLOBS", "fromfile": false, - "help": "Compiler options used when compiling Fortran code when Cgo is enabled. Equivalent to setting the CGO_FFLAGS environment variable when invoking `go`.", + "help": "Instead of outputting filenames, output the original globs used in the BUILD file. This will not include exclude globs (i.e. globs that start with `!`).", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--golang-cgo-fortran-flags"], - "target_field_name": "golang_cgo_fortran_flags", - "typ": "list", - "unscoped_cmd_line_args": ["--cgo-fortran-flags"], + "scoped_cmd_line_args": ["--filedeps-globs", "--no-filedeps-globs"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--globs", "--no-globs"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": ["-g", "-O2"] + "value": false } ] } }, - "PANTS_GOLANG_CGO_GCC_BINARY_NAME": { + "PANTS_FILEDEPS_OUTPUT_FILE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--golang-cgo-gcc-binary-name=", - "config_key": "cgo_gcc_binary_name", - "default": "gcc", - "deprecated_message": null, - "deprecation_active": false, - "display_args": ["--golang-cgo-gcc-binary-name="], - "env_var": "PANTS_GOLANG_CGO_GCC_BINARY_NAME", + "comma_separated_display_args": "--filedeps-output-file=", + "config_key": "output_file", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--filedeps-output-file="], + "env_var": "PANTS_FILEDEPS_OUTPUT_FILE", "fromfile": false, - "help": "Name of the tool to use to compile C code included via CGo in a Go package. Pants will search for the tool using the paths specified by the `[golang].cgo_tool_search_paths` option.", + "help": "Output the goal's stdout to this file. If unspecified, outputs to stdout.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--golang-cgo-gcc-binary-name"], - "target_field_name": "golang_cgo_gcc_binary_name", + "scoped_cmd_line_args": ["--filedeps-output-file"], + "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--cgo-gcc-binary-name"], + "unscoped_cmd_line_args": ["--output-file"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": "gcc" } ] } }, - "PANTS_GOLANG_CGO_GXX_BINARY_NAME": { + "PANTS_FILEDEPS_SEP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--golang-cgo-gxx-binary-name=", - "config_key": "cgo_gxx_binary_name", - "default": "g++", + "comma_separated_display_args": "--filedeps-sep=", + "config_key": "sep", + "default": "\\n", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--golang-cgo-gxx-binary-name="], - "env_var": "PANTS_GOLANG_CGO_GXX_BINARY_NAME", + "display_args": ["--filedeps-sep="], + "env_var": "PANTS_FILEDEPS_SEP", "fromfile": false, - "help": "Name of the tool to use to compile C++ code included via CGo in a Go package. Pants will search for the tool using the paths specified by the `[golang].cgo_tool_search_paths` option.", + "help": "String to use to separate lines in line-oriented output.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--golang-cgo-gxx-binary-name"], - "target_field_name": "golang_cgo_gxx_binary_name", + "scoped_cmd_line_args": ["--filedeps-sep"], + "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--cgo-gxx-binary-name"], + "unscoped_cmd_line_args": ["--sep"], "value_history": { "ranked_values": [ { @@ -6889,64 +6950,67 @@ { "details": null, "rank": "HARDCODED", - "value": "g++" + "value": "\\n" } ] } }, - "PANTS_GOLANG_CGO_LINKER_FLAGS": { + "PANTS_FILEDEPS_TRANSITIVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--golang-cgo-linker-flags=\"['', '', ...]\"", - "config_key": "cgo_linker_flags", - "default": ["-g", "-O2"], + "comma_separated_display_args": "--[no-]filedeps-transitive", + "config_key": "transitive", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--golang-cgo-linker-flags=\"['', '', ...]\""], - "env_var": "PANTS_GOLANG_CGO_LINKER_FLAGS", + "display_args": ["--[no-]filedeps-transitive"], + "env_var": "PANTS_FILEDEPS_TRANSITIVE", "fromfile": false, - "help": "Compiler options used when linking native code when Cgo is enabled. Equivalent to setting the CGO_LDFLAGS environment variable when invoking `go`.", + "help": "If True, list files from all dependencies, including transitive dependencies. If unspecified, only list files from the target.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--golang-cgo-linker-flags"], - "target_field_name": "golang_cgo_linker_flags", - "typ": "list", - "unscoped_cmd_line_args": ["--cgo-linker-flags"], + "scoped_cmd_line_args": [ + "--filedeps-transitive", + "--no-filedeps-transitive" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--transitive", "--no-transitive"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": ["-g", "-O2"] + "value": false } ] } }, - "PANTS_GOLANG_CGO_TOOL_SEARCH_PATHS": { + "PANTS_FILTER_ADDRESS_REGEX": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--golang-cgo-tool-search-paths=\"['', '', ...]\"", - "config_key": "cgo_tool_search_paths", - "default": [""], + "comma_separated_display_args": "--filter-address-regex=\"[[+-]regex1,regex2,..., [+-]regex1,regex2,..., ...]\"", + "config_key": "address_regex", + "default": [], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--golang-cgo-tool-search-paths=\"['', '', ...]\"" + "--filter-address-regex=\"[[+-]regex1,regex2,..., [+-]regex1,regex2,..., ...]\"" ], - "env_var": "PANTS_GOLANG_CGO_TOOL_SEARCH_PATHS", + "env_var": "PANTS_FILTER_ADDRESS_REGEX", "fromfile": false, - "help": "A list of paths to search for tools needed by CGo (e.g., gcc, g++).\n\nSpecify absolute paths to directories with tools needed by CGo , e.g. `/usr/bin`. Earlier entries will be searched first.\n\nThe following special strings are supported:\n\n* ``, the contents of the PATH environment variable", + "help": "Filter on target addresses matching these regexes.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--golang-cgo-tool-search-paths"], - "target_field_name": "golang_cgo_tool_search_paths", + "scoped_cmd_line_args": ["--filter-address-regex"], + "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--cgo-tool-search-paths"], + "unscoped_cmd_line_args": ["--address-regex"], "value_history": { "ranked_values": [ { @@ -6957,29 +7021,29 @@ { "details": "", "rank": "HARDCODED", - "value": [""] + "value": [] } ] } }, - "PANTS_GOLANG_EXTERNAL_LINKER_BINARY_NAME": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--golang-external-linker-binary-name=", - "config_key": "external_linker_binary_name", - "default": "gcc", + "PANTS_FILTER_GRANULARITY": { + "choices": ["all", "file", "BUILD"], + "comma_separated_choices": "all, file, BUILD", + "comma_separated_display_args": "--filter-granularity=", + "config_key": "granularity", + "default": "all", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--golang-external-linker-binary-name="], - "env_var": "PANTS_GOLANG_EXTERNAL_LINKER_BINARY_NAME", + "display_args": ["--filter-granularity="], + "env_var": "PANTS_FILTER_GRANULARITY", "fromfile": false, - "help": "Name of the tool to use as the \"external linker\" when invoking `go tool link`. Pants will search for the tool using the paths specified by the `[golang].cgo_tool_search_paths` option.", + "help": "Filter to rendering only targets declared in BUILD files, only file-level targets, or all targets.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--golang-external-linker-binary-name"], - "target_field_name": "golang_external_linker_binary_name", - "typ": "str", - "unscoped_cmd_line_args": ["--external-linker-binary-name"], + "scoped_cmd_line_args": ["--filter-granularity"], + "target_field_name": null, + "typ": "TargetGranularity", + "unscoped_cmd_line_args": ["--granularity"], "value_history": { "ranked_values": [ { @@ -6990,62 +7054,57 @@ { "details": null, "rank": "HARDCODED", - "value": "gcc" + "value": "all" } ] } }, - "PANTS_GOLANG_GO_SEARCH_PATHS": { + "PANTS_FILTER_OUTPUT_FILE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--golang-go-search-paths=\"['', '', ...]\"", - "config_key": "go_search_paths", - "default": [""], + "comma_separated_display_args": "--filter-output-file=", + "config_key": "output_file", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--golang-go-search-paths=\"['', '', ...]\""], - "env_var": "PANTS_GOLANG_GO_SEARCH_PATHS", + "display_args": ["--filter-output-file="], + "env_var": "PANTS_FILTER_OUTPUT_FILE", "fromfile": false, - "help": "A list of paths to search for Go.\n\nSpecify absolute paths to directories with the `go` binary, e.g. `/usr/bin`. Earlier entries will be searched first.\n\nThe following special strings are supported:\n\n* ``, the contents of the PATH environment variable\n* ``, all Go versions currently configured by ASDF `(asdf shell, ${HOME}/.tool-versions)`, with a fallback to all installed versions\n* ``, the ASDF binary with the version in `BUILD_ROOT/.tool-versions`", + "help": "Output the goal's stdout to this file. If unspecified, outputs to stdout.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--golang-go-search-paths"], - "target_field_name": "golang_go_search_paths", - "typ": "list", - "unscoped_cmd_line_args": ["--go-search-paths"], + "scoped_cmd_line_args": ["--filter-output-file"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--output-file"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] - }, - { - "details": "", - "rank": "HARDCODED", - "value": [""] + "value": null } ] } }, - "PANTS_GOLANG_MINIMUM_EXPECTED_VERSION": { + "PANTS_FILTER_SEP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--golang-minimum-expected-version=", - "config_key": "minimum_expected_version", - "default": "1.17", + "comma_separated_display_args": "--filter-sep=", + "config_key": "sep", + "default": "\\n", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--golang-minimum-expected-version="], - "env_var": "PANTS_GOLANG_MINIMUM_EXPECTED_VERSION", + "display_args": ["--filter-sep="], + "env_var": "PANTS_FILTER_SEP", "fromfile": false, - "help": "The minimum Go version the distribution discovered by Pants must support.\n\nFor example, if you set `'1.17'`, then Pants will look for a Go binary that is 1.17+, e.g. 1.17 or 1.18.\n\nYou should still set the Go version for each module in your `go.mod` with the `go` directive.\n\nDo not include the patch version.", + "help": "String to use to separate lines in line-oriented output.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--golang-minimum-expected-version"], + "scoped_cmd_line_args": ["--filter-sep"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--minimum-expected-version"], + "unscoped_cmd_line_args": ["--sep"], "value_history": { "ranked_values": [ { @@ -7056,31 +7115,31 @@ { "details": null, "rank": "HARDCODED", - "value": "1.17" + "value": "\\n" } ] } }, - "PANTS_GOLANG_SUBPROCESS_ENV_VARS": { + "PANTS_FILTER_TAG_REGEX": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--golang-subprocess-env-vars=\"['', '', ...]\"", - "config_key": "subprocess_env_vars", - "default": ["LANG", "LC_CTYPE", "LC_ALL", "PATH"], + "comma_separated_display_args": "--filter-tag-regex=\"[[+-]regex1,regex2,..., [+-]regex1,regex2,..., ...]\"", + "config_key": "tag_regex", + "default": [], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--golang-subprocess-env-vars=\"['', '', ...]\"" + "--filter-tag-regex=\"[[+-]regex1,regex2,..., [+-]regex1,regex2,..., ...]\"" ], - "env_var": "PANTS_GOLANG_SUBPROCESS_ENV_VARS", + "env_var": "PANTS_FILTER_TAG_REGEX", "fromfile": false, - "help": "Environment variables to set when invoking the `go` tool. Entries are either strings in the form `ENV_VAR=value` to set an explicit value; or just `ENV_VAR` to copy the value from Pants's own environment.", + "help": "Filter on targets with tags matching these regexes.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--golang-subprocess-env-vars"], - "target_field_name": "golang_subprocess_env_vars", + "scoped_cmd_line_args": ["--filter-tag-regex"], + "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--subprocess-env-vars"], + "unscoped_cmd_line_args": ["--tag-regex"], "value_history": { "ranked_values": [ { @@ -7091,74 +7150,64 @@ { "details": "", "rank": "HARDCODED", - "value": ["LANG", "LC_CTYPE", "LC_ALL", "PATH"] + "value": [] } ] } }, - "PANTS_GOLANG_TAILOR_BINARY_TARGETS": { + "PANTS_FILTER_TARGET_TYPE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]golang-tailor-binary-targets", - "config_key": "tailor_binary_targets", - "default": true, + "comma_separated_display_args": "--filter-target-type=\"[[+-]type1,type2,..., [+-]type1,type2,..., ...]\"", + "config_key": "target_type", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]golang-tailor-binary-targets"], - "env_var": "PANTS_GOLANG_TAILOR_BINARY_TARGETS", + "display_args": [ + "--filter-target-type=\"[[+-]type1,type2,..., [+-]type1,type2,..., ...]\"" + ], + "env_var": "PANTS_FILTER_TARGET_TYPE", "fromfile": false, - "help": "If true, add a `go_binary` target with the `tailor` goal in every directory with a `.go` file with `package main`.", + "help": "Filter on these target types, e.g. `resources` or `python_sources`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--golang-tailor-binary-targets", - "--no-golang-tailor-binary-targets" - ], + "scoped_cmd_line_args": ["--filter-target-type"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--tailor-binary-targets", - "--no-tailor-binary-targets" - ], + "typ": "list", + "unscoped_cmd_line_args": ["--target-type"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": true + "value": [] } ] } }, - "PANTS_GOLANG_TAILOR_GO_MOD_TARGETS": { + "PANTS_FIX_BATCH_SIZE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]golang-tailor-go-mod-targets", - "config_key": "tailor_go_mod_targets", - "default": true, + "comma_separated_display_args": "--fix-batch-size=", + "config_key": "batch_size", + "default": 128, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]golang-tailor-go-mod-targets"], - "env_var": "PANTS_GOLANG_TAILOR_GO_MOD_TARGETS", + "display_args": ["--fix-batch-size="], + "env_var": "PANTS_FIX_BATCH_SIZE", "fromfile": false, - "help": "If true, add a `go_mod` target with the `tailor` goal wherever there is a `go.mod` file.", + "help": "The target number of files to be included in each fixer batch.\n\nFixer processes are batched for a few reasons:\n\n 1. to avoid OS argument length limits (in processes which don't support argument files)\n 2. to support more stable cache keys than would be possible if all files were operated on in a single batch.\n 3. to allow for parallelism in fixer processes which don't have internal parallelism, or -- if they do support internal parallelism -- to improve scheduling behavior when multiple processes are competing for cores and so internal parallelism cannot be used perfectly.\n\nIn order to improve cache hit rates (see 2.), batches are created at stable boundaries, and so this value is only a \"target\" batch size (rather than an exact value).", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--golang-tailor-go-mod-targets", - "--no-golang-tailor-go-mod-targets" - ], + "scoped_cmd_line_args": ["--fix-batch-size"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--tailor-go-mod-targets", - "--no-tailor-go-mod-targets" - ], + "typ": "int", + "unscoped_cmd_line_args": ["--batch-size"], "value_history": { "ranked_values": [ { @@ -7169,71 +7218,65 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": 128 } ] } }, - "PANTS_GOLANG_TAILOR_PACKAGE_TARGETS": { + "PANTS_FIX_ONLY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]golang-tailor-package-targets", - "config_key": "tailor_package_targets", - "default": true, + "comma_separated_display_args": "--fix-only=\"['', '', ...]\"", + "config_key": "only", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]golang-tailor-package-targets"], - "env_var": "PANTS_GOLANG_TAILOR_PACKAGE_TARGETS", + "display_args": ["--fix-only=\"['', '', ...]\""], + "env_var": "PANTS_FIX_ONLY", "fromfile": false, - "help": "If true, add a `go_package` target with the `tailor` goal in every directory with a `.go` file.", + "help": "Only run these fixers and skip all others.\n\nThe fixer names are outputted at the final summary of running this goal, e.g. `autoflake` and `pyupgrade`. You can also run `fix --only=fake` to get a list of all activated fixers.\n\nYou can repeat this option, e.g. `fix --only=autoflake --only=pyupgrade` or `fix --only=['autoflake', 'pyupgrade']`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--golang-tailor-package-targets", - "--no-golang-tailor-package-targets" - ], + "scoped_cmd_line_args": ["--fix-only"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--tailor-package-targets", - "--no-tailor-package-targets" - ], + "typ": "list", + "unscoped_cmd_line_args": ["--only"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": true + "value": [] } ] } }, - "PANTS_GOOGLE_JAVA_FORMAT_AOSP": { + "PANTS_FIX_SKIP_FORMATTERS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]google-java-format-aosp", - "config_key": "aosp", + "comma_separated_display_args": "--[no-]fix-skip-formatters", + "config_key": "skip_formatters", "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]google-java-format-aosp"], - "env_var": "PANTS_GOOGLE_JAVA_FORMAT_AOSP", + "display_args": ["--[no-]fix-skip-formatters"], + "env_var": "PANTS_FIX_SKIP_FORMATTERS", "fromfile": false, - "help": "Use AOSP style instead of Google Style (4-space indentation). (\"AOSP\" is the Android Open Source Project.)", + "help": "If true, skip running all formatters.\n\nFYI: when running `pants fix fmt ::`, there should be diminishing performance benefit to using this flag. Pants attempts to reuse the results from `fmt` when running `fix` where possible.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--google-java-format-aosp", - "--no-google-java-format-aosp" + "--fix-skip-formatters", + "--no-fix-skip-formatters" ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--aosp", "--no-aosp"], + "unscoped_cmd_line_args": ["--skip-formatters", "--no-skip-formatters"], "value_history": { "ranked_values": [ { @@ -7249,63 +7292,24 @@ ] } }, - "PANTS_GOOGLE_JAVA_FORMAT_ARTIFACTS": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--google-java-format-artifacts=\"['', '', ...]\"", - "config_key": "artifacts", - "default": ["com.google.googlejavaformat:google-java-format:{version}"], - "deprecated_message": null, - "deprecation_active": false, - "display_args": [ - "--google-java-format-artifacts=\"['', '', ...]\"" - ], - "env_var": "PANTS_GOOGLE_JAVA_FORMAT_ARTIFACTS", - "fromfile": false, - "help": "Artifact requirements for this tool using specified as either the address of a `jvm_artifact` target or, alternatively, as a colon-separated Maven coordinates (e.g., `group:name:version`). For Maven coordinates, the string `{version}` version will be substituted with the value of the `[google-java-format].version` option.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--google-java-format-artifacts"], - "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--artifacts"], - "value_history": { - "ranked_values": [ - { - "details": "", - "rank": "NONE", - "value": [] - }, - { - "details": "", - "rank": "HARDCODED", - "value": [ - "com.google.googlejavaformat:google-java-format:{version}" - ] - } - ] - } - }, - "PANTS_GOOGLE_JAVA_FORMAT_JVM_OPTIONS": { + "PANTS_FLAKE8_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--google-java-format-jvm-options=\"['', '', ...]\"", - "config_key": "jvm_options", + "comma_separated_display_args": "--flake8-args=\"[, , ...]\"", + "config_key": "args", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--google-java-format-jvm-options=\"['', '', ...]\"" - ], - "env_var": "PANTS_GOOGLE_JAVA_FORMAT_JVM_OPTIONS", + "display_args": ["--flake8-args=\"[, , ...]\""], + "env_var": "PANTS_FLAKE8_ARGS", "fromfile": false, - "help": "List of JVM options to pass to `google-java-format` JVM processes.\n\nOptions set here will be added to those set in `[jvm].global_options`. Please check the documentation for the `jvm` subsystem to see what values are accepted here.", + "help": "Arguments to pass directly to Flake8, e.g. `--flake8-args='--ignore E123,W456 --enable-extensions H111'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--google-java-format-jvm-options"], + "scoped_cmd_line_args": ["--flake8-args"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--jvm-options"], + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { @@ -7321,60 +7325,55 @@ ] } }, - "PANTS_GOOGLE_JAVA_FORMAT_LOCKFILE": { + "PANTS_FLAKE8_CONFIG": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--google-java-format-lockfile=", - "config_key": "lockfile", - "default": "", + "comma_separated_display_args": "--flake8-config=", + "config_key": "config", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--google-java-format-lockfile="], - "env_var": "PANTS_GOOGLE_JAVA_FORMAT_LOCKFILE", + "display_args": ["--flake8-config="], + "env_var": "PANTS_FLAKE8_CONFIG", "fromfile": false, - "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/backend/java/lint/google_java_format/google_java_format.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `scie-pants-linux-x86_64 jvm-generate-lockfiles --resolve=google-java-format`.", + "help": "Path to an INI config file understood by Flake8 (https://flake8.pycqa.org/en/latest/user/configuration.html).\n\nSetting this option will disable `[flake8].config_discovery`. Use this option if the config is located in a non-standard location.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--google-java-format-lockfile"], + "scoped_cmd_line_args": ["--flake8-config"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--lockfile"], + "typ": "file_option", + "unscoped_cmd_line_args": ["--config"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": "" } ] } }, - "PANTS_GOOGLE_JAVA_FORMAT_SKIP": { + "PANTS_FLAKE8_CONFIG_DISCOVERY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]google-java-format-skip", - "config_key": "skip", - "default": false, + "comma_separated_display_args": "--[no-]flake8-config-discovery", + "config_key": "config_discovery", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]google-java-format-skip"], - "env_var": "PANTS_GOOGLE_JAVA_FORMAT_SKIP", + "display_args": ["--[no-]flake8-config-discovery"], + "env_var": "PANTS_FLAKE8_CONFIG_DISCOVERY", "fromfile": false, - "help": "If true, don't use Google Java Format when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "If true, Pants will include any relevant config files during runs (`.flake8`, `flake8`, `setup.cfg`, and `tox.ini`).\n\nUse `[flake8].config` instead if your config is in a non-standard location.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--google-java-format-skip", - "--no-google-java-format-skip" + "--flake8-config-discovery", + "--no-flake8-config-discovery" ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], "value_history": { "ranked_values": [ { @@ -7385,29 +7384,29 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": true } ] } }, - "PANTS_GOOGLE_JAVA_FORMAT_VERSION": { + "PANTS_FLAKE8_CONSOLE_SCRIPT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--google-java-format-version=", - "config_key": "version", - "default": "1.13.0", + "comma_separated_display_args": "--flake8-console-script=", + "config_key": "console_script", + "default": "flake8", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--google-java-format-version="], - "env_var": "PANTS_GOOGLE_JAVA_FORMAT_VERSION", + "display_args": ["--flake8-console-script="], + "env_var": "PANTS_FLAKE8_CONSOLE_SCRIPT", "fromfile": false, - "help": "Version string for the tool. This is available for substitution in the `[google-java-format].artifacts` option by including the string `{version}`.", + "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--google-java-format-version"], + "scoped_cmd_line_args": ["--flake8-console-script"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--version"], + "unscoped_cmd_line_args": ["--console-script"], "value_history": { "ranked_values": [ { @@ -7418,65 +7417,59 @@ { "details": null, "rank": "HARDCODED", - "value": "1.13.0" + "value": "flake8" } ] } }, - "PANTS_GO_GENERATE_ENV_VARS": { + "PANTS_FLAKE8_ENTRY_POINT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--go-generate-env-vars=\"['', '', ...]\"", - "config_key": "env_vars", - "default": ["LANG", "LC_CTYPE", "LC_ALL", "PATH"], + "comma_separated_display_args": "--flake8-entry-point=", + "config_key": "entry_point", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--go-generate-env-vars=\"['', '', ...]\""], - "env_var": "PANTS_GO_GENERATE_ENV_VARS", + "display_args": ["--flake8-entry-point="], + "env_var": "PANTS_FLAKE8_ENTRY_POINT", "fromfile": false, - "help": "Environment variables to set when invoking generator programs. Entries are either strings in the form `ENV_VAR=value` to set an explicit value; or just `ENV_VAR` to copy the value from Pants's own environment.", + "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--go-generate-env-vars"], - "target_field_name": "go_generate_env_vars", - "typ": "list", - "unscoped_cmd_line_args": ["--env-vars"], + "scoped_cmd_line_args": ["--flake8-entry-point"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--entry-point"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] - }, - { - "details": "", - "rank": "HARDCODED", - "value": ["LANG", "LC_CTYPE", "LC_ALL", "PATH"] + "value": null } ] } }, - "PANTS_GO_TEST_ARGS": { + "PANTS_FLAKE8_EXTRA_FILES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--go-test-args=\"[, , ...]\", ... -- [ [ [...]]]", - "config_key": "args", + "comma_separated_display_args": "--flake8-extra-files=\"[, , ...]\"", + "config_key": "extra_files", "default": [], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--go-test-args=\"[, , ...]\"", - "... -- [ [ [...]]]" + "--flake8-extra-files=\"[, , ...]\"" ], - "env_var": "PANTS_GO_TEST_ARGS", + "env_var": "PANTS_FLAKE8_EXTRA_FILES", "fromfile": false, - "help": "Arguments to pass directly to Go test binary, e.g. `--go-test-args='-run TestFoo -v'`.\n\nKnown Go test options will be transformed into the form expected by the test binary, e.g. `-v` becomes `-test.v`. Run `go help testflag` from the Go SDK to learn more about the options supported by Go test binaries.", + "help": "Paths to extra files to include in the sandbox. This can be useful for Flake8 plugins,\n like including config files for the `flake8-bandit` plugin.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--go-test-args"], + "scoped_cmd_line_args": ["--flake8-extra-files"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "unscoped_cmd_line_args": ["--extra-files"], "value_history": { "ranked_values": [ { @@ -7492,96 +7485,85 @@ ] } }, - "PANTS_GO_TEST_BLOCK_PROFILE": { + "PANTS_FLAKE8_INSTALL_FROM_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]go-test-block-profile", - "config_key": "block_profile", - "default": false, + "comma_separated_display_args": "--flake8-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]go-test-block-profile"], - "env_var": "PANTS_GO_TEST_BLOCK_PROFILE", + "display_args": ["--flake8-install-from-resolve="], + "env_var": "PANTS_FLAKE8_INSTALL_FROM_RESOLVE", "fromfile": false, - "help": "Capture a goroutine blocking profile from the execution of the test runner. The profile will be written to the file `block.out` in the test extra output directory. The test binary will also be written to the test extra output directory.", + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `flake8` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--go-test-block-profile", - "--no-go-test-block-profile" - ], + "scoped_cmd_line_args": ["--flake8-install-from-resolve"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--block-profile", "--no-block-profile"], + "typ": "str", + "unscoped_cmd_line_args": ["--install-from-resolve"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": false } ] } }, - "PANTS_GO_TEST_COVERAGE_HTML": { + "PANTS_FLAKE8_REQUIREMENTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]go-test-coverage-html", - "config_key": "coverage_html", - "default": true, + "comma_separated_display_args": "--flake8-requirements=\"['', '', ...]\"", + "config_key": "requirements", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]go-test-coverage-html"], - "env_var": "PANTS_GO_TEST_COVERAGE_HTML", + "display_args": ["--flake8-requirements=\"['', '', ...]\""], + "env_var": "PANTS_FLAKE8_REQUIREMENTS", "fromfile": false, - "help": "If true, then convert coverage reports to HTML format and write a `coverage.html` file next to the raw coverage data.", + "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--go-test-coverage-html", - "--no-go-test-coverage-html" - ], + "scoped_cmd_line_args": ["--flake8-requirements"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--coverage-html", "--no-coverage-html"], + "typ": "list", + "unscoped_cmd_line_args": ["--requirements"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": true + "value": [] } ] } }, - "PANTS_GO_TEST_COVERAGE_OUTPUT_DIR": { + "PANTS_FLAKE8_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--go-test-coverage-output-dir=", - "config_key": "coverage_output_dir", - "default": "{distdir}/coverage/go/{target_spec}", + "comma_separated_display_args": "--[no-]flake8-skip", + "config_key": "skip", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--go-test-coverage-output-dir="], - "env_var": "PANTS_GO_TEST_COVERAGE_OUTPUT_DIR", + "display_args": ["--[no-]flake8-skip"], + "env_var": "PANTS_FLAKE8_SKIP", "fromfile": false, - "help": "Path to write the Go coverage reports to. Must be relative to the build root.\n\nReplacements:\n\n - `{distdir}` is replaced with the Pants `distdir`.\n - `{target_spec}` is replaced with the address of the applicable `go_package` target with `/`\n characters replaced with dots (`.`).\n - `{import_path}` is replaced with the applicable package's import path. Subdirectories will be made\n for any path components separated by `/` characters.\n - `{import_path_escaped}` is replaced with the applicable package's import path but with\n slashes converted to underscores. This is deprecated and only exists to support behavior from\n earlier versions.", + "help": "If true, don't use Flake8 when running `pants lint`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--go-test-coverage-output-dir"], + "scoped_cmd_line_args": ["--flake8-skip", "--no-flake8-skip"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--coverage-output-dir"], + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -7592,31 +7574,31 @@ { "details": null, "rank": "HARDCODED", - "value": "{distdir}/coverage/go/{target_spec}" + "value": false } ] } }, - "PANTS_GO_TEST_COVERAGE_PACKAGES": { + "PANTS_FLAKE8_SOURCE_PLUGINS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--go-test-coverage-packages=\"['', '', ...]\"", - "config_key": "coverage_packages", + "comma_separated_display_args": "--flake8-source-plugins=\"[, , ...]\"", + "config_key": "source_plugins", "default": [], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--go-test-coverage-packages=\"['', '', ...]\"" + "--flake8-source-plugins=\"[, , ...]\"" ], - "env_var": "PANTS_GO_TEST_COVERAGE_PACKAGES", + "env_var": "PANTS_FLAKE8_SOURCE_PLUGINS", "fromfile": false, - "help": "A list of \"import path patterns\" for determining which import paths will be instrumented for code coverage.\n\nFrom `go help packages`:\n\nAn import path is a pattern if it includes one or more \"...\" wildcards, each of which can match any string, including the empty string and strings containing slashes. Such a pattern expands to all package directories found in the GOPATH trees with names matching the patterns.\n\nTo make common patterns more convenient, there are two special cases. First, /... at the end of the pattern can match an empty string, so that net/... matches both net and packages in its subdirectories, like net/http. Second, any slash-separated pattern element containing a wildcard never participates in a match of the \"vendor\" element in the path of a vendored package, so that ./... does not match packages in subdirectories of ./vendor or ./mycode/vendor, but ./vendor/... and ./mycode/vendor/... do. Note, however, that a directory named vendor that itself contains code is not a vendored package: cmd/vendor would be a command named vendor, and the pattern cmd/... matches it. See golang.org/s/go15vendor for more about vendoring.\n\nThis option is similar to the `go test -coverpkg` option, but without support currently for reserved import path patterns like `std` and `all`.", + "help": "An optional list of `python_sources` target addresses to load first-party plugins.\n\nYou must set the plugin's parent directory as a source root. For example, if your plugin is at `build-support/flake8/custom_plugin.py`, add `'build-support/flake8'` to `[source].root_patterns` in `pants.toml`. This is necessary for Pants to know how to tell Flake8 to discover your plugin. See https://www.pantsbuild.org/v2.18/docs/source-roots\n\nYou must also set `[flake8:local-plugins]` in your Flake8 config file.\n\nFor example:\n\n [flake8:local-plugins]\n extension =\n CUSTOMCODE = custom_plugin:MyChecker\n\nWhile your plugin's code can depend on other first-party code and third-party requirements, all first-party dependencies of the plugin must live in the same directory or a subdirectory.\n\nTo instead load third-party plugins, add them to a custom resolve alongside flake8 itself, as described in https://www.pantsbuild.org/v2.18/docs/python-lockfiles#lockfiles-for-tools.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--go-test-coverage-packages"], + "scoped_cmd_line_args": ["--flake8-source-plugins"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--coverage-packages"], + "unscoped_cmd_line_args": ["--source-plugins"], "value_history": { "ranked_values": [ { @@ -7632,24 +7614,24 @@ ] } }, - "PANTS_GO_TEST_COVER_MODE": { - "choices": ["set", "count", "atomic"], - "comma_separated_choices": "set, count, atomic", - "comma_separated_display_args": "--go-test-cover-mode=", - "config_key": "cover_mode", - "default": "set", + "PANTS_FMT_BATCH_SIZE": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--fmt-batch-size=", + "config_key": "batch_size", + "default": 128, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--go-test-cover-mode="], - "env_var": "PANTS_GO_TEST_COVER_MODE", + "display_args": ["--fmt-batch-size="], + "env_var": "PANTS_FMT_BATCH_SIZE", "fromfile": false, - "help": "Coverage mode to use when running Go tests with coverage analysis enabled via `--test-use-coverage`. Valid values are `set`, `count`, and `atomic`:\n\n * `set`: bool: does this statement run?\n * `count`: int: how many times does this statement run?\n * `atomic`: int: count, but correct in multithreaded tests; significantly more expensive.", + "help": "The target number of files to be included in each formatter batch.\n\nFormatter processes are batched for a few reasons:\n\n 1. to avoid OS argument length limits (in processes which don't support argument files)\n 2. to support more stable cache keys than would be possible if all files were operated on in a single batch.\n 3. to allow for parallelism in formatter processes which don't have internal parallelism, or -- if they do support internal parallelism -- to improve scheduling behavior when multiple processes are competing for cores and so internal parallelism cannot be used perfectly.\n\nIn order to improve cache hit rates (see 2.), batches are created at stable boundaries, and so this value is only a \"target\" batch size (rather than an exact value).", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--go-test-cover-mode"], + "scoped_cmd_line_args": ["--fmt-batch-size"], "target_field_name": null, - "typ": "GoCoverMode", - "unscoped_cmd_line_args": ["--cover-mode"], + "typ": "int", + "unscoped_cmd_line_args": ["--batch-size"], "value_history": { "ranked_values": [ { @@ -7660,104 +7642,93 @@ { "details": null, "rank": "HARDCODED", - "value": "set" + "value": 128 } ] } }, - "PANTS_GO_TEST_CPU_PROFILE": { + "PANTS_FMT_ONLY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]go-test-cpu-profile", - "config_key": "cpu_profile", - "default": false, + "comma_separated_display_args": "--fmt-only=\"['', '', ...]\"", + "config_key": "only", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]go-test-cpu-profile"], - "env_var": "PANTS_GO_TEST_CPU_PROFILE", + "display_args": ["--fmt-only=\"['', '', ...]\""], + "env_var": "PANTS_FMT_ONLY", "fromfile": false, - "help": "Capture a CPU profile from the execution of the test runner. The profile will be written to the file `cpu.out` in the test extra output directory. The test binary will also be written to the test extra output directory.", + "help": "Only run these formatters and skip all others.\n\nThe formatter names are outputted at the final summary of running this goal, e.g. `isort` and `shfmt`. You can also run `fmt --only=fake` to get a list of all activated formatters.\n\nYou can repeat this option, e.g. `fmt --only=isort --only=shfmt` or `fmt --only=['isort', 'shfmt']`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--go-test-cpu-profile", - "--no-go-test-cpu-profile" - ], + "scoped_cmd_line_args": ["--fmt-only"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--cpu-profile", "--no-cpu-profile"], + "typ": "list", + "unscoped_cmd_line_args": ["--only"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": [] } ] } }, - "PANTS_GO_TEST_FORCE_ASAN": { + "PANTS_GENERATE_LOCKFILES_CUSTOM_COMMAND": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]go-test-force-asan", - "config_key": "force_asan", - "default": false, + "comma_separated_display_args": "--generate-lockfiles-custom-command=", + "config_key": "custom_command", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]go-test-force-asan"], - "env_var": "PANTS_GO_TEST_FORCE_ASAN", + "display_args": ["--generate-lockfiles-custom-command="], + "env_var": "PANTS_GENERATE_LOCKFILES_CUSTOM_COMMAND", "fromfile": false, - "help": "If true, then always enable interoperation between Go and the C/C++ \"address sanitizer\" when running tests regardless of the test-by-test `asan` field on the relevant `go_package` target.\n\nSee https://github.com/google/sanitizers/wiki/AddressSanitizer for additional information about the C/C++ address sanitizer.", + "help": "If set, lockfile headers will say to run this command to regenerate the lockfile, rather than running `pants generate-lockfiles --resolve=` like normal.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--go-test-force-asan", - "--no-go-test-force-asan" - ], + "scoped_cmd_line_args": ["--generate-lockfiles-custom-command"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--force-asan", "--no-force-asan"], + "typ": "str", + "unscoped_cmd_line_args": ["--custom-command"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": false } ] } }, - "PANTS_GO_TEST_FORCE_MSAN": { + "PANTS_GENERATE_LOCKFILES_DIFF": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]go-test-force-msan", - "config_key": "force_msan", + "comma_separated_display_args": "--[no-]generate-lockfiles-diff", + "config_key": "diff", "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]go-test-force-msan"], - "env_var": "PANTS_GO_TEST_FORCE_MSAN", + "display_args": ["--[no-]generate-lockfiles-diff"], + "env_var": "PANTS_GENERATE_LOCKFILES_DIFF", "fromfile": false, - "help": "If true, then always enable interoperation between Go and the C/C++ \"memory sanitizer\" when running tests regardless of the test-by-test `msan` field on the relevant `go_package` target.\n\nSee https://github.com/google/sanitizers/wiki/MemorySanitizer for additional information about the C/C++ memory sanitizer.", + "help": "Print a summary of changed distributions after generating the lockfile.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--go-test-force-msan", - "--no-go-test-force-msan" + "--generate-lockfiles-diff", + "--no-generate-lockfiles-diff" ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--force-msan", "--no-force-msan"], + "unscoped_cmd_line_args": ["--diff", "--no-diff"], "value_history": { "ranked_values": [ { @@ -7773,27 +7744,30 @@ ] } }, - "PANTS_GO_TEST_FORCE_RACE": { + "PANTS_GENERATE_LOCKFILES_DIFF_INCLUDE_UNCHANGED": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]go-test-force-race", - "config_key": "force_race", + "comma_separated_display_args": "--[no-]generate-lockfiles-diff-include-unchanged", + "config_key": "diff_include_unchanged", "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]go-test-force-race"], - "env_var": "PANTS_GO_TEST_FORCE_RACE", + "display_args": ["--[no-]generate-lockfiles-diff-include-unchanged"], + "env_var": "PANTS_GENERATE_LOCKFILES_DIFF_INCLUDE_UNCHANGED", "fromfile": false, - "help": "If true, then always enable the Go data race detector when running tests regardless of the test-by-test `test_race` field on the relevant `go_package` target.\n\nSee https://go.dev/doc/articles/race_detector for additional information about the Go data race detector.", + "help": "Include unchanged distributions in the diff summary output. Implies `diff=true`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--go-test-force-race", - "--no-go-test-force-race" + "--generate-lockfiles-diff-include-unchanged", + "--no-generate-lockfiles-diff-include-unchanged" ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--force-race", "--no-force-race"], + "unscoped_cmd_line_args": [ + "--diff-include-unchanged", + "--no-diff-include-unchanged" + ], "value_history": { "ranked_values": [ { @@ -7809,102 +7783,92 @@ ] } }, - "PANTS_GO_TEST_MEM_PROFILE": { + "PANTS_GENERATE_LOCKFILES_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]go-test-mem-profile", - "config_key": "mem_profile", - "default": false, + "comma_separated_display_args": "--generate-lockfiles-resolve=\"['', '', ...]\"", + "config_key": "resolve", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]go-test-mem-profile"], - "env_var": "PANTS_GO_TEST_MEM_PROFILE", + "display_args": [ + "--generate-lockfiles-resolve=\"['', '', ...]\"" + ], + "env_var": "PANTS_GENERATE_LOCKFILES_RESOLVE", "fromfile": false, - "help": "Capture an allocation profile from the execution of the test runner after tests have passed. The profile will be written to the file `mem.out` in the test extra output directory. The test binary will also be written to the test extra output directory.", + "help": "Only generate lockfiles for the specified resolve(s).\n\nResolves are the logical names for the different lockfiles used in your project. For your own code's dependencies, these come from backend-specific configuration such as `[python].resolves`. For tool lockfiles, resolve names are the options scope for that tool such as `black`, `pytest`, and `mypy-protobuf`.\n\nFor example, you can run `pants generate-lockfiles --resolve=black --resolve=pytest --resolve=data-science` to only generate lockfiles for those two tools and your resolve named `data-science`.\n\nIf you specify an invalid resolve name, like 'fake', Pants will output all possible values.\n\nIf not specified, Pants will generate lockfiles for all resolves.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--go-test-mem-profile", - "--no-go-test-mem-profile" - ], + "scoped_cmd_line_args": ["--generate-lockfiles-resolve"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--mem-profile", "--no-mem-profile"], + "typ": "list", + "unscoped_cmd_line_args": ["--resolve"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": [] } ] } }, - "PANTS_GO_TEST_MUTEX_PROFILE": { + "PANTS_GOFMT_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]go-test-mutex-profile", - "config_key": "mutex_profile", - "default": false, + "comma_separated_display_args": "--gofmt-args=\"[, , ...]\"", + "config_key": "args", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]go-test-mutex-profile"], - "env_var": "PANTS_GO_TEST_MUTEX_PROFILE", + "display_args": ["--gofmt-args=\"[, , ...]\""], + "env_var": "PANTS_GOFMT_ARGS", "fromfile": false, - "help": "Capture a mutex contention profile from the execution of the test runner when all tests are complete. The profile will be written to the file `mutex.out` in the test extra output directory. The test binary will also be written to the test extra output directory.", + "help": "Arguments to pass directly to gofmt, e.g. `--gofmt-args='-s -e'`.\n\nOnly the following style related options are supported: `-e`, `-r`, `-s`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--go-test-mutex-profile", - "--no-go-test-mutex-profile" - ], + "scoped_cmd_line_args": ["--gofmt-args"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--mutex-profile", "--no-mutex-profile"], + "typ": "list", + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": [] } ] } }, - "PANTS_GO_TEST_OUTPUT_TEST_BINARY": { + "PANTS_GOFMT_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]go-test-output-test-binary", - "config_key": "output_test_binary", + "comma_separated_display_args": "--[no-]gofmt-skip", + "config_key": "skip", "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]go-test-output-test-binary"], - "env_var": "PANTS_GO_TEST_OUTPUT_TEST_BINARY", + "display_args": ["--[no-]gofmt-skip"], + "env_var": "PANTS_GOFMT_SKIP", "fromfile": false, - "help": "Write the test binary to the test extra output directory.\n\nThis is similar to the `go test -c` option, but will still run the underlying test.", + "help": "If true, don't use gofmt when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--go-test-output-test-binary", - "--no-go-test-output-test-binary" - ], + "scoped_cmd_line_args": ["--gofmt-skip", "--no-gofmt-skip"], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": [ - "--output-test-binary", - "--no-output-test-binary" - ], + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -7920,57 +7884,90 @@ ] } }, - "PANTS_GO_TEST_SKIP": { + "PANTS_GOLANGCI_LINT_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]go-test-skip", - "config_key": "skip", - "default": false, + "comma_separated_display_args": "--golangci-lint-args=\"[, , ...]\"", + "config_key": "args", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]go-test-skip"], - "env_var": "PANTS_GO_TEST_SKIP", + "display_args": [ + "--golangci-lint-args=\"[, , ...]\"" + ], + "env_var": "PANTS_GOLANGCI_LINT_ARGS", "fromfile": false, - "help": "If true, don't use Go test binary when running `scie-pants-linux-x86_64 test`.", + "help": "Arguments to pass directly to golangci-lint, e.g. `--golangci-lint-args='--enable gocritic'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--go-test-skip", "--no-go-test-skip"], + "scoped_cmd_line_args": ["--golangci-lint-args"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "typ": "list", + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": [] } ] } }, - "PANTS_GO_TEST_TRACE": { + "PANTS_GOLANGCI_LINT_CONFIG": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]go-test-trace", - "config_key": "trace", - "default": false, + "comma_separated_display_args": "--golangci-lint-config=", + "config_key": "config", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]go-test-trace"], - "env_var": "PANTS_GO_TEST_TRACE", + "display_args": ["--golangci-lint-config="], + "env_var": "PANTS_GOLANGCI_LINT_CONFIG", "fromfile": false, - "help": "Capture an execution trace from the execution of the test runner. The trace will be written to the file `trace.out` in the test extra output directory.", + "help": "Path to a YAML config file understood by golangci-lint (https://golangci-lint.run/usage/configuration/#config-file).\n\nSetting this option will disable `[golangci-lint].config_discovery`. Use this option if the config is located in a non-standard location.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--go-test-trace", "--no-go-test-trace"], + "scoped_cmd_line_args": ["--golangci-lint-config"], + "target_field_name": null, + "typ": "file_option", + "unscoped_cmd_line_args": ["--config"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + "PANTS_GOLANGCI_LINT_CONFIG_DISCOVERY": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]golangci-lint-config-discovery", + "config_key": "config_discovery", + "default": true, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]golangci-lint-config-discovery"], + "env_var": "PANTS_GOLANGCI_LINT_CONFIG_DISCOVERY", + "fromfile": false, + "help": "If true, Pants will include all relevant config files during runs (`.golangci.yml`, `.golangci.yaml`, `golangci.toml`, and `golangci.json`).\n\nUse `[golangci-lint].config` instead if your config is in a non-standard location.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--golangci-lint-config-discovery", + "--no-golangci-lint-config-discovery" + ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--trace", "--no-trace"], + "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], "value_history": { "ranked_values": [ { @@ -7981,33 +7978,33 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": true } ] } }, - "PANTS_GRPC_PYTHON_PLUGIN_KNOWN_VERSIONS": { + "PANTS_GOLANGCI_LINT_KNOWN_VERSIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--grpc-python-plugin-known-versions=\"['', '', ...]\"", + "comma_separated_display_args": "--golangci-lint-known-versions=\"['', '', ...]\"", "config_key": "known_versions", "default": [ - "1.32.0|macos_arm64 |b2db586656463841aa2fd4aab34fb6bd3ef887b522d80e4f2f292146c357f533|6215304", - "1.32.0|macos_x86_64|b2db586656463841aa2fd4aab34fb6bd3ef887b522d80e4f2f292146c357f533|6215304", - "1.32.0|linux_arm64 |9365e728c603d64735963074340994245d324712344f63557ef3630864dd9f52|5233664", - "1.32.0|linux_x86_64|1af99df9bf733c17a75cbe379f3f9d9ff1627d8a8035ea057c3c78575afe1687|4965728" + "1.51.1|macos_arm64 |75b8f0ff3a4e68147156be4161a49d4576f1be37a0b506473f8c482140c1e7f2|9724049", + "1.51.1|macos_x86_64|fba08acc4027f69f07cef48fbff70b8a7ecdfaa1c2aba9ad3fb31d60d9f5d4bc|10054954", + "1.51.1|linux_arm64 |9744bc34e7b8d82ca788b667bfb7155a39b4be9aef43bf9f10318b1372cea338|8927955", + "1.51.1|linux_x86_64|17aeb26c76820c22efa0e1838b0ab93e90cfedef43fbfc9a2f33f27eb9e5e070|9712769" ], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--grpc-python-plugin-known-versions=\"['', '', ...]\"" + "--golangci-lint-known-versions=\"['', '', ...]\"" ], - "env_var": "PANTS_GRPC_PYTHON_PLUGIN_KNOWN_VERSIONS", + "env_var": "PANTS_GOLANGCI_LINT_KNOWN_VERSIONS", "fromfile": false, "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--grpc-python-plugin-known-versions"], + "scoped_cmd_line_args": ["--golangci-lint-known-versions"], "target_field_name": null, "typ": "list", "unscoped_cmd_line_args": ["--known-versions"], @@ -8022,37 +8019,73 @@ "details": "", "rank": "HARDCODED", "value": [ - "1.32.0|macos_arm64 |b2db586656463841aa2fd4aab34fb6bd3ef887b522d80e4f2f292146c357f533|6215304", - "1.32.0|macos_x86_64|b2db586656463841aa2fd4aab34fb6bd3ef887b522d80e4f2f292146c357f533|6215304", - "1.32.0|linux_arm64 |9365e728c603d64735963074340994245d324712344f63557ef3630864dd9f52|5233664", - "1.32.0|linux_x86_64|1af99df9bf733c17a75cbe379f3f9d9ff1627d8a8035ea057c3c78575afe1687|4965728" + "1.51.1|macos_arm64 |75b8f0ff3a4e68147156be4161a49d4576f1be37a0b506473f8c482140c1e7f2|9724049", + "1.51.1|macos_x86_64|fba08acc4027f69f07cef48fbff70b8a7ecdfaa1c2aba9ad3fb31d60d9f5d4bc|10054954", + "1.51.1|linux_arm64 |9744bc34e7b8d82ca788b667bfb7155a39b4be9aef43bf9f10318b1372cea338|8927955", + "1.51.1|linux_x86_64|17aeb26c76820c22efa0e1838b0ab93e90cfedef43fbfc9a2f33f27eb9e5e070|9712769" ] } ] } }, - "PANTS_GRPC_PYTHON_PLUGIN_URL_PLATFORM_MAPPING": { + "PANTS_GOLANGCI_LINT_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--grpc-python-plugin-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "comma_separated_display_args": "--[no-]golangci-lint-skip", + "config_key": "skip", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]golangci-lint-skip"], + "env_var": "PANTS_GOLANGCI_LINT_SKIP", + "fromfile": false, + "help": "If true, don't use golangci-lint when running `pants lint`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--golangci-lint-skip", + "--no-golangci-lint-skip" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + "PANTS_GOLANGCI_LINT_URL_PLATFORM_MAPPING": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--golangci-lint-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", "config_key": "url_platform_mapping", "default": { - "linux_arm64": "linux/arm64", - "linux_x86_64": "linux/x86_64", - "macos_arm64": "macos/x86_64", - "macos_x86_64": "macos/x86_64" + "linux_arm64": "linux-arm64", + "linux_x86_64": "linux-amd64", + "macos_arm64": "darwin-arm64", + "macos_x86_64": "darwin-amd64" }, "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--grpc-python-plugin-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + "--golangci-lint-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" ], - "env_var": "PANTS_GRPC_PYTHON_PLUGIN_URL_PLATFORM_MAPPING", + "env_var": "PANTS_GOLANGCI_LINT_URL_PLATFORM_MAPPING", "fromfile": false, "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--grpc-python-plugin-url-platform-mapping"], + "scoped_cmd_line_args": ["--golangci-lint-url-platform-mapping"], "target_field_name": null, "typ": "dict", "unscoped_cmd_line_args": ["--url-platform-mapping"], @@ -8067,30 +8100,30 @@ "details": "", "rank": "HARDCODED", "value": { - "linux_arm64": "linux/arm64", - "linux_x86_64": "linux/x86_64", - "macos_arm64": "macos/x86_64", - "macos_x86_64": "macos/x86_64" + "linux_arm64": "linux-arm64", + "linux_x86_64": "linux-amd64", + "macos_arm64": "darwin-arm64", + "macos_x86_64": "darwin-amd64" } } ] } }, - "PANTS_GRPC_PYTHON_PLUGIN_URL_TEMPLATE": { + "PANTS_GOLANGCI_LINT_URL_TEMPLATE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--grpc-python-plugin-url-template=", + "comma_separated_display_args": "--golangci-lint-url-template=", "config_key": "url_template", - "default": "https://binaries.pantsbuild.org/bin/grpc_python_plugin/{version}/{platform}/grpc_python_plugin", + "default": "https://github.com/golangci/golangci-lint/releases/download/v{version}/golangci-lint-{version}-{platform}.tar.gz", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--grpc-python-plugin-url-template="], - "env_var": "PANTS_GRPC_PYTHON_PLUGIN_URL_TEMPLATE", + "display_args": ["--golangci-lint-url-template="], + "env_var": "PANTS_GOLANGCI_LINT_URL_TEMPLATE", "fromfile": false, "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--grpc-python-plugin-url-template"], + "scoped_cmd_line_args": ["--golangci-lint-url-template"], "target_field_name": null, "typ": "str", "unscoped_cmd_line_args": ["--url-template"], @@ -8104,28 +8137,28 @@ { "details": null, "rank": "HARDCODED", - "value": "https://binaries.pantsbuild.org/bin/grpc_python_plugin/{version}/{platform}/grpc_python_plugin" + "value": "https://github.com/golangci/golangci-lint/releases/download/v{version}/golangci-lint-{version}-{platform}.tar.gz" } ] } }, - "PANTS_GRPC_PYTHON_PLUGIN_USE_UNSUPPORTED_VERSION": { + "PANTS_GOLANGCI_LINT_USE_UNSUPPORTED_VERSION": { "choices": ["error", "warning"], "comma_separated_choices": "error, warning", - "comma_separated_display_args": "--grpc-python-plugin-use-unsupported-version=", + "comma_separated_display_args": "--golangci-lint-use-unsupported-version=", "config_key": "use_unsupported_version", "default": "error", "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--grpc-python-plugin-use-unsupported-version=" + "--golangci-lint-use-unsupported-version=" ], - "env_var": "PANTS_GRPC_PYTHON_PLUGIN_USE_UNSUPPORTED_VERSION", + "env_var": "PANTS_GOLANGCI_LINT_USE_UNSUPPORTED_VERSION", "fromfile": false, - "help": "\nWhat action to take in case the requested version of grpcpythonplugin is not supported.\n\nSupported grpcpythonplugin versions: unspecified\n", + "help": "\nWhat action to take in case the requested version of golangci-lint is not supported.\n\nSupported golangci-lint versions: unspecified\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--grpc-python-plugin-use-unsupported-version"], + "scoped_cmd_line_args": ["--golangci-lint-use-unsupported-version"], "target_field_name": null, "typ": "UnsupportedVersionUsage", "unscoped_cmd_line_args": ["--use-unsupported-version"], @@ -8144,21 +8177,21 @@ ] } }, - "PANTS_GRPC_PYTHON_PLUGIN_VERSION": { + "PANTS_GOLANGCI_LINT_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--grpc-python-plugin-version=", + "comma_separated_display_args": "--golangci-lint-version=", "config_key": "version", - "default": "1.32.0", + "default": "1.51.1", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--grpc-python-plugin-version="], - "env_var": "PANTS_GRPC_PYTHON_PLUGIN_VERSION", + "display_args": ["--golangci-lint-version="], + "env_var": "PANTS_GOLANGCI_LINT_VERSION", "fromfile": false, - "help": "Use this version of grpcpythonplugin.", + "help": "Use this version of golangci-lint.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--grpc-python-plugin-version"], + "scoped_cmd_line_args": ["--golangci-lint-version"], "target_field_name": null, "typ": "str", "unscoped_cmd_line_args": ["--version"], @@ -8172,131 +8205,128 @@ { "details": null, "rank": "HARDCODED", - "value": "1.32.0" + "value": "1.51.1" } ] } }, - "PANTS_HADOLINT_ARGS": { + "PANTS_GOLANG_ASDF_BIN_RELPATH": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--hadolint-args=\"[, , ...]\"", - "config_key": "args", - "default": [], + "comma_separated_display_args": "--golang-asdf-bin-relpath=", + "config_key": "asdf_bin_relpath", + "default": "bin", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--hadolint-args=\"[, , ...]\""], - "env_var": "PANTS_HADOLINT_ARGS", + "display_args": ["--golang-asdf-bin-relpath="], + "env_var": "PANTS_GOLANG_ASDF_BIN_RELPATH", "fromfile": false, - "help": "Arguments to pass directly to Hadolint, e.g. `--hadolint-args='--format json'`.", + "help": "The path relative to an ASDF install directory to use to find the `bin` directory within an installed Go distribution. The default value for this option works for the `go-sdk` ASDF plugin. Other ASDF plugins that install Go may have a different relative path to use.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--hadolint-args"], + "scoped_cmd_line_args": ["--golang-asdf-bin-relpath"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "typ": "str", + "unscoped_cmd_line_args": ["--asdf-bin-relpath"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": "bin" } ] } }, - "PANTS_HADOLINT_CONFIG": { + "PANTS_GOLANG_ASDF_TOOL_NAME": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--hadolint-config=", - "config_key": "config", - "default": null, + "comma_separated_display_args": "--golang-asdf-tool-name=", + "config_key": "asdf_tool_name", + "default": "go-sdk", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--hadolint-config="], - "env_var": "PANTS_HADOLINT_CONFIG", + "display_args": ["--golang-asdf-tool-name="], + "env_var": "PANTS_GOLANG_ASDF_TOOL_NAME", "fromfile": false, - "help": "Path to an YAML config file understood by Hadolint (https://github.com/hadolint/hadolint#configure).\n\nSetting this option will disable `[hadolint].config_discovery`. Use this option if the config is located in a non-standard location.", + "help": "The ASDF tool name to use when searching for installed Go distributions using the ASDF tool manager (https://asdf-vm.com/). The default value for this option is for the `go-sdk` ASDF plugin (https://github.com/yacchi/asdf-go-sdk.git). There are other plugins. If you wish to use one of them, then set this option to the ASDF tool name under which that other plugin was installed into ASDF.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--hadolint-config"], + "scoped_cmd_line_args": ["--golang-asdf-tool-name"], "target_field_name": null, - "typ": "file_option", - "unscoped_cmd_line_args": ["--config"], + "typ": "str", + "unscoped_cmd_line_args": ["--asdf-tool-name"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "go-sdk" } ] } }, - "PANTS_HADOLINT_CONFIG_DISCOVERY": { + "PANTS_GOLANG_CGO_CXX_FLAGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]hadolint-config-discovery", - "config_key": "config_discovery", - "default": true, + "comma_separated_display_args": "--golang-cgo-cxx-flags=\"['', '', ...]\"", + "config_key": "cgo_cxx_flags", + "default": ["-g", "-O2"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]hadolint-config-discovery"], - "env_var": "PANTS_HADOLINT_CONFIG_DISCOVERY", + "display_args": ["--golang-cgo-cxx-flags=\"['', '', ...]\""], + "env_var": "PANTS_GOLANG_CGO_CXX_FLAGS", "fromfile": false, - "help": "If true, Pants will include all relevant config files during runs (`.hadolint.yaml` and `.hadolint.yml`).\n\nUse `[hadolint].config` instead if your config is in a non-standard location.", + "help": "Compiler options used when compiling C++ code when Cgo is enabled. Equivalent to setting the CGO_CXXFLAGS environment variable when invoking `go`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--hadolint-config-discovery", - "--no-hadolint-config-discovery" - ], - "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], + "scoped_cmd_line_args": ["--golang-cgo-cxx-flags"], + "target_field_name": "golang_cgo_cxx_flags", + "typ": "list", + "unscoped_cmd_line_args": ["--cgo-cxx-flags"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": true + "value": ["-g", "-O2"] } ] } }, - "PANTS_HADOLINT_KNOWN_VERSIONS": { + "PANTS_GOLANG_CGO_C_FLAGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--hadolint-known-versions=\"['', '', ...]\"", - "config_key": "known_versions", - "default": [ - "v2.10.0|macos_x86_64|59f0523069a857ae918b8ac0774230013f7bcc00c1ea28119c2311353120867a|2514960", - "v2.10.0|macos_arm64 |59f0523069a857ae918b8ac0774230013f7bcc00c1ea28119c2311353120867a|2514960", - "v2.10.0|linux_x86_64|8ee6ff537341681f9e91bae2d5da451b15c575691e33980893732d866d3cefc4|2301804", - "v2.10.0|linux_arm64 |b53d5ab10707a585c9e72375d51b7357522300b5329cfa3f91e482687176e128|27954520" - ], + "comma_separated_display_args": "--golang-cgo-c-flags=\"['', '', ...]\"", + "config_key": "cgo_c_flags", + "default": ["-g", "-O2"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--hadolint-known-versions=\"['', '', ...]\""], - "env_var": "PANTS_HADOLINT_KNOWN_VERSIONS", + "display_args": ["--golang-cgo-c-flags=\"['', '', ...]\""], + "env_var": "PANTS_GOLANG_CGO_C_FLAGS", "fromfile": false, - "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", + "help": "Compiler options used when compiling C code when Cgo is enabled. Equivalent to setting the CGO_CFLAGS environment variable when invoking `go`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--hadolint-known-versions"], - "target_field_name": null, + "scoped_cmd_line_args": ["--golang-cgo-c-flags"], + "target_field_name": "golang_cgo_c_flags", "typ": "list", - "unscoped_cmd_line_args": ["--known-versions"], + "unscoped_cmd_line_args": ["--cgo-c-flags"], "value_history": { "ranked_values": [ { @@ -8307,34 +8337,32 @@ { "details": "", "rank": "HARDCODED", - "value": [ - "v2.10.0|macos_x86_64|59f0523069a857ae918b8ac0774230013f7bcc00c1ea28119c2311353120867a|2514960", - "v2.10.0|macos_arm64 |59f0523069a857ae918b8ac0774230013f7bcc00c1ea28119c2311353120867a|2514960", - "v2.10.0|linux_x86_64|8ee6ff537341681f9e91bae2d5da451b15c575691e33980893732d866d3cefc4|2301804", - "v2.10.0|linux_arm64 |b53d5ab10707a585c9e72375d51b7357522300b5329cfa3f91e482687176e128|27954520" - ] + "value": ["-g", "-O2"] } ] } }, - "PANTS_HADOLINT_SKIP": { + "PANTS_GOLANG_CGO_ENABLED": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]hadolint-skip", - "config_key": "skip", - "default": false, + "comma_separated_display_args": "--[no-]golang-cgo-enabled", + "config_key": "cgo_enabled", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]hadolint-skip"], - "env_var": "PANTS_HADOLINT_SKIP", + "display_args": ["--[no-]golang-cgo-enabled"], + "env_var": "PANTS_GOLANG_CGO_ENABLED", "fromfile": false, - "help": "If true, don't use Hadolint when running `scie-pants-linux-x86_64 lint`.", + "help": "Enable Cgo support, which allows Go and C code to interact. This option must be enabled for any packages making use of Cgo to actually be compiled with Cgo support.\n\nSee https://go.dev/blog/cgo and https://pkg.go.dev/cmd/cgo for additional information about Cgo.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--hadolint-skip", "--no-hadolint-skip"], + "scoped_cmd_line_args": [ + "--golang-cgo-enabled", + "--no-golang-cgo-enabled" + ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "unscoped_cmd_line_args": ["--cgo-enabled", "--no-cgo-enabled"], "value_history": { "ranked_values": [ { @@ -8345,74 +8373,97 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": true } ] } }, - "PANTS_HADOLINT_URL_PLATFORM_MAPPING": { + "PANTS_GOLANG_CGO_FORTRAN_BINARY_NAME": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--hadolint-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "url_platform_mapping", - "default": { - "linux_arm64": "Linux-arm64", - "linux_x86_64": "Linux-x86_64", - "macos_arm64": "Darwin-x86_64", - "macos_x86_64": "Darwin-x86_64" - }, + "comma_separated_display_args": "--golang-cgo-fortran-binary-name=", + "config_key": "cgo_fortran_binary_name", + "default": "gfortran", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--golang-cgo-fortran-binary-name="], + "env_var": "PANTS_GOLANG_CGO_FORTRAN_BINARY_NAME", + "fromfile": false, + "help": "Name of the tool to use to compile fortran code included via CGo in a Go package. Pants will search for the tool using the paths specified by the `[golang].cgo_tool_search_paths` option.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--golang-cgo-fortran-binary-name"], + "target_field_name": "golang_cgo_fortran_binary_name", + "typ": "str", + "unscoped_cmd_line_args": ["--cgo-fortran-binary-name"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "gfortran" + } + ] + } + }, + "PANTS_GOLANG_CGO_FORTRAN_FLAGS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--golang-cgo-fortran-flags=\"['', '', ...]\"", + "config_key": "cgo_fortran_flags", + "default": ["-g", "-O2"], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--hadolint-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + "--golang-cgo-fortran-flags=\"['', '', ...]\"" ], - "env_var": "PANTS_HADOLINT_URL_PLATFORM_MAPPING", + "env_var": "PANTS_GOLANG_CGO_FORTRAN_FLAGS", "fromfile": false, - "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", + "help": "Compiler options used when compiling Fortran code when Cgo is enabled. Equivalent to setting the CGO_FFLAGS environment variable when invoking `go`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--hadolint-url-platform-mapping"], - "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--url-platform-mapping"], + "scoped_cmd_line_args": ["--golang-cgo-fortran-flags"], + "target_field_name": "golang_cgo_fortran_flags", + "typ": "list", + "unscoped_cmd_line_args": ["--cgo-fortran-flags"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": {} + "value": [] }, { "details": "", "rank": "HARDCODED", - "value": { - "linux_arm64": "Linux-arm64", - "linux_x86_64": "Linux-x86_64", - "macos_arm64": "Darwin-x86_64", - "macos_x86_64": "Darwin-x86_64" - } + "value": ["-g", "-O2"] } ] } }, - "PANTS_HADOLINT_URL_TEMPLATE": { + "PANTS_GOLANG_CGO_GCC_BINARY_NAME": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--hadolint-url-template=", - "config_key": "url_template", - "default": "https://github.com/hadolint/hadolint/releases/download/{version}/hadolint-{platform}", + "comma_separated_display_args": "--golang-cgo-gcc-binary-name=", + "config_key": "cgo_gcc_binary_name", + "default": "gcc", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--hadolint-url-template="], - "env_var": "PANTS_HADOLINT_URL_TEMPLATE", + "display_args": ["--golang-cgo-gcc-binary-name="], + "env_var": "PANTS_GOLANG_CGO_GCC_BINARY_NAME", "fromfile": false, - "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", + "help": "Name of the tool to use to compile C code included via CGo in a Go package. Pants will search for the tool using the paths specified by the `[golang].cgo_tool_search_paths` option.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--hadolint-url-template"], - "target_field_name": null, + "scoped_cmd_line_args": ["--golang-cgo-gcc-binary-name"], + "target_field_name": "golang_cgo_gcc_binary_name", "typ": "str", - "unscoped_cmd_line_args": ["--url-template"], + "unscoped_cmd_line_args": ["--cgo-gcc-binary-name"], "value_history": { "ranked_values": [ { @@ -8423,31 +8474,29 @@ { "details": null, "rank": "HARDCODED", - "value": "https://github.com/hadolint/hadolint/releases/download/{version}/hadolint-{platform}" + "value": "gcc" } ] } }, - "PANTS_HADOLINT_USE_UNSUPPORTED_VERSION": { - "choices": ["error", "warning"], - "comma_separated_choices": "error, warning", - "comma_separated_display_args": "--hadolint-use-unsupported-version=", - "config_key": "use_unsupported_version", - "default": "error", + "PANTS_GOLANG_CGO_GXX_BINARY_NAME": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--golang-cgo-gxx-binary-name=", + "config_key": "cgo_gxx_binary_name", + "default": "g++", "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--hadolint-use-unsupported-version=" - ], - "env_var": "PANTS_HADOLINT_USE_UNSUPPORTED_VERSION", + "display_args": ["--golang-cgo-gxx-binary-name="], + "env_var": "PANTS_GOLANG_CGO_GXX_BINARY_NAME", "fromfile": false, - "help": "\nWhat action to take in case the requested version of Hadolint is not supported.\n\nSupported Hadolint versions: unspecified\n", + "help": "Name of the tool to use to compile C++ code included via CGo in a Go package. Pants will search for the tool using the paths specified by the `[golang].cgo_tool_search_paths` option.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--hadolint-use-unsupported-version"], - "target_field_name": null, - "typ": "UnsupportedVersionUsage", - "unscoped_cmd_line_args": ["--use-unsupported-version"], + "scoped_cmd_line_args": ["--golang-cgo-gxx-binary-name"], + "target_field_name": "golang_cgo_gxx_binary_name", + "typ": "str", + "unscoped_cmd_line_args": ["--cgo-gxx-binary-name"], "value_history": { "ranked_values": [ { @@ -8458,65 +8507,64 @@ { "details": null, "rank": "HARDCODED", - "value": "error" + "value": "g++" } ] } }, - "PANTS_HADOLINT_VERSION": { + "PANTS_GOLANG_CGO_LINKER_FLAGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--hadolint-version=", - "config_key": "version", - "default": "v2.10.0", + "comma_separated_display_args": "--golang-cgo-linker-flags=\"['', '', ...]\"", + "config_key": "cgo_linker_flags", + "default": ["-g", "-O2"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--hadolint-version="], - "env_var": "PANTS_HADOLINT_VERSION", + "display_args": ["--golang-cgo-linker-flags=\"['', '', ...]\""], + "env_var": "PANTS_GOLANG_CGO_LINKER_FLAGS", "fromfile": false, - "help": "Use this version of Hadolint.", + "help": "Compiler options used when linking native code when Cgo is enabled. Equivalent to setting the CGO_LDFLAGS environment variable when invoking `go`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--hadolint-version"], - "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--version"], + "scoped_cmd_line_args": ["--golang-cgo-linker-flags"], + "target_field_name": "golang_cgo_linker_flags", + "typ": "list", + "unscoped_cmd_line_args": ["--cgo-linker-flags"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "v2.10.0" + "value": ["-g", "-O2"] } ] } }, - "PANTS_HELM_ARGS": { + "PANTS_GOLANG_CGO_TOOL_SEARCH_PATHS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--helm-args=\"[, , ...]\", ... -- [ [ [...]]]", - "config_key": "args", - "default": [], + "comma_separated_display_args": "--golang-cgo-tool-search-paths=\"['', '', ...]\"", + "config_key": "cgo_tool_search_paths", + "default": [""], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--helm-args=\"[, , ...]\"", - "... -- [ [ [...]]]" + "--golang-cgo-tool-search-paths=\"['', '', ...]\"" ], - "env_var": "PANTS_HELM_ARGS", + "env_var": "PANTS_GOLANG_CGO_TOOL_SEARCH_PATHS", "fromfile": false, - "help": "Arguments to pass directly to helmsubsystem, e.g. `--helm-args='--dry-run'`.\n\nAdditional arguments to pass to Helm command line.\n\nOnly a subset of Helm arguments are considered valid as passthrough arguments as most of them have equivalents in the form of fields of the different target types.\n\nThe list of valid arguments is as follows:\n\n * --atomic\n * --cleanup-on-fail\n * --create-namespace\n * --debug\n * --dry-run\n * --force\n * --wait\n * --wait-for-jobs\n * --kubeconfig\n * --kube-context\n * --kube-apiserver\n * --kube-as-group\n * --kube-as-user\n * --kube-ca-file\n * --kube-token\n\nBefore attempting to use passthrough arguments, check the reference of each of the available target types to see what fields are accepted in each of them.", + "help": "A list of paths to search for tools needed by CGo (e.g., gcc, g++).\n\nSpecify absolute paths to directories with tools needed by CGo , e.g. `/usr/bin`. Earlier entries will be searched first.\n\nThe following special strings are supported:\n\n* ``, the contents of the PATH environment variable", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--helm-args"], - "target_field_name": null, + "scoped_cmd_line_args": ["--golang-cgo-tool-search-paths"], + "target_field_name": "golang_cgo_tool_search_paths", "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "unscoped_cmd_line_args": ["--cgo-tool-search-paths"], "value_history": { "ranked_values": [ { @@ -8527,57 +8575,62 @@ { "details": "", "rank": "HARDCODED", - "value": [] + "value": [""] } ] } }, - "PANTS_HELM_DEFAULT_REGISTRY_REPOSITORY": { + "PANTS_GOLANG_EXTERNAL_LINKER_BINARY_NAME": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--helm-default-registry-repository=", - "config_key": "default_registry_repository", - "default": null, + "comma_separated_display_args": "--golang-external-linker-binary-name=", + "config_key": "external_linker_binary_name", + "default": "gcc", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--helm-default-registry-repository="], - "env_var": "PANTS_HELM_DEFAULT_REGISTRY_REPOSITORY", + "display_args": ["--golang-external-linker-binary-name="], + "env_var": "PANTS_GOLANG_EXTERNAL_LINKER_BINARY_NAME", "fromfile": false, - "help": "Default location where to push Helm charts in the available registries when no specific one has been given.\n\nIf no registry repository is given, charts will be pushed to the root of the OCI registry.", + "help": "Name of the tool to use as the \"external linker\" when invoking `go tool link`. Pants will search for the tool using the paths specified by the `[golang].cgo_tool_search_paths` option.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--helm-default-registry-repository"], - "target_field_name": null, + "scoped_cmd_line_args": ["--golang-external-linker-binary-name"], + "target_field_name": "golang_external_linker_binary_name", "typ": "str", - "unscoped_cmd_line_args": ["--default-registry-repository"], + "unscoped_cmd_line_args": ["--external-linker-binary-name"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "gcc" } ] } }, - "PANTS_HELM_EXTRA_ENV_VARS": { + "PANTS_GOLANG_GO_SEARCH_PATHS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--helm-extra-env-vars=\"['', '', ...]\"", - "config_key": "extra_env_vars", - "default": [], + "comma_separated_display_args": "--golang-go-search-paths=\"['', '', ...]\"", + "config_key": "go_search_paths", + "default": [""], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--helm-extra-env-vars=\"['', '', ...]\""], - "env_var": "PANTS_HELM_EXTRA_ENV_VARS", + "display_args": ["--golang-go-search-paths=\"['', '', ...]\""], + "env_var": "PANTS_GOLANG_GO_SEARCH_PATHS", "fromfile": false, - "help": "Additional environment variables that would be made available to all Helm processes or during value interpolation.", + "help": "A list of paths to search for Go.\n\nSpecify absolute paths to directories with the `go` binary, e.g. `/usr/bin`. Earlier entries will be searched first.\n\nThe following special strings are supported:\n\n* ``, the contents of the PATH environment variable\n* ``, all Go versions currently configured by ASDF `(asdf shell, ${HOME}/.tool-versions)`, with a fallback to all installed versions\n* ``, the ASDF binary with the version in `BUILD_ROOT/.tool-versions`", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--helm-extra-env-vars"], - "target_field_name": null, + "scoped_cmd_line_args": ["--golang-go-search-paths"], + "target_field_name": "golang_go_search_paths", "typ": "list", - "unscoped_cmd_line_args": ["--extra-env-vars"], + "unscoped_cmd_line_args": ["--go-search-paths"], "value_history": { "ranked_values": [ { @@ -8588,59 +8641,64 @@ { "details": "", "rank": "HARDCODED", - "value": [] + "value": [""] } ] } }, - "PANTS_HELM_K8S_PARSER_INSTALL_FROM_RESOLVE": { + "PANTS_GOLANG_MINIMUM_EXPECTED_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--helm-k8s-parser-install-from-resolve=", - "config_key": "install_from_resolve", - "default": null, + "comma_separated_display_args": "--golang-minimum-expected-version=", + "config_key": "minimum_expected_version", + "default": "1.17", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--helm-k8s-parser-install-from-resolve="], - "env_var": "PANTS_HELM_K8S_PARSER_INSTALL_FROM_RESOLVE", + "display_args": ["--golang-minimum-expected-version="], + "env_var": "PANTS_GOLANG_MINIMUM_EXPECTED_VERSION", "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `helm-k8s-parser` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "help": "The minimum Go version the distribution discovered by Pants must support.\n\nFor example, if you set `'1.17'`, then Pants will look for a Go binary that is 1.17+, e.g. 1.17 or 1.18.\n\nYou should still set the Go version for each module in your `go.mod` with the `go` directive.\n\nDo not include the patch version.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--helm-k8s-parser-install-from-resolve"], + "scoped_cmd_line_args": ["--golang-minimum-expected-version"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--install-from-resolve"], + "unscoped_cmd_line_args": ["--minimum-expected-version"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "1.17" } ] } }, - "PANTS_HELM_K8S_PARSER_INTERPRETER_CONSTRAINTS": { + "PANTS_GOLANG_SUBPROCESS_ENV_VARS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--helm-k8s-parser-interpreter-constraints=\"['', '', ...]\"", - "config_key": "interpreter_constraints", - "default": ["CPython>=3.7,<3.10"], + "comma_separated_display_args": "--golang-subprocess-env-vars=\"['', '', ...]\"", + "config_key": "subprocess_env_vars", + "default": ["LANG", "LC_CTYPE", "LC_ALL", "PATH"], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--helm-k8s-parser-interpreter-constraints=\"['', '', ...]\"" + "--golang-subprocess-env-vars=\"['', '', ...]\"" ], - "env_var": "PANTS_HELM_K8S_PARSER_INTERPRETER_CONSTRAINTS", + "env_var": "PANTS_GOLANG_SUBPROCESS_ENV_VARS", "fromfile": false, - "help": "Python interpreter constraints for this tool.", + "help": "Environment variables to set when invoking the `go` tool. Entries are either strings in the form `ENV_VAR=value` to set an explicit value; or just `ENV_VAR` to copy the value from Pants's own environment.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--helm-k8s-parser-interpreter-constraints"], - "target_field_name": null, + "scoped_cmd_line_args": ["--golang-subprocess-env-vars"], + "target_field_name": "golang_subprocess_env_vars", "typ": "list", - "unscoped_cmd_line_args": ["--interpreter-constraints"], + "unscoped_cmd_line_args": ["--subprocess-env-vars"], "value_history": { "ranked_values": [ { @@ -8651,155 +8709,113 @@ { "details": "", "rank": "HARDCODED", - "value": ["CPython>=3.7,<3.10"] + "value": ["LANG", "LC_CTYPE", "LC_ALL", "PATH"] } ] } }, - "PANTS_HELM_K8S_PARSER_REQUIREMENTS": { + "PANTS_GOLANG_TAILOR_BINARY_TARGETS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--helm-k8s-parser-requirements=\"['', '', ...]\"", - "config_key": "requirements", - "default": [], + "comma_separated_display_args": "--[no-]golang-tailor-binary-targets", + "config_key": "tailor_binary_targets", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--helm-k8s-parser-requirements=\"['', '', ...]\"" - ], - "env_var": "PANTS_HELM_K8S_PARSER_REQUIREMENTS", + "display_args": ["--[no-]golang-tailor-binary-targets"], + "env_var": "PANTS_GOLANG_TAILOR_BINARY_TARGETS", "fromfile": false, - "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "help": "If true, add a `go_binary` target with the `tailor` goal in every directory with a `.go` file with `package main`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--helm-k8s-parser-requirements"], + "scoped_cmd_line_args": [ + "--golang-tailor-binary-targets", + "--no-golang-tailor-binary-targets" + ], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--requirements"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--tailor-binary-targets", + "--no-tailor-binary-targets" + ], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": true } ] } }, - "PANTS_HELM_KNOWN_VERSIONS": { + "PANTS_GOLANG_TAILOR_GO_MOD_TARGETS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--helm-known-versions=\"['', '', ...]\"", - "config_key": "known_versions", - "default": [ - "3.12.3|linux_arm64|79ef06935fb47e432c0c91bdefd140e5b543ec46376007ca14a52e5ed3023088|14355040", - "3.12.3|linux_x86_64|1b2313cd198d45eab00cc37c38f6b1ca0a948ba279c29e322bdf426d406129b5|16028423", - "3.12.3|macos_arm64|240b0a7da9cae208000eff3d3fb95e0fa1f4903d95be62c3f276f7630b12dae1|16019570", - "3.12.3|macos_x86_64|1bdbbeec5a12dd0c1cd4efd8948a156d33e1e2f51140e2a51e1e5e7b11b81d47|16828211", - "3.12.2|linux_arm64|cfafbae85c31afde88c69f0e5053610c8c455826081c1b2d665d9b44c31b3759|14350624", - "3.12.2|linux_x86_64|2b6efaa009891d3703869f4be80ab86faa33fa83d9d5ff2f6492a8aebe97b219|16028750", - "3.12.2|macos_arm64|b60ee16847e28879ae298a20ba4672fc84f741410f438e645277205824ddbf55|16021202", - "3.12.2|macos_x86_64|6e8bfc84a640e0dc47cc49cfc2d0a482f011f4249e2dff2a7e23c7ef2df1b64e|16824814", - "3.11.3|linux_arm64|0816db0efd033c78c3cc1c37506967947b01965b9c0739fe13ec2b1eea08f601|14475471", - "3.11.3|linux_x86_64|ca2d5d40d4cdfb9a3a6205dd803b5bc8def00bd2f13e5526c127e9b667974a89|15489735", - "3.11.3|macos_arm64|267e4d50b68e8854b9cc44517da9ab2f47dec39787fed9f7eba42080d61ac7f8|15451086", - "3.11.3|macos_x86_64|9d029df37664b50e427442a600e4e065fa75fd74dac996c831ac68359654b2c4|16275303", - "3.11.2|linux_arm64|444b65100e224beee0a3a3a54cb19dad37388fa9217ab2782ba63551c4a2e128|14090242", - "3.11.2|linux_x86_64|781d826daec584f9d50a01f0f7dadfd25a3312217a14aa2fbb85107b014ac8ca|15026301", - "3.11.2|macos_arm64|f61a3aa55827de2d8c64a2063fd744b618b443ed063871b79f52069e90813151|14932800", - "3.11.2|macos_x86_64|404938fd2c6eff9e0dab830b0db943fca9e1572cd3d7ee40904705760faa390f|15759988", - "3.11.1|linux_arm64 |919173e8fb7a3b54d76af9feb92e49e86d5a80c5185020bae8c393fa0f0de1e8|13484900", - "3.11.1|linux_x86_64|0b1be96b66fab4770526f136f5f1a385a47c41923d33aab0dcb500e0f6c1bf7c|15023104", - "3.11.1|macos_arm64 |43d0198a7a2ea2639caafa81bb0596c97bee2d4e40df50b36202343eb4d5c46b|14934852", - "3.11.1|macos_x86_64|2548a90e5cc957ccc5016b47060665a9d2cd4d5b4d61dcc32f5de3144d103826|15757902", - "3.10.0|linux_arm64 |3b72f5f8a60772fb156d0a4ab93272e8da7ef4d18e6421a7020d7c019f521fc1|13055719", - "3.10.0|linux_x86_64|bf56beb418bb529b5e0d6d43d56654c5a03f89c98400b409d1013a33d9586474|14530566", - "3.10.0|macos_arm64 |f7f6558ebc8211824032a7fdcf0d55ad064cb33ec1eeec3d18057b9fe2e04dbe|14446277", - "3.10.0|macos_x86_64|1e7fd528482ac2ef2d79fe300724b3e07ff6f846a2a9b0b0fe6f5fa05691786b|15237557", - "3.8.0|linux_arm64 |23e08035dc0106fe4e0bd85800fd795b2b9ecd9f32187aa16c49b0a917105161|12324642", - "3.8.0|linux_x86_64|8408c91e846c5b9ba15eb6b1a5a79fc22dd4d33ac6ea63388e5698d1b2320c8b|13626774", - "3.8.0|macos_arm64 |751348f1a4a876ffe089fd68df6aea310fd05fe3b163ab76aa62632e327122f3|14078604", - "3.8.0|macos_x86_64|532ddd6213891084873e5c2dcafa577f425ca662a6594a3389e288fc48dc2089|14318316" - ], + "comma_separated_display_args": "--[no-]golang-tailor-go-mod-targets", + "config_key": "tailor_go_mod_targets", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--helm-known-versions=\"['', '', ...]\""], - "env_var": "PANTS_HELM_KNOWN_VERSIONS", + "display_args": ["--[no-]golang-tailor-go-mod-targets"], + "env_var": "PANTS_GOLANG_TAILOR_GO_MOD_TARGETS", "fromfile": false, - "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", + "help": "If true, add a `go_mod` target with the `tailor` goal wherever there is a `go.mod` file.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--helm-known-versions"], + "scoped_cmd_line_args": [ + "--golang-tailor-go-mod-targets", + "--no-golang-tailor-go-mod-targets" + ], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--known-versions"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--tailor-go-mod-targets", + "--no-tailor-go-mod-targets" + ], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [ - "3.12.3|linux_arm64|79ef06935fb47e432c0c91bdefd140e5b543ec46376007ca14a52e5ed3023088|14355040", - "3.12.3|linux_x86_64|1b2313cd198d45eab00cc37c38f6b1ca0a948ba279c29e322bdf426d406129b5|16028423", - "3.12.3|macos_arm64|240b0a7da9cae208000eff3d3fb95e0fa1f4903d95be62c3f276f7630b12dae1|16019570", - "3.12.3|macos_x86_64|1bdbbeec5a12dd0c1cd4efd8948a156d33e1e2f51140e2a51e1e5e7b11b81d47|16828211", - "3.12.2|linux_arm64|cfafbae85c31afde88c69f0e5053610c8c455826081c1b2d665d9b44c31b3759|14350624", - "3.12.2|linux_x86_64|2b6efaa009891d3703869f4be80ab86faa33fa83d9d5ff2f6492a8aebe97b219|16028750", - "3.12.2|macos_arm64|b60ee16847e28879ae298a20ba4672fc84f741410f438e645277205824ddbf55|16021202", - "3.12.2|macos_x86_64|6e8bfc84a640e0dc47cc49cfc2d0a482f011f4249e2dff2a7e23c7ef2df1b64e|16824814", - "3.11.3|linux_arm64|0816db0efd033c78c3cc1c37506967947b01965b9c0739fe13ec2b1eea08f601|14475471", - "3.11.3|linux_x86_64|ca2d5d40d4cdfb9a3a6205dd803b5bc8def00bd2f13e5526c127e9b667974a89|15489735", - "3.11.3|macos_arm64|267e4d50b68e8854b9cc44517da9ab2f47dec39787fed9f7eba42080d61ac7f8|15451086", - "3.11.3|macos_x86_64|9d029df37664b50e427442a600e4e065fa75fd74dac996c831ac68359654b2c4|16275303", - "3.11.2|linux_arm64|444b65100e224beee0a3a3a54cb19dad37388fa9217ab2782ba63551c4a2e128|14090242", - "3.11.2|linux_x86_64|781d826daec584f9d50a01f0f7dadfd25a3312217a14aa2fbb85107b014ac8ca|15026301", - "3.11.2|macos_arm64|f61a3aa55827de2d8c64a2063fd744b618b443ed063871b79f52069e90813151|14932800", - "3.11.2|macos_x86_64|404938fd2c6eff9e0dab830b0db943fca9e1572cd3d7ee40904705760faa390f|15759988", - "3.11.1|linux_arm64 |919173e8fb7a3b54d76af9feb92e49e86d5a80c5185020bae8c393fa0f0de1e8|13484900", - "3.11.1|linux_x86_64|0b1be96b66fab4770526f136f5f1a385a47c41923d33aab0dcb500e0f6c1bf7c|15023104", - "3.11.1|macos_arm64 |43d0198a7a2ea2639caafa81bb0596c97bee2d4e40df50b36202343eb4d5c46b|14934852", - "3.11.1|macos_x86_64|2548a90e5cc957ccc5016b47060665a9d2cd4d5b4d61dcc32f5de3144d103826|15757902", - "3.10.0|linux_arm64 |3b72f5f8a60772fb156d0a4ab93272e8da7ef4d18e6421a7020d7c019f521fc1|13055719", - "3.10.0|linux_x86_64|bf56beb418bb529b5e0d6d43d56654c5a03f89c98400b409d1013a33d9586474|14530566", - "3.10.0|macos_arm64 |f7f6558ebc8211824032a7fdcf0d55ad064cb33ec1eeec3d18057b9fe2e04dbe|14446277", - "3.10.0|macos_x86_64|1e7fd528482ac2ef2d79fe300724b3e07ff6f846a2a9b0b0fe6f5fa05691786b|15237557", - "3.8.0|linux_arm64 |23e08035dc0106fe4e0bd85800fd795b2b9ecd9f32187aa16c49b0a917105161|12324642", - "3.8.0|linux_x86_64|8408c91e846c5b9ba15eb6b1a5a79fc22dd4d33ac6ea63388e5698d1b2320c8b|13626774", - "3.8.0|macos_arm64 |751348f1a4a876ffe089fd68df6aea310fd05fe3b163ab76aa62632e327122f3|14078604", - "3.8.0|macos_x86_64|532ddd6213891084873e5c2dcafa577f425ca662a6594a3389e288fc48dc2089|14318316" - ] + "value": true } ] } }, - "PANTS_HELM_LINT_STRICT": { + "PANTS_GOLANG_TAILOR_PACKAGE_TARGETS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]helm-lint-strict", - "config_key": "lint_strict", - "default": false, + "comma_separated_display_args": "--[no-]golang-tailor-package-targets", + "config_key": "tailor_package_targets", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]helm-lint-strict"], - "env_var": "PANTS_HELM_LINT_STRICT", + "display_args": ["--[no-]golang-tailor-package-targets"], + "env_var": "PANTS_GOLANG_TAILOR_PACKAGE_TARGETS", "fromfile": false, - "help": "Enables strict linting of Helm charts", + "help": "If true, add a `go_package` target with the `tailor` goal in every directory with a `.go` file.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--helm-lint-strict", "--no-helm-lint-strict"], + "scoped_cmd_line_args": [ + "--golang-tailor-package-targets", + "--no-golang-tailor-package-targets" + ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--lint-strict", "--no-lint-strict"], + "unscoped_cmd_line_args": [ + "--tailor-package-targets", + "--no-tailor-package-targets" + ], "value_history": { "ranked_values": [ { @@ -8810,59 +8826,67 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": true } ] } }, - "PANTS_HELM_POST_RENDERER_INSTALL_FROM_RESOLVE": { + "PANTS_GOOGLE_JAVA_FORMAT_AOSP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--helm-post-renderer-install-from-resolve=", - "config_key": "install_from_resolve", - "default": null, + "comma_separated_display_args": "--[no-]google-java-format-aosp", + "config_key": "aosp", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--helm-post-renderer-install-from-resolve="], - "env_var": "PANTS_HELM_POST_RENDERER_INSTALL_FROM_RESOLVE", + "display_args": ["--[no-]google-java-format-aosp"], + "env_var": "PANTS_GOOGLE_JAVA_FORMAT_AOSP", "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `helm-post-renderer` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "help": "Use AOSP style instead of Google Style (4-space indentation). (\"AOSP\" is the Android Open Source Project.)", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--helm-post-renderer-install-from-resolve"], + "scoped_cmd_line_args": [ + "--google-java-format-aosp", + "--no-google-java-format-aosp" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--install-from-resolve"], + "typ": "bool", + "unscoped_cmd_line_args": ["--aosp", "--no-aosp"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false } ] } }, - "PANTS_HELM_POST_RENDERER_INTERPRETER_CONSTRAINTS": { + "PANTS_GOOGLE_JAVA_FORMAT_ARTIFACTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--helm-post-renderer-interpreter-constraints=\"['', '', ...]\"", - "config_key": "interpreter_constraints", - "default": ["CPython>=3.7,<3.10"], + "comma_separated_display_args": "--google-java-format-artifacts=\"['', '', ...]\"", + "config_key": "artifacts", + "default": ["com.google.googlejavaformat:google-java-format:{version}"], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--helm-post-renderer-interpreter-constraints=\"['', '', ...]\"" + "--google-java-format-artifacts=\"['', '', ...]\"" ], - "env_var": "PANTS_HELM_POST_RENDERER_INTERPRETER_CONSTRAINTS", + "env_var": "PANTS_GOOGLE_JAVA_FORMAT_ARTIFACTS", "fromfile": false, - "help": "Python interpreter constraints for this tool.", + "help": "Artifact requirements for this tool using specified as either the address of a `jvm_artifact` target or, alternatively, as a colon-separated Maven coordinates (e.g., `group:name:version`). For Maven coordinates, the string `{version}` version will be substituted with the value of the `[google-java-format].version` option.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--helm-post-renderer-interpreter-constraints"], + "scoped_cmd_line_args": ["--google-java-format-artifacts"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--interpreter-constraints"], + "unscoped_cmd_line_args": ["--artifacts"], "value_history": { "ranked_values": [ { @@ -8873,31 +8897,33 @@ { "details": "", "rank": "HARDCODED", - "value": ["CPython>=3.7,<3.10"] + "value": [ + "com.google.googlejavaformat:google-java-format:{version}" + ] } ] } }, - "PANTS_HELM_POST_RENDERER_REQUIREMENTS": { + "PANTS_GOOGLE_JAVA_FORMAT_JVM_OPTIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--helm-post-renderer-requirements=\"['', '', ...]\"", - "config_key": "requirements", + "comma_separated_display_args": "--google-java-format-jvm-options=\"['', '', ...]\"", + "config_key": "jvm_options", "default": [], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--helm-post-renderer-requirements=\"['', '', ...]\"" + "--google-java-format-jvm-options=\"['', '', ...]\"" ], - "env_var": "PANTS_HELM_POST_RENDERER_REQUIREMENTS", + "env_var": "PANTS_GOOGLE_JAVA_FORMAT_JVM_OPTIONS", "fromfile": false, - "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "help": "List of JVM options to pass to `google-java-format` JVM processes.\n\nOptions set here will be added to those set in `[jvm].global_options`. Please check the documentation for the `jvm` subsystem to see what values are accepted here.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--helm-post-renderer-requirements"], + "scoped_cmd_line_args": ["--google-java-format-jvm-options"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--requirements"], + "unscoped_cmd_line_args": ["--jvm-options"], "value_history": { "ranked_values": [ { @@ -8913,59 +8939,24 @@ ] } }, - "PANTS_HELM_REGISTRIES": { + "PANTS_GOOGLE_JAVA_FORMAT_LOCKFILE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--helm-registries=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "registries", - "default": {}, + "comma_separated_display_args": "--google-java-format-lockfile=", + "config_key": "lockfile", + "default": "", "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--helm-registries=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_HELM_REGISTRIES", - "fromfile": true, - "help": "Configure Helm OCI registries. The schema for a registry entry is as follows:\n\n {\n \"registry-alias\": {\n \"address\": \"oci://registry-domain:port\",\n \"default\": bool,\n },\n ...\n }\n\nIf no registries are provided in either a `helm_chart` target, then all default addresses will be used, if any.\n\nThe `helm_chart.registries` may be provided with a list of registry addresses and registry alias prefixed with `@` to be used instead of the defaults.\n\nA configured registry is marked as default either by setting `default = true` or with an alias of `\"default\"`.\n\nRegistries also participate in resolving third party Helm charts uplodaded to those registries.", + "display_args": ["--google-java-format-lockfile="], + "env_var": "PANTS_GOOGLE_JAVA_FORMAT_LOCKFILE", + "fromfile": false, + "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/java/lint/google_java_format/google_java_format.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=google-java-format`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--helm-registries"], - "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--registries"], - "value_history": { - "ranked_values": [ - { - "details": "", - "rank": "NONE", - "value": {} - }, - { - "details": "", - "rank": "HARDCODED", - "value": {} - } - ] - } - }, - "PANTS_HELM_TAILOR": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]helm-tailor", - "config_key": "tailor", - "default": true, - "deprecated_message": "Deprecated, is scheduled to be removed in version: 2.19.0.dev0.", - "deprecation_active": true, - "display_args": ["--[no-]helm-tailor"], - "env_var": "PANTS_HELM_TAILOR", - "fromfile": false, - "help": "If true, add `helm_chart` targets with the `tailor` goal.", - "removal_hint": "Use `[helm].tailor_charts` instead.", - "removal_version": "2.19.0.dev0", - "scoped_cmd_line_args": ["--helm-tailor", "--no-helm-tailor"], + "scoped_cmd_line_args": ["--google-java-format-lockfile"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--tailor", "--no-tailor"], + "typ": "str", + "unscoped_cmd_line_args": ["--lockfile"], "value_history": { "ranked_values": [ { @@ -8976,32 +8967,32 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": "" } ] } }, - "PANTS_HELM_TAILOR_CHARTS": { + "PANTS_GOOGLE_JAVA_FORMAT_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]helm-tailor-charts", - "config_key": "tailor_charts", + "comma_separated_display_args": "--[no-]google-java-format-skip", + "config_key": "skip", "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]helm-tailor-charts"], - "env_var": "PANTS_HELM_TAILOR_CHARTS", + "display_args": ["--[no-]google-java-format-skip"], + "env_var": "PANTS_GOOGLE_JAVA_FORMAT_SKIP", "fromfile": false, - "help": "If true, add `helm_chart` targets with the `tailor` goal.", + "help": "If true, don't use Google Java Format when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--helm-tailor-charts", - "--no-helm-tailor-charts" + "--google-java-format-skip", + "--no-google-java-format-skip" ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--tailor-charts", "--no-tailor-charts"], + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -9017,27 +9008,24 @@ ] } }, - "PANTS_HELM_TAILOR_UNITTESTS": { + "PANTS_GOOGLE_JAVA_FORMAT_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]helm-tailor-unittests", - "config_key": "tailor_unittests", - "default": true, + "comma_separated_display_args": "--google-java-format-version=", + "config_key": "version", + "default": "1.13.0", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]helm-tailor-unittests"], - "env_var": "PANTS_HELM_TAILOR_UNITTESTS", + "display_args": ["--google-java-format-version="], + "env_var": "PANTS_GOOGLE_JAVA_FORMAT_VERSION", "fromfile": false, - "help": "If true, add `helm_unittest_tests` targets with the `tailor` goal.", + "help": "Version string for the tool. This is available for substitution in the `[google-java-format].artifacts` option by including the string `{version}`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--helm-tailor-unittests", - "--no-helm-tailor-unittests" - ], + "scoped_cmd_line_args": ["--google-java-format-version"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--tailor-unittests", "--no-tailor-unittests"], + "typ": "str", + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { @@ -9048,76 +9036,65 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": "1.13.0" } ] } }, - "PANTS_HELM_UNITTEST_COLOR": { + "PANTS_GO_GENERATE_ENV_VARS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]helm-unittest-color", - "config_key": "color", - "default": false, + "comma_separated_display_args": "--go-generate-env-vars=\"['', '', ...]\"", + "config_key": "env_vars", + "default": ["LANG", "LC_CTYPE", "LC_ALL", "PATH"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]helm-unittest-color"], - "env_var": "PANTS_HELM_UNITTEST_COLOR", + "display_args": ["--go-generate-env-vars=\"['', '', ...]\""], + "env_var": "PANTS_GO_GENERATE_ENV_VARS", "fromfile": false, - "help": "Enforce printing colored output even if stdout is not a tty.", + "help": "Environment variables to set when invoking generator programs. Entries are either strings in the form `ENV_VAR=value` to set an explicit value; or just `ENV_VAR` to copy the value from Pants's own environment.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--helm-unittest-color", - "--no-helm-unittest-color" - ], - "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--color", "--no-color"], + "scoped_cmd_line_args": ["--go-generate-env-vars"], + "target_field_name": "go_generate_env_vars", + "typ": "list", + "unscoped_cmd_line_args": ["--env-vars"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": ["LANG", "LC_CTYPE", "LC_ALL", "PATH"] } ] } }, - "PANTS_HELM_UNITTEST_KNOWN_VERSIONS": { + "PANTS_GO_TEST_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--helm-unittest-known-versions=\"['', '', ...]\"", - "config_key": "known_versions", - "default": [ - "0.3.3|linux_x86_64|8ebe20f77012a5d4e7139760cabe36dd1ea38e40b26f57de3f4165d96bd486ff|21685365", - "0.3.3|linux_arm64 |7f5e4426428cb9678f971576103df410e6fa38dd19b87fce4729f5217bd5c683|19944514", - "0.3.3|macos_x86_64|b2298a513b3cb6482ba2e42079c93ad18be8a31a230bd4dffdeb01ec2881d0f5|21497144", - "0.3.3|macos_arm64 |2365f5b3a99e6fc83218457046378b14039a3992e9ae96a4192bc2e43a33c742|20479438", - "0.2.8|linux_x86_64|d7c452559ad4406a1197435394fbcffe51198060de1aa9b4cb6feaf876776ba0|18299096", - "0.2.8|linux_arm64 |c793e241b063f0540ad9b4acc0a02e5a101bd9daea5bdf4d8562e9b2337fedb2|16943867", - "0.2.8|macos_x86_64|1dc95699320894bdebf055c4f4cc084c2cfa0133d3cb7fd6a4c0adca94df5c96|18161928", - "0.2.8|macos_arm64 |436e3167c26f71258b96e32c2877b4f97c051064db941de097cf3db2fc861342|17621648" - ], + "comma_separated_display_args": "--go-test-args=\"[, , ...]\", ... -- [ [ [...]]]", + "config_key": "args", + "default": [], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--helm-unittest-known-versions=\"['', '', ...]\"" + "--go-test-args=\"[, , ...]\"", + "... -- [ [ [...]]]" ], - "env_var": "PANTS_HELM_UNITTEST_KNOWN_VERSIONS", + "env_var": "PANTS_GO_TEST_ARGS", "fromfile": false, - "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", + "help": "Arguments to pass directly to Go test binary, e.g. `--go-test-args='-run TestFoo -v'`.\n\nKnown Go test options will be transformed into the form expected by the test binary, e.g. `-v` becomes `-test.v`. Run `go help testflag` from the Go SDK to learn more about the options supported by Go test binaries.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--helm-unittest-known-versions"], + "scoped_cmd_line_args": ["--go-test-args"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--known-versions"], + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { @@ -9128,40 +9105,32 @@ { "details": "", "rank": "HARDCODED", - "value": [ - "0.3.3|linux_x86_64|8ebe20f77012a5d4e7139760cabe36dd1ea38e40b26f57de3f4165d96bd486ff|21685365", - "0.3.3|linux_arm64 |7f5e4426428cb9678f971576103df410e6fa38dd19b87fce4729f5217bd5c683|19944514", - "0.3.3|macos_x86_64|b2298a513b3cb6482ba2e42079c93ad18be8a31a230bd4dffdeb01ec2881d0f5|21497144", - "0.3.3|macos_arm64 |2365f5b3a99e6fc83218457046378b14039a3992e9ae96a4192bc2e43a33c742|20479438", - "0.2.8|linux_x86_64|d7c452559ad4406a1197435394fbcffe51198060de1aa9b4cb6feaf876776ba0|18299096", - "0.2.8|linux_arm64 |c793e241b063f0540ad9b4acc0a02e5a101bd9daea5bdf4d8562e9b2337fedb2|16943867", - "0.2.8|macos_x86_64|1dc95699320894bdebf055c4f4cc084c2cfa0133d3cb7fd6a4c0adca94df5c96|18161928", - "0.2.8|macos_arm64 |436e3167c26f71258b96e32c2877b4f97c051064db941de097cf3db2fc861342|17621648" - ] + "value": [] } ] } }, - "PANTS_HELM_UNITTEST_OUTPUT_TYPE": { - "choices": ["XUnit", "NUnit", "JUnit"], - "comma_separated_choices": "XUnit, NUnit, JUnit", - "comma_separated_display_args": "--helm-unittest-output-type=", - "config_key": "output_type", - "default": "XUnit", + "PANTS_GO_TEST_BLOCK_PROFILE": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]go-test-block-profile", + "config_key": "block_profile", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--helm-unittest-output-type=" - ], - "env_var": "PANTS_HELM_UNITTEST_OUTPUT_TYPE", + "display_args": ["--[no-]go-test-block-profile"], + "env_var": "PANTS_GO_TEST_BLOCK_PROFILE", "fromfile": false, - "help": "Output type used for the test report.", + "help": "Capture a goroutine blocking profile from the execution of the test runner. The profile will be written to the file `block.out` in the test extra output directory. The test binary will also be written to the test extra output directory.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--helm-unittest-output-type"], + "scoped_cmd_line_args": [ + "--go-test-block-profile", + "--no-go-test-block-profile" + ], "target_field_name": null, - "typ": "HelmUnitTestReportFormat", - "unscoped_cmd_line_args": ["--output-type"], + "typ": "bool", + "unscoped_cmd_line_args": ["--block-profile", "--no-block-profile"], "value_history": { "ranked_values": [ { @@ -9172,32 +9141,32 @@ { "details": null, "rank": "HARDCODED", - "value": "XUnit" + "value": false } ] } }, - "PANTS_HELM_UNITTEST_SKIP": { + "PANTS_GO_TEST_COVERAGE_HTML": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]helm-unittest-skip", - "config_key": "skip", - "default": false, + "comma_separated_display_args": "--[no-]go-test-coverage-html", + "config_key": "coverage_html", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]helm-unittest-skip"], - "env_var": "PANTS_HELM_UNITTEST_SKIP", + "display_args": ["--[no-]go-test-coverage-html"], + "env_var": "PANTS_GO_TEST_COVERAGE_HTML", "fromfile": false, - "help": "If true, don't use helmunittestsubsystem when running `scie-pants-linux-x86_64 test`.", + "help": "If true, then convert coverage reports to HTML format and write a `coverage.html` file next to the raw coverage data.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--helm-unittest-skip", - "--no-helm-unittest-skip" + "--go-test-coverage-html", + "--no-go-test-coverage-html" ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "unscoped_cmd_line_args": ["--coverage-html", "--no-coverage-html"], "value_history": { "ranked_values": [ { @@ -9208,109 +9177,97 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": true } ] } }, - "PANTS_HELM_UNITTEST_URL_PLATFORM_MAPPING": { + "PANTS_GO_TEST_COVERAGE_OUTPUT_DIR": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--helm-unittest-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "url_platform_mapping", - "default": { - "linux_arm64": "linux-arm64", - "linux_x86_64": "linux-amd64", - "macos_arm64": "macos-arm64", - "macos_x86_64": "macos-amd64" - }, + "comma_separated_display_args": "--go-test-coverage-output-dir=", + "config_key": "coverage_output_dir", + "default": "{distdir}/coverage/go/{target_spec}", "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--helm-unittest-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_HELM_UNITTEST_URL_PLATFORM_MAPPING", + "display_args": ["--go-test-coverage-output-dir="], + "env_var": "PANTS_GO_TEST_COVERAGE_OUTPUT_DIR", "fromfile": false, - "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", + "help": "Path to write the Go coverage reports to. Must be relative to the build root.\n\nReplacements:\n\n - `{distdir}` is replaced with the Pants `distdir`.\n - `{target_spec}` is replaced with the address of the applicable `go_package` target with `/`\n characters replaced with dots (`.`).\n - `{import_path}` is replaced with the applicable package's import path. Subdirectories will be made\n for any path components separated by `/` characters.\n - `{import_path_escaped}` is replaced with the applicable package's import path but with\n slashes converted to underscores. This is deprecated and only exists to support behavior from\n earlier versions.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--helm-unittest-url-platform-mapping"], + "scoped_cmd_line_args": ["--go-test-coverage-output-dir"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--url-platform-mapping"], + "typ": "str", + "unscoped_cmd_line_args": ["--coverage-output-dir"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": {} + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": { - "linux_arm64": "linux-arm64", - "linux_x86_64": "linux-amd64", - "macos_arm64": "macos-arm64", - "macos_x86_64": "macos-amd64" - } + "value": "{distdir}/coverage/go/{target_spec}" } ] } }, - "PANTS_HELM_UNITTEST_URL_TEMPLATE": { + "PANTS_GO_TEST_COVERAGE_PACKAGES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--helm-unittest-url-template=", - "config_key": "url_template", - "default": "https://github.com/helm-unittest/helm-unittest/releases/download/v{version}/helm-unittest-{platform}-{version}.tgz", + "comma_separated_display_args": "--go-test-coverage-packages=\"['', '', ...]\"", + "config_key": "coverage_packages", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--helm-unittest-url-template="], - "env_var": "PANTS_HELM_UNITTEST_URL_TEMPLATE", + "display_args": [ + "--go-test-coverage-packages=\"['', '', ...]\"" + ], + "env_var": "PANTS_GO_TEST_COVERAGE_PACKAGES", "fromfile": false, - "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", + "help": "A list of \"import path patterns\" for determining which import paths will be instrumented for code coverage.\n\nFrom `go help packages`:\n\nAn import path is a pattern if it includes one or more \"...\" wildcards, each of which can match any string, including the empty string and strings containing slashes. Such a pattern expands to all package directories found in the GOPATH trees with names matching the patterns.\n\nTo make common patterns more convenient, there are two special cases. First, /... at the end of the pattern can match an empty string, so that net/... matches both net and packages in its subdirectories, like net/http. Second, any slash-separated pattern element containing a wildcard never participates in a match of the \"vendor\" element in the path of a vendored package, so that ./... does not match packages in subdirectories of ./vendor or ./mycode/vendor, but ./vendor/... and ./mycode/vendor/... do. Note, however, that a directory named vendor that itself contains code is not a vendored package: cmd/vendor would be a command named vendor, and the pattern cmd/... matches it. See golang.org/s/go15vendor for more about vendoring.\n\nThis option is similar to the `go test -coverpkg` option, but without support currently for reserved import path patterns like `std` and `all`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--helm-unittest-url-template"], + "scoped_cmd_line_args": ["--go-test-coverage-packages"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--url-template"], + "typ": "list", + "unscoped_cmd_line_args": ["--coverage-packages"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "https://github.com/helm-unittest/helm-unittest/releases/download/v{version}/helm-unittest-{platform}-{version}.tgz" + "value": [] } ] } }, - "PANTS_HELM_UNITTEST_USE_UNSUPPORTED_VERSION": { - "choices": ["error", "warning"], - "comma_separated_choices": "error, warning", - "comma_separated_display_args": "--helm-unittest-use-unsupported-version=", - "config_key": "use_unsupported_version", - "default": "error", + "PANTS_GO_TEST_COVER_MODE": { + "choices": ["set", "count", "atomic"], + "comma_separated_choices": "set, count, atomic", + "comma_separated_display_args": "--go-test-cover-mode=", + "config_key": "cover_mode", + "default": "set", "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--helm-unittest-use-unsupported-version=" - ], - "env_var": "PANTS_HELM_UNITTEST_USE_UNSUPPORTED_VERSION", + "display_args": ["--go-test-cover-mode="], + "env_var": "PANTS_GO_TEST_COVER_MODE", "fromfile": false, - "help": "\nWhat action to take in case the requested version of helmunittestsubsystem is not supported.\n\nSupported helmunittestsubsystem versions: unspecified\n", + "help": "Coverage mode to use when running Go tests with coverage analysis enabled via `--test-use-coverage`. Valid values are `set`, `count`, and `atomic`:\n\n * `set`: bool: does this statement run?\n * `count`: int: how many times does this statement run?\n * `atomic`: int: count, but correct in multithreaded tests; significantly more expensive.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--helm-unittest-use-unsupported-version"], + "scoped_cmd_line_args": ["--go-test-cover-mode"], "target_field_name": null, - "typ": "UnsupportedVersionUsage", - "unscoped_cmd_line_args": ["--use-unsupported-version"], + "typ": "GoCoverMode", + "unscoped_cmd_line_args": ["--cover-mode"], "value_history": { "ranked_values": [ { @@ -9321,29 +9278,32 @@ { "details": null, "rank": "HARDCODED", - "value": "error" + "value": "set" } ] } }, - "PANTS_HELM_UNITTEST_VERSION": { + "PANTS_GO_TEST_CPU_PROFILE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--helm-unittest-version=", - "config_key": "version", - "default": "0.3.3", + "comma_separated_display_args": "--[no-]go-test-cpu-profile", + "config_key": "cpu_profile", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--helm-unittest-version="], - "env_var": "PANTS_HELM_UNITTEST_VERSION", + "display_args": ["--[no-]go-test-cpu-profile"], + "env_var": "PANTS_GO_TEST_CPU_PROFILE", "fromfile": false, - "help": "Use this version of helmunittestsubsystem.", + "help": "Capture a CPU profile from the execution of the test runner. The profile will be written to the file `cpu.out` in the test extra output directory. The test binary will also be written to the test extra output directory.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--helm-unittest-version"], + "scoped_cmd_line_args": [ + "--go-test-cpu-profile", + "--no-go-test-cpu-profile" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--version"], + "typ": "bool", + "unscoped_cmd_line_args": ["--cpu-profile", "--no-cpu-profile"], "value_history": { "ranked_values": [ { @@ -9354,74 +9314,68 @@ { "details": null, "rank": "HARDCODED", - "value": "0.3.3" + "value": false } ] } }, - "PANTS_HELM_URL_PLATFORM_MAPPING": { + "PANTS_GO_TEST_FORCE_ASAN": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--helm-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "url_platform_mapping", - "default": { - "linux_arm64": "linux-arm64", - "linux_x86_64": "linux-amd64", - "macos_arm64": "darwin-arm64", - "macos_x86_64": "darwin-amd64" - }, + "comma_separated_display_args": "--[no-]go-test-force-asan", + "config_key": "force_asan", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--helm-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_HELM_URL_PLATFORM_MAPPING", + "display_args": ["--[no-]go-test-force-asan"], + "env_var": "PANTS_GO_TEST_FORCE_ASAN", "fromfile": false, - "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", + "help": "If true, then always enable interoperation between Go and the C/C++ \"address sanitizer\" when running tests regardless of the test-by-test `asan` field on the relevant `go_package` target.\n\nSee https://github.com/google/sanitizers/wiki/AddressSanitizer for additional information about the C/C++ address sanitizer.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--helm-url-platform-mapping"], + "scoped_cmd_line_args": [ + "--go-test-force-asan", + "--no-go-test-force-asan" + ], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--url-platform-mapping"], + "typ": "bool", + "unscoped_cmd_line_args": ["--force-asan", "--no-force-asan"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": {} + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": { - "linux_arm64": "linux-arm64", - "linux_x86_64": "linux-amd64", - "macos_arm64": "darwin-arm64", - "macos_x86_64": "darwin-amd64" - } + "value": false } ] } }, - "PANTS_HELM_URL_TEMPLATE": { + "PANTS_GO_TEST_FORCE_MSAN": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--helm-url-template=", - "config_key": "url_template", - "default": "https://get.helm.sh/helm-v{version}-{platform}.tar.gz", + "comma_separated_display_args": "--[no-]go-test-force-msan", + "config_key": "force_msan", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--helm-url-template="], - "env_var": "PANTS_HELM_URL_TEMPLATE", + "display_args": ["--[no-]go-test-force-msan"], + "env_var": "PANTS_GO_TEST_FORCE_MSAN", "fromfile": false, - "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", + "help": "If true, then always enable interoperation between Go and the C/C++ \"memory sanitizer\" when running tests regardless of the test-by-test `msan` field on the relevant `go_package` target.\n\nSee https://github.com/google/sanitizers/wiki/MemorySanitizer for additional information about the C/C++ memory sanitizer.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--helm-url-template"], + "scoped_cmd_line_args": [ + "--go-test-force-msan", + "--no-go-test-force-msan" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--url-template"], + "typ": "bool", + "unscoped_cmd_line_args": ["--force-msan", "--no-force-msan"], "value_history": { "ranked_values": [ { @@ -9432,31 +9386,32 @@ { "details": null, "rank": "HARDCODED", - "value": "https://get.helm.sh/helm-v{version}-{platform}.tar.gz" + "value": false } ] } }, - "PANTS_HELM_USE_UNSUPPORTED_VERSION": { - "choices": ["error", "warning"], - "comma_separated_choices": "error, warning", - "comma_separated_display_args": "--helm-use-unsupported-version=", - "config_key": "use_unsupported_version", - "default": "error", + "PANTS_GO_TEST_FORCE_RACE": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]go-test-force-race", + "config_key": "force_race", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--helm-use-unsupported-version=" - ], - "env_var": "PANTS_HELM_USE_UNSUPPORTED_VERSION", + "display_args": ["--[no-]go-test-force-race"], + "env_var": "PANTS_GO_TEST_FORCE_RACE", "fromfile": false, - "help": "\nWhat action to take in case the requested version of helmsubsystem is not supported.\n\nSupported helmsubsystem versions: unspecified\n", + "help": "If true, then always enable the Go data race detector when running tests regardless of the test-by-test `test_race` field on the relevant `go_package` target.\n\nSee https://go.dev/doc/articles/race_detector for additional information about the Go data race detector.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--helm-use-unsupported-version"], + "scoped_cmd_line_args": [ + "--go-test-force-race", + "--no-go-test-force-race" + ], "target_field_name": null, - "typ": "UnsupportedVersionUsage", - "unscoped_cmd_line_args": ["--use-unsupported-version"], + "typ": "bool", + "unscoped_cmd_line_args": ["--force-race", "--no-force-race"], "value_history": { "ranked_values": [ { @@ -9467,29 +9422,32 @@ { "details": null, "rank": "HARDCODED", - "value": "error" + "value": false } ] } }, - "PANTS_HELM_VERSION": { + "PANTS_GO_TEST_MEM_PROFILE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--helm-version=", - "config_key": "version", - "default": "3.12.3", + "comma_separated_display_args": "--[no-]go-test-mem-profile", + "config_key": "mem_profile", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--helm-version="], - "env_var": "PANTS_HELM_VERSION", + "display_args": ["--[no-]go-test-mem-profile"], + "env_var": "PANTS_GO_TEST_MEM_PROFILE", "fromfile": false, - "help": "Use this version of helmsubsystem.", + "help": "Capture an allocation profile from the execution of the test runner after tests have passed. The profile will be written to the file `mem.out` in the test extra output directory. The test binary will also be written to the test extra output directory.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--helm-version"], + "scoped_cmd_line_args": [ + "--go-test-mem-profile", + "--no-go-test-mem-profile" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--version"], + "typ": "bool", + "unscoped_cmd_line_args": ["--mem-profile", "--no-mem-profile"], "value_history": { "ranked_values": [ { @@ -9500,67 +9458,70 @@ { "details": null, "rank": "HARDCODED", - "value": "3.12.3" + "value": false } ] } }, - "PANTS_IGNORE": { + "PANTS_GO_TEST_MUTEX_PROFILE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pants-ignore=\"['', '', ...]\"", - "config_key": "pants_ignore", - "default": [".*/", "/dist/", "__pycache__"], + "comma_separated_display_args": "--[no-]go-test-mutex-profile", + "config_key": "mutex_profile", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pants-ignore=\"['', '', ...]\""], - "env_var": "PANTS_IGNORE", + "display_args": ["--[no-]go-test-mutex-profile"], + "env_var": "PANTS_GO_TEST_MUTEX_PROFILE", "fromfile": false, - "help": "Paths to ignore for all filesystem operations performed by pants (e.g. BUILD file scanning, glob matching, etc).\n\nPatterns use the gitignore syntax (https://git-scm.com/docs/gitignore). The `pants_distdir` and `pants_workdir` locations are automatically ignored.\n\n`pants_ignore` can be used in tandem with `pants_ignore_use_gitignore`; any rules specified here are applied after rules specified in a .gitignore file.", + "help": "Capture a mutex contention profile from the execution of the test runner when all tests are complete. The profile will be written to the file `mutex.out` in the test extra output directory. The test binary will also be written to the test extra output directory.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pants-ignore"], + "scoped_cmd_line_args": [ + "--go-test-mutex-profile", + "--no-go-test-mutex-profile" + ], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--pants-ignore"], + "typ": "bool", + "unscoped_cmd_line_args": ["--mutex-profile", "--no-mutex-profile"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [".*/", "/dist/", "__pycache__"] + "value": false } ] } }, - "PANTS_IGNORE_USE_GITIGNORE": { + "PANTS_GO_TEST_OUTPUT_TEST_BINARY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]pants-ignore-use-gitignore", - "config_key": "pants_ignore_use_gitignore", - "default": true, + "comma_separated_display_args": "--[no-]go-test-output-test-binary", + "config_key": "output_test_binary", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]pants-ignore-use-gitignore"], - "env_var": "PANTS_IGNORE_USE_GITIGNORE", + "display_args": ["--[no-]go-test-output-test-binary"], + "env_var": "PANTS_GO_TEST_OUTPUT_TEST_BINARY", "fromfile": false, - "help": "Include patterns from `.gitignore`, `.git/info/exclude`, and the global gitignore files in the option `[GLOBAL].pants_ignore`, which is used for Pants to ignore filesystem operations on those patterns.\n\nPatterns from `[GLOBAL].pants_ignore` take precedence over these files' rules. For example, you can use `!my_pattern` in `pants_ignore` to have Pants operate on files that are gitignored.\n\nWarning: this does not yet support reading nested gitignore files.", + "help": "Write the test binary to the test extra output directory.\n\nThis is similar to the `go test -c` option, but will still run the underlying test.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--pants-ignore-use-gitignore", - "--no-pants-ignore-use-gitignore" + "--go-test-output-test-binary", + "--no-go-test-output-test-binary" ], "target_field_name": null, "typ": "bool", "unscoped_cmd_line_args": [ - "--pants-ignore-use-gitignore", - "--no-pants-ignore-use-gitignore" + "--output-test-binary", + "--no-output-test-binary" ], "value_history": { "ranked_values": [ @@ -9572,62 +9533,62 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": false } ] } }, - "PANTS_IGNORE_WARNINGS": { + "PANTS_GO_TEST_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--ignore-warnings=\"['', '', ...]\"", - "config_key": "ignore_warnings", - "default": [], + "comma_separated_display_args": "--[no-]go-test-skip", + "config_key": "skip", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--ignore-warnings=\"['', '', ...]\""], - "env_var": "PANTS_IGNORE_WARNINGS", + "display_args": ["--[no-]go-test-skip"], + "env_var": "PANTS_GO_TEST_SKIP", "fromfile": false, - "help": "Ignore logs and warnings matching these strings.\n\nNormally, Pants will look for literal matches from the start of the log/warning message, but you can prefix the ignore with `$regex$` for Pants to instead treat your string as a regex pattern. For example:\n\n ignore_warnings = [\n \"DEPRECATED: option 'config' in scope 'flake8' will be removed\",\n '$regex$:No files\\s*'\n ]", + "help": "If true, don't use Go test binary when running `pants test`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--ignore-warnings"], + "scoped_cmd_line_args": ["--go-test-skip", "--no-go-test-skip"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--ignore-warnings"], + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": false } ] } }, - "PANTS_IPYTHON_CONSOLE_SCRIPT": { + "PANTS_GO_TEST_TRACE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--ipython-console-script=", - "config_key": "console_script", - "default": "ipython", + "comma_separated_display_args": "--[no-]go-test-trace", + "config_key": "trace", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--ipython-console-script="], - "env_var": "PANTS_IPYTHON_CONSOLE_SCRIPT", + "display_args": ["--[no-]go-test-trace"], + "env_var": "PANTS_GO_TEST_TRACE", "fromfile": false, - "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", + "help": "Capture an execution trace from the execution of the test runner. The trace will be written to the file `trace.out` in the test extra output directory.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--ipython-console-script"], + "scoped_cmd_line_args": ["--go-test-trace", "--no-go-test-trace"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--console-script"], + "typ": "bool", + "unscoped_cmd_line_args": ["--trace", "--no-trace"], "value_history": { "ranked_values": [ { @@ -9638,60 +9599,29 @@ { "details": null, "rank": "HARDCODED", - "value": "ipython" - } - ] - } - }, - "PANTS_IPYTHON_ENTRY_POINT": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--ipython-entry-point=", - "config_key": "entry_point", - "default": null, - "deprecated_message": null, - "deprecation_active": false, - "display_args": ["--ipython-entry-point="], - "env_var": "PANTS_IPYTHON_ENTRY_POINT", - "fromfile": false, - "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--ipython-entry-point"], - "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--entry-point"], - "value_history": { - "ranked_values": [ - { - "details": null, - "rank": "NONE", - "value": null + "value": false } ] } }, - "PANTS_IPYTHON_IGNORE_CWD": { + "PANTS_GO_VET_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]ipython-ignore-cwd", - "config_key": "ignore_cwd", - "default": true, + "comma_separated_display_args": "--[no-]go-vet-skip", + "config_key": "skip", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]ipython-ignore-cwd"], - "env_var": "PANTS_IPYTHON_IGNORE_CWD", + "display_args": ["--[no-]go-vet-skip"], + "env_var": "PANTS_GO_VET_SKIP", "fromfile": false, - "help": "Whether to tell IPython not to put the CWD on the import path.\n\nNormally you want this to be True, so that imports come from the hermetic environment Pants creates.\n\nHowever IPython<7.13.0 doesn't support this option, so if you're using an earlier version (e.g., because you have Python 2.7 code) then you will need to set this to False, and you may have issues with imports from your CWD shading the hermetic environment.", + "help": "If true, don't use `go vet` when running `pants lint`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--ipython-ignore-cwd", - "--no-ipython-ignore-cwd" - ], + "scoped_cmd_line_args": ["--go-vet-skip", "--no-go-vet-skip"], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--ignore-cwd", "--no-ignore-cwd"], + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -9702,57 +9632,36 @@ { "details": null, "rank": "HARDCODED", - "value": true - } - ] - } - }, - "PANTS_IPYTHON_INSTALL_FROM_RESOLVE": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--ipython-install-from-resolve=", - "config_key": "install_from_resolve", - "default": null, - "deprecated_message": null, - "deprecation_active": false, - "display_args": ["--ipython-install-from-resolve="], - "env_var": "PANTS_IPYTHON_INSTALL_FROM_RESOLVE", - "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `ipython` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--ipython-install-from-resolve"], - "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--install-from-resolve"], - "value_history": { - "ranked_values": [ - { - "details": null, - "rank": "NONE", - "value": null + "value": false } ] } }, - "PANTS_IPYTHON_REQUIREMENTS": { + "PANTS_GRPC_PYTHON_PLUGIN_KNOWN_VERSIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--ipython-requirements=\"['', '', ...]\"", - "config_key": "requirements", - "default": [], + "comma_separated_display_args": "--grpc-python-plugin-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", + "default": [ + "1.32.0|macos_arm64 |b2db586656463841aa2fd4aab34fb6bd3ef887b522d80e4f2f292146c357f533|6215304", + "1.32.0|macos_x86_64|b2db586656463841aa2fd4aab34fb6bd3ef887b522d80e4f2f292146c357f533|6215304", + "1.32.0|linux_arm64 |9365e728c603d64735963074340994245d324712344f63557ef3630864dd9f52|5233664", + "1.32.0|linux_x86_64|1af99df9bf733c17a75cbe379f3f9d9ff1627d8a8035ea057c3c78575afe1687|4965728" + ], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--ipython-requirements=\"['', '', ...]\""], - "env_var": "PANTS_IPYTHON_REQUIREMENTS", + "display_args": [ + "--grpc-python-plugin-known-versions=\"['', '', ...]\"" + ], + "env_var": "PANTS_GRPC_PYTHON_PLUGIN_KNOWN_VERSIONS", "fromfile": false, - "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--ipython-requirements"], + "scoped_cmd_line_args": ["--grpc-python-plugin-known-versions"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--requirements"], + "unscoped_cmd_line_args": ["--known-versions"], "value_history": { "ranked_values": [ { @@ -9763,100 +9672,114 @@ { "details": "", "rank": "HARDCODED", - "value": [] + "value": [ + "1.32.0|macos_arm64 |b2db586656463841aa2fd4aab34fb6bd3ef887b522d80e4f2f292146c357f533|6215304", + "1.32.0|macos_x86_64|b2db586656463841aa2fd4aab34fb6bd3ef887b522d80e4f2f292146c357f533|6215304", + "1.32.0|linux_arm64 |9365e728c603d64735963074340994245d324712344f63557ef3630864dd9f52|5233664", + "1.32.0|linux_x86_64|1af99df9bf733c17a75cbe379f3f9d9ff1627d8a8035ea057c3c78575afe1687|4965728" + ] } ] } }, - "PANTS_ISORT_ARGS": { + "PANTS_GRPC_PYTHON_PLUGIN_URL_PLATFORM_MAPPING": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--isort-args=\"[, , ...]\"", - "config_key": "args", - "default": [], + "comma_separated_display_args": "--grpc-python-plugin-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "url_platform_mapping", + "default": { + "linux_arm64": "linux/arm64", + "linux_x86_64": "linux/x86_64", + "macos_arm64": "macos/x86_64", + "macos_x86_64": "macos/x86_64" + }, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--isort-args=\"[, , ...]\""], - "env_var": "PANTS_ISORT_ARGS", + "display_args": [ + "--grpc-python-plugin-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_GRPC_PYTHON_PLUGIN_URL_PLATFORM_MAPPING", "fromfile": false, - "help": "Arguments to pass directly to isort, e.g. `--isort-args='--case-sensitive --trailing-comma'`.", + "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--isort-args"], + "scoped_cmd_line_args": ["--grpc-python-plugin-url-platform-mapping"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "typ": "dict", + "unscoped_cmd_line_args": ["--url-platform-mapping"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": [] + "value": {} }, { "details": "", "rank": "HARDCODED", - "value": [] + "value": { + "linux_arm64": "linux/arm64", + "linux_x86_64": "linux/x86_64", + "macos_arm64": "macos/x86_64", + "macos_x86_64": "macos/x86_64" + } } ] } }, - "PANTS_ISORT_CONFIG": { + "PANTS_GRPC_PYTHON_PLUGIN_URL_TEMPLATE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--isort-config=\"[, , ...]\"", - "config_key": "config", - "default": [], + "comma_separated_display_args": "--grpc-python-plugin-url-template=", + "config_key": "url_template", + "default": "https://binaries.pantsbuild.org/bin/grpc_python_plugin/{version}/{platform}/grpc_python_plugin", "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--isort-config=\"[, , ...]\"" - ], - "env_var": "PANTS_ISORT_CONFIG", + "display_args": ["--grpc-python-plugin-url-template="], + "env_var": "PANTS_GRPC_PYTHON_PLUGIN_URL_TEMPLATE", "fromfile": false, - "help": "Path to config file understood by isort (https://pycqa.github.io/isort/docs/configuration/config_files/).\n\nSetting this option will disable `[isort].config_discovery`. Use this option if the config is located in a non-standard location.\n\nIf using isort 5+ and you specify only 1 config file, Pants will configure isort's argv to point to your config file.", + "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--isort-config"], + "scoped_cmd_line_args": ["--grpc-python-plugin-url-template"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--config"], + "typ": "str", + "unscoped_cmd_line_args": ["--url-template"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": "https://binaries.pantsbuild.org/bin/grpc_python_plugin/{version}/{platform}/grpc_python_plugin" } ] } }, - "PANTS_ISORT_CONFIG_DISCOVERY": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]isort-config-discovery", - "config_key": "config_discovery", - "default": true, + "PANTS_GRPC_PYTHON_PLUGIN_USE_UNSUPPORTED_VERSION": { + "choices": ["error", "warning"], + "comma_separated_choices": "error, warning", + "comma_separated_display_args": "--grpc-python-plugin-use-unsupported-version=", + "config_key": "use_unsupported_version", + "default": "error", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]isort-config-discovery"], - "env_var": "PANTS_ISORT_CONFIG_DISCOVERY", + "display_args": [ + "--grpc-python-plugin-use-unsupported-version=" + ], + "env_var": "PANTS_GRPC_PYTHON_PLUGIN_USE_UNSUPPORTED_VERSION", "fromfile": false, - "help": "If true, Pants will include any relevant config files during runs (`.isort.cfg`, `pyproject.toml`, `setup.cfg`, `tox.ini` and `.editorconfig`).\n\nUse `[isort].config` instead if your config is in a non-standard location.", + "help": "\nWhat action to take in case the requested version of grpcpythonplugin is not supported.\n\nSupported grpcpythonplugin versions: unspecified\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--isort-config-discovery", - "--no-isort-config-discovery" - ], + "scoped_cmd_line_args": ["--grpc-python-plugin-use-unsupported-version"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], + "typ": "UnsupportedVersionUsage", + "unscoped_cmd_line_args": ["--use-unsupported-version"], "value_history": { "ranked_values": [ { @@ -9867,29 +9790,29 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": "error" } ] } }, - "PANTS_ISORT_CONSOLE_SCRIPT": { + "PANTS_GRPC_PYTHON_PLUGIN_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--isort-console-script=", - "config_key": "console_script", - "default": "isort", + "comma_separated_display_args": "--grpc-python-plugin-version=", + "config_key": "version", + "default": "1.32.0", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--isort-console-script="], - "env_var": "PANTS_ISORT_CONSOLE_SCRIPT", + "display_args": ["--grpc-python-plugin-version="], + "env_var": "PANTS_GRPC_PYTHON_PLUGIN_VERSION", "fromfile": false, - "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", + "help": "Use this version of grpcpythonplugin.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--isort-console-script"], + "scoped_cmd_line_args": ["--grpc-python-plugin-version"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--console-script"], + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { @@ -9900,57 +9823,62 @@ { "details": null, "rank": "HARDCODED", - "value": "isort" + "value": "1.32.0" } ] } }, - "PANTS_ISORT_ENTRY_POINT": { + "PANTS_HADOLINT_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--isort-entry-point=", - "config_key": "entry_point", - "default": null, + "comma_separated_display_args": "--hadolint-args=\"[, , ...]\"", + "config_key": "args", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--isort-entry-point="], - "env_var": "PANTS_ISORT_ENTRY_POINT", + "display_args": ["--hadolint-args=\"[, , ...]\""], + "env_var": "PANTS_HADOLINT_ARGS", "fromfile": false, - "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", + "help": "Arguments to pass directly to Hadolint, e.g. `--hadolint-args='--format json'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--isort-entry-point"], + "scoped_cmd_line_args": ["--hadolint-args"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--entry-point"], + "typ": "list", + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] } ] } }, - "PANTS_ISORT_INSTALL_FROM_RESOLVE": { + "PANTS_HADOLINT_CONFIG": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--isort-install-from-resolve=", - "config_key": "install_from_resolve", + "comma_separated_display_args": "--hadolint-config=", + "config_key": "config", "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--isort-install-from-resolve="], - "env_var": "PANTS_ISORT_INSTALL_FROM_RESOLVE", + "display_args": ["--hadolint-config="], + "env_var": "PANTS_HADOLINT_CONFIG", "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `isort` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "help": "Path to an YAML config file understood by Hadolint (https://github.com/hadolint/hadolint#configure).\n\nSetting this option will disable `[hadolint].config_discovery`. Use this option if the config is located in a non-standard location.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--isort-install-from-resolve"], + "scoped_cmd_line_args": ["--hadolint-config"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--install-from-resolve"], + "typ": "file_option", + "unscoped_cmd_line_args": ["--config"], "value_history": { "ranked_values": [ { @@ -9961,59 +9889,65 @@ ] } }, - "PANTS_ISORT_INTERPRETER_CONSTRAINTS": { + "PANTS_HADOLINT_CONFIG_DISCOVERY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--isort-interpreter-constraints=\"['', '', ...]\"", - "config_key": "interpreter_constraints", - "default": ["CPython>=3.7,<4"], + "comma_separated_display_args": "--[no-]hadolint-config-discovery", + "config_key": "config_discovery", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--isort-interpreter-constraints=\"['', '', ...]\"" - ], - "env_var": "PANTS_ISORT_INTERPRETER_CONSTRAINTS", + "display_args": ["--[no-]hadolint-config-discovery"], + "env_var": "PANTS_HADOLINT_CONFIG_DISCOVERY", "fromfile": false, - "help": "Python interpreter constraints for this tool.", + "help": "If true, Pants will include all relevant config files during runs (`.hadolint.yaml` and `.hadolint.yml`).\n\nUse `[hadolint].config` instead if your config is in a non-standard location.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--isort-interpreter-constraints"], + "scoped_cmd_line_args": [ + "--hadolint-config-discovery", + "--no-hadolint-config-discovery" + ], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--interpreter-constraints"], + "typ": "bool", + "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": ["CPython>=3.7,<4"] + "value": true } ] } }, - "PANTS_ISORT_REQUIREMENTS": { + "PANTS_HADOLINT_KNOWN_VERSIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--isort-requirements=\"['', '', ...]\"", - "config_key": "requirements", - "default": [], + "comma_separated_display_args": "--hadolint-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", + "default": [ + "v2.10.0|macos_x86_64|59f0523069a857ae918b8ac0774230013f7bcc00c1ea28119c2311353120867a|2514960", + "v2.10.0|macos_arm64 |59f0523069a857ae918b8ac0774230013f7bcc00c1ea28119c2311353120867a|2514960", + "v2.10.0|linux_x86_64|8ee6ff537341681f9e91bae2d5da451b15c575691e33980893732d866d3cefc4|2301804", + "v2.10.0|linux_arm64 |b53d5ab10707a585c9e72375d51b7357522300b5329cfa3f91e482687176e128|27954520" + ], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--isort-requirements=\"['', '', ...]\""], - "env_var": "PANTS_ISORT_REQUIREMENTS", + "display_args": ["--hadolint-known-versions=\"['', '', ...]\""], + "env_var": "PANTS_HADOLINT_KNOWN_VERSIONS", "fromfile": false, - "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--isort-requirements"], + "scoped_cmd_line_args": ["--hadolint-known-versions"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--requirements"], + "unscoped_cmd_line_args": ["--known-versions"], "value_history": { "ranked_values": [ { @@ -10024,26 +9958,31 @@ { "details": "", "rank": "HARDCODED", - "value": [] + "value": [ + "v2.10.0|macos_x86_64|59f0523069a857ae918b8ac0774230013f7bcc00c1ea28119c2311353120867a|2514960", + "v2.10.0|macos_arm64 |59f0523069a857ae918b8ac0774230013f7bcc00c1ea28119c2311353120867a|2514960", + "v2.10.0|linux_x86_64|8ee6ff537341681f9e91bae2d5da451b15c575691e33980893732d866d3cefc4|2301804", + "v2.10.0|linux_arm64 |b53d5ab10707a585c9e72375d51b7357522300b5329cfa3f91e482687176e128|27954520" + ] } ] } }, - "PANTS_ISORT_SKIP": { + "PANTS_HADOLINT_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]isort-skip", + "comma_separated_display_args": "--[no-]hadolint-skip", "config_key": "skip", "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]isort-skip"], - "env_var": "PANTS_ISORT_SKIP", + "display_args": ["--[no-]hadolint-skip"], + "env_var": "PANTS_HADOLINT_SKIP", "fromfile": false, - "help": "If true, don't use isort when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use Hadolint when running `pants lint`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--isort-skip", "--no-isort-skip"], + "scoped_cmd_line_args": ["--hadolint-skip", "--no-hadolint-skip"], "target_field_name": null, "typ": "bool", "unscoped_cmd_line_args": ["--skip", "--no-skip"], @@ -10062,156 +10001,104 @@ ] } }, - "PANTS_JARJAR_ARTIFACTS": { + "PANTS_HADOLINT_URL_PLATFORM_MAPPING": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--jarjar-artifacts=\"['', '', ...]\"", - "config_key": "artifacts", - "default": ["com.eed3si9n.jarjar:jarjar-assembly:{version}"], + "comma_separated_display_args": "--hadolint-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "url_platform_mapping", + "default": { + "linux_arm64": "Linux-arm64", + "linux_x86_64": "Linux-x86_64", + "macos_arm64": "Darwin-x86_64", + "macos_x86_64": "Darwin-x86_64" + }, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--jarjar-artifacts=\"['', '', ...]\""], - "env_var": "PANTS_JARJAR_ARTIFACTS", + "display_args": [ + "--hadolint-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_HADOLINT_URL_PLATFORM_MAPPING", "fromfile": false, - "help": "Artifact requirements for this tool using specified as either the address of a `jvm_artifact` target or, alternatively, as a colon-separated Maven coordinates (e.g., `group:name:version`). For Maven coordinates, the string `{version}` version will be substituted with the value of the `[jarjar].version` option.", + "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--jarjar-artifacts"], + "scoped_cmd_line_args": ["--hadolint-url-platform-mapping"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--artifacts"], + "typ": "dict", + "unscoped_cmd_line_args": ["--url-platform-mapping"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": [] + "value": {} }, { "details": "", "rank": "HARDCODED", - "value": ["com.eed3si9n.jarjar:jarjar-assembly:{version}"] + "value": { + "linux_arm64": "Linux-arm64", + "linux_x86_64": "Linux-x86_64", + "macos_arm64": "Darwin-x86_64", + "macos_x86_64": "Darwin-x86_64" + } } ] } }, - "PANTS_JARJAR_JVM_OPTIONS": { + "PANTS_HADOLINT_URL_TEMPLATE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--jarjar-jvm-options=\"['', '', ...]\"", - "config_key": "jvm_options", - "default": [], + "comma_separated_display_args": "--hadolint-url-template=", + "config_key": "url_template", + "default": "https://github.com/hadolint/hadolint/releases/download/{version}/hadolint-{platform}", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--jarjar-jvm-options=\"['', '', ...]\""], - "env_var": "PANTS_JARJAR_JVM_OPTIONS", + "display_args": ["--hadolint-url-template="], + "env_var": "PANTS_HADOLINT_URL_TEMPLATE", "fromfile": false, - "help": "List of JVM options to pass to `jarjar` JVM processes.\n\nOptions set here will be added to those set in `[jvm].global_options`. Please check the documentation for the `jvm` subsystem to see what values are accepted here.", + "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--jarjar-jvm-options"], + "scoped_cmd_line_args": ["--hadolint-url-template"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--jvm-options"], + "typ": "str", + "unscoped_cmd_line_args": ["--url-template"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": "https://github.com/hadolint/hadolint/releases/download/{version}/hadolint-{platform}" } ] } }, - "PANTS_JARJAR_LOCKFILE": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--jarjar-lockfile=", - "config_key": "lockfile", - "default": "", + "PANTS_HADOLINT_USE_UNSUPPORTED_VERSION": { + "choices": ["error", "warning"], + "comma_separated_choices": "error, warning", + "comma_separated_display_args": "--hadolint-use-unsupported-version=", + "config_key": "use_unsupported_version", + "default": "error", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--jarjar-lockfile="], - "env_var": "PANTS_JARJAR_LOCKFILE", + "display_args": [ + "--hadolint-use-unsupported-version=" + ], + "env_var": "PANTS_HADOLINT_USE_UNSUPPORTED_VERSION", "fromfile": false, - "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/jvm/shading/jarjar.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `scie-pants-linux-x86_64 jvm-generate-lockfiles --resolve=jarjar`.", + "help": "\nWhat action to take in case the requested version of Hadolint is not supported.\n\nSupported Hadolint versions: unspecified\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--jarjar-lockfile"], + "scoped_cmd_line_args": ["--hadolint-use-unsupported-version"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--lockfile"], - "value_history": { - "ranked_values": [ - { - "details": null, - "rank": "NONE", - "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": "" - } - ] - } - }, - "PANTS_JARJAR_MISPLACED_CLASS_STRATEGY": { - "choices": ["fatal", "skip", "omit", "move"], - "comma_separated_choices": "fatal, skip, omit, move", - "comma_separated_display_args": "--jarjar-misplaced-class-strategy=", - "config_key": "misplaced_class_strategy", - "default": null, - "deprecated_message": null, - "deprecation_active": false, - "display_args": [ - "--jarjar-misplaced-class-strategy=" - ], - "env_var": "PANTS_JARJAR_MISPLACED_CLASS_STRATEGY", - "fromfile": false, - "help": "The strategy to use when processing class files that are in the wrong package.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--jarjar-misplaced-class-strategy"], - "target_field_name": null, - "typ": "MisplacedClassStrategy", - "unscoped_cmd_line_args": ["--misplaced-class-strategy"], - "value_history": { - "ranked_values": [ - { - "details": null, - "rank": "NONE", - "value": null - } - ] - } - }, - "PANTS_JARJAR_SKIP_MANIFEST": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]jarjar-skip-manifest", - "config_key": "skip_manifest", - "default": false, - "deprecated_message": null, - "deprecation_active": false, - "display_args": ["--[no-]jarjar-skip-manifest"], - "env_var": "PANTS_JARJAR_SKIP_MANIFEST", - "fromfile": false, - "help": "Skip the processing of the JAR manifest.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": [ - "--jarjar-skip-manifest", - "--no-jarjar-skip-manifest" - ], - "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--skip-manifest", "--no-skip-manifest"], + "typ": "UnsupportedVersionUsage", + "unscoped_cmd_line_args": ["--use-unsupported-version"], "value_history": { "ranked_values": [ { @@ -10222,26 +10109,26 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": "error" } ] } }, - "PANTS_JARJAR_VERSION": { + "PANTS_HADOLINT_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--jarjar-version=", + "comma_separated_display_args": "--hadolint-version=", "config_key": "version", - "default": "1.8.1", + "default": "v2.10.0", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--jarjar-version="], - "env_var": "PANTS_JARJAR_VERSION", + "display_args": ["--hadolint-version="], + "env_var": "PANTS_HADOLINT_VERSION", "fromfile": false, - "help": "Version string for the tool. This is available for substitution in the `[jarjar].artifacts` option by including the string `{version}`.", + "help": "Use this version of Hadolint.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--jarjar-version"], + "scoped_cmd_line_args": ["--hadolint-version"], "target_field_name": null, "typ": "str", "unscoped_cmd_line_args": ["--version"], @@ -10255,26 +10142,29 @@ { "details": null, "rank": "HARDCODED", - "value": "1.8.1" + "value": "v2.10.0" } ] } }, - "PANTS_JAVAC_ARGS": { + "PANTS_HELM_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--javac-args=\"[, , ...]\"", + "comma_separated_display_args": "--helm-args=\"[, , ...]\", ... -- [ [ [...]]]", "config_key": "args", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--javac-args=\"[, , ...]\""], - "env_var": "PANTS_JAVAC_ARGS", + "display_args": [ + "--helm-args=\"[, , ...]\"", + "... -- [ [ [...]]]" + ], + "env_var": "PANTS_HELM_ARGS", "fromfile": false, - "help": "Arguments to pass directly to javac, e.g. `--javac-args='-g -deprecation'`.", + "help": "Arguments to pass directly to helmsubsystem, e.g. `--helm-args='--dry-run'`.\n\nAdditional arguments to pass to Helm command line.\n\nOnly a subset of Helm arguments are considered valid as passthrough arguments as most of them have equivalents in the form of fields of the different target types.\n\nThe list of valid arguments is as follows:\n\n * --atomic\n * --cleanup-on-fail\n * --create-namespace\n * --debug\n * --dry-run\n * --force\n * --wait\n * --wait-for-jobs\n * --kubeconfig\n * --kube-context\n * --kube-apiserver\n * --kube-as-group\n * --kube-as-user\n * --kube-ca-file\n * --kube-token\n\nBefore attempting to use passthrough arguments, check the reference of each of the available target types to see what fields are accepted in each of them.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--javac-args"], + "scoped_cmd_line_args": ["--helm-args"], "target_field_name": null, "typ": "list", "unscoped_cmd_line_args": ["--args"], @@ -10293,173 +10183,150 @@ ] } }, - "PANTS_JAVAC_TAILOR_SOURCE_TARGETS": { + "PANTS_HELM_DEFAULT_REGISTRY_REPOSITORY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]javac-tailor-source-targets", - "config_key": "tailor_source_targets", - "default": true, + "comma_separated_display_args": "--helm-default-registry-repository=", + "config_key": "default_registry_repository", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]javac-tailor-source-targets"], - "env_var": "PANTS_JAVAC_TAILOR_SOURCE_TARGETS", + "display_args": ["--helm-default-registry-repository="], + "env_var": "PANTS_HELM_DEFAULT_REGISTRY_REPOSITORY", "fromfile": false, - "help": "If true, add `java_sources` and `java_tests` targets with the `tailor` goal.", + "help": "Default location where to push Helm charts in the available registries when no specific one has been given.\n\nIf no registry repository is given, charts will be pushed to the root of the OCI registry.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--javac-tailor-source-targets", - "--no-javac-tailor-source-targets" - ], + "scoped_cmd_line_args": ["--helm-default-registry-repository"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--tailor-source-targets", - "--no-tailor-source-targets" - ], + "typ": "str", + "unscoped_cmd_line_args": ["--default-registry-repository"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": true } ] } }, - "PANTS_JAVA_INFER_CONSUMED_TYPES": { + "PANTS_HELM_EXTRA_ENV_VARS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]java-infer-consumed-types", - "config_key": "consumed_types", - "default": true, + "comma_separated_display_args": "--helm-extra-env-vars=\"['', '', ...]\"", + "config_key": "extra_env_vars", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]java-infer-consumed-types"], - "env_var": "PANTS_JAVA_INFER_CONSUMED_TYPES", + "display_args": ["--helm-extra-env-vars=\"['', '', ...]\""], + "env_var": "PANTS_HELM_EXTRA_ENV_VARS", "fromfile": false, - "help": "Infer a target's dependencies by parsing consumed types from sources.", + "help": "Additional environment variables that would be made available to all Helm processes or during value interpolation.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--java-infer-consumed-types", - "--no-java-infer-consumed-types" - ], + "scoped_cmd_line_args": ["--helm-extra-env-vars"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--consumed-types", "--no-consumed-types"], + "typ": "list", + "unscoped_cmd_line_args": ["--extra-env-vars"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": true + "value": [] } ] } }, - "PANTS_JAVA_INFER_IMPORTS": { + "PANTS_HELM_K8S_PARSER_INSTALL_FROM_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]java-infer-imports", - "config_key": "imports", - "default": true, + "comma_separated_display_args": "--helm-k8s-parser-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]java-infer-imports"], - "env_var": "PANTS_JAVA_INFER_IMPORTS", + "display_args": ["--helm-k8s-parser-install-from-resolve="], + "env_var": "PANTS_HELM_K8S_PARSER_INSTALL_FROM_RESOLVE", "fromfile": false, - "help": "Infer a target's dependencies by parsing import statements from sources.", + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `helm-k8s-parser` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--java-infer-imports", - "--no-java-infer-imports" - ], + "scoped_cmd_line_args": ["--helm-k8s-parser-install-from-resolve"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--imports", "--no-imports"], + "typ": "str", + "unscoped_cmd_line_args": ["--install-from-resolve"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": true } ] } }, - "PANTS_JAVA_INFER_THIRD_PARTY_IMPORT_MAPPING": { + "PANTS_HELM_K8S_PARSER_INTERPRETER_CONSTRAINTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--java-infer-third-party-import-mapping=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "third_party_import_mapping", - "default": {}, + "comma_separated_display_args": "--helm-k8s-parser-interpreter-constraints=\"['', '', ...]\"", + "config_key": "interpreter_constraints", + "default": ["CPython>=3.7,<3.10"], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--java-infer-third-party-import-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + "--helm-k8s-parser-interpreter-constraints=\"['', '', ...]\"" ], - "env_var": "PANTS_JAVA_INFER_THIRD_PARTY_IMPORT_MAPPING", + "env_var": "PANTS_HELM_K8S_PARSER_INTERPRETER_CONSTRAINTS", "fromfile": false, - "help": "A dictionary mapping a Java package path to a JVM artifact coordinate (GROUP:ARTIFACT) without the version.\n\nSee `jvm_artifact` for more information on the mapping syntax.", + "help": "Python interpreter constraints for this tool.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--java-infer-third-party-import-mapping"], + "scoped_cmd_line_args": ["--helm-k8s-parser-interpreter-constraints"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--third-party-import-mapping"], + "typ": "list", + "unscoped_cmd_line_args": ["--interpreter-constraints"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": {} + "value": [] }, { "details": "", "rank": "HARDCODED", - "value": {} + "value": ["CPython>=3.7,<3.10"] } ] } }, - "PANTS_JUNIT_ARGS": { + "PANTS_HELM_K8S_PARSER_REQUIREMENTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--junit-args=\"[, , ...]\", ... -- [ [ [...]]]", - "config_key": "args", + "comma_separated_display_args": "--helm-k8s-parser-requirements=\"['', '', ...]\"", + "config_key": "requirements", "default": [], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--junit-args=\"[, , ...]\"", - "... -- [ [ [...]]]" + "--helm-k8s-parser-requirements=\"['', '', ...]\"" ], - "env_var": "PANTS_JUNIT_ARGS", + "env_var": "PANTS_HELM_K8S_PARSER_REQUIREMENTS", "fromfile": false, - "help": "Arguments to pass directly to JUnit, e.g. `--junit-args='--disable-ansi-colors'`.", + "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--junit-args"], + "scoped_cmd_line_args": ["--helm-k8s-parser-requirements"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "unscoped_cmd_line_args": ["--requirements"], "value_history": { "ranked_values": [ { @@ -10475,28 +10342,53 @@ ] } }, - "PANTS_JUNIT_ARTIFACTS": { + "PANTS_HELM_KNOWN_VERSIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--junit-artifacts=\"['', '', ...]\"", - "config_key": "artifacts", + "comma_separated_display_args": "--helm-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", "default": [ - "org.junit.platform:junit-platform-console:1.7.2", - "org.junit.jupiter:junit-jupiter-engine:{version}", - "org.junit.vintage:junit-vintage-engine:{version}" + "3.12.3|linux_arm64|79ef06935fb47e432c0c91bdefd140e5b543ec46376007ca14a52e5ed3023088|14355040", + "3.12.3|linux_x86_64|1b2313cd198d45eab00cc37c38f6b1ca0a948ba279c29e322bdf426d406129b5|16028423", + "3.12.3|macos_arm64|240b0a7da9cae208000eff3d3fb95e0fa1f4903d95be62c3f276f7630b12dae1|16019570", + "3.12.3|macos_x86_64|1bdbbeec5a12dd0c1cd4efd8948a156d33e1e2f51140e2a51e1e5e7b11b81d47|16828211", + "3.12.2|linux_arm64|cfafbae85c31afde88c69f0e5053610c8c455826081c1b2d665d9b44c31b3759|14350624", + "3.12.2|linux_x86_64|2b6efaa009891d3703869f4be80ab86faa33fa83d9d5ff2f6492a8aebe97b219|16028750", + "3.12.2|macos_arm64|b60ee16847e28879ae298a20ba4672fc84f741410f438e645277205824ddbf55|16021202", + "3.12.2|macos_x86_64|6e8bfc84a640e0dc47cc49cfc2d0a482f011f4249e2dff2a7e23c7ef2df1b64e|16824814", + "3.11.3|linux_arm64|0816db0efd033c78c3cc1c37506967947b01965b9c0739fe13ec2b1eea08f601|14475471", + "3.11.3|linux_x86_64|ca2d5d40d4cdfb9a3a6205dd803b5bc8def00bd2f13e5526c127e9b667974a89|15489735", + "3.11.3|macos_arm64|267e4d50b68e8854b9cc44517da9ab2f47dec39787fed9f7eba42080d61ac7f8|15451086", + "3.11.3|macos_x86_64|9d029df37664b50e427442a600e4e065fa75fd74dac996c831ac68359654b2c4|16275303", + "3.11.2|linux_arm64|444b65100e224beee0a3a3a54cb19dad37388fa9217ab2782ba63551c4a2e128|14090242", + "3.11.2|linux_x86_64|781d826daec584f9d50a01f0f7dadfd25a3312217a14aa2fbb85107b014ac8ca|15026301", + "3.11.2|macos_arm64|f61a3aa55827de2d8c64a2063fd744b618b443ed063871b79f52069e90813151|14932800", + "3.11.2|macos_x86_64|404938fd2c6eff9e0dab830b0db943fca9e1572cd3d7ee40904705760faa390f|15759988", + "3.11.1|linux_arm64 |919173e8fb7a3b54d76af9feb92e49e86d5a80c5185020bae8c393fa0f0de1e8|13484900", + "3.11.1|linux_x86_64|0b1be96b66fab4770526f136f5f1a385a47c41923d33aab0dcb500e0f6c1bf7c|15023104", + "3.11.1|macos_arm64 |43d0198a7a2ea2639caafa81bb0596c97bee2d4e40df50b36202343eb4d5c46b|14934852", + "3.11.1|macos_x86_64|2548a90e5cc957ccc5016b47060665a9d2cd4d5b4d61dcc32f5de3144d103826|15757902", + "3.10.0|linux_arm64 |3b72f5f8a60772fb156d0a4ab93272e8da7ef4d18e6421a7020d7c019f521fc1|13055719", + "3.10.0|linux_x86_64|bf56beb418bb529b5e0d6d43d56654c5a03f89c98400b409d1013a33d9586474|14530566", + "3.10.0|macos_arm64 |f7f6558ebc8211824032a7fdcf0d55ad064cb33ec1eeec3d18057b9fe2e04dbe|14446277", + "3.10.0|macos_x86_64|1e7fd528482ac2ef2d79fe300724b3e07ff6f846a2a9b0b0fe6f5fa05691786b|15237557", + "3.8.0|linux_arm64 |23e08035dc0106fe4e0bd85800fd795b2b9ecd9f32187aa16c49b0a917105161|12324642", + "3.8.0|linux_x86_64|8408c91e846c5b9ba15eb6b1a5a79fc22dd4d33ac6ea63388e5698d1b2320c8b|13626774", + "3.8.0|macos_arm64 |751348f1a4a876ffe089fd68df6aea310fd05fe3b163ab76aa62632e327122f3|14078604", + "3.8.0|macos_x86_64|532ddd6213891084873e5c2dcafa577f425ca662a6594a3389e288fc48dc2089|14318316" ], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--junit-artifacts=\"['', '', ...]\""], - "env_var": "PANTS_JUNIT_ARTIFACTS", + "display_args": ["--helm-known-versions=\"['', '', ...]\""], + "env_var": "PANTS_HELM_KNOWN_VERSIONS", "fromfile": false, - "help": "Artifact requirements for this tool using specified as either the address of a `jvm_artifact` target or, alternatively, as a colon-separated Maven coordinates (e.g., `group:name:version`). For Maven coordinates, the string `{version}` version will be substituted with the value of the `[junit].version` option.", + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--junit-artifacts"], + "scoped_cmd_line_args": ["--helm-known-versions"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--artifacts"], + "unscoped_cmd_line_args": ["--known-versions"], "value_history": { "ranked_values": [ { @@ -10508,197 +10400,223 @@ "details": "", "rank": "HARDCODED", "value": [ - "org.junit.platform:junit-platform-console:1.7.2", - "org.junit.jupiter:junit-jupiter-engine:{version}", - "org.junit.vintage:junit-vintage-engine:{version}" + "3.12.3|linux_arm64|79ef06935fb47e432c0c91bdefd140e5b543ec46376007ca14a52e5ed3023088|14355040", + "3.12.3|linux_x86_64|1b2313cd198d45eab00cc37c38f6b1ca0a948ba279c29e322bdf426d406129b5|16028423", + "3.12.3|macos_arm64|240b0a7da9cae208000eff3d3fb95e0fa1f4903d95be62c3f276f7630b12dae1|16019570", + "3.12.3|macos_x86_64|1bdbbeec5a12dd0c1cd4efd8948a156d33e1e2f51140e2a51e1e5e7b11b81d47|16828211", + "3.12.2|linux_arm64|cfafbae85c31afde88c69f0e5053610c8c455826081c1b2d665d9b44c31b3759|14350624", + "3.12.2|linux_x86_64|2b6efaa009891d3703869f4be80ab86faa33fa83d9d5ff2f6492a8aebe97b219|16028750", + "3.12.2|macos_arm64|b60ee16847e28879ae298a20ba4672fc84f741410f438e645277205824ddbf55|16021202", + "3.12.2|macos_x86_64|6e8bfc84a640e0dc47cc49cfc2d0a482f011f4249e2dff2a7e23c7ef2df1b64e|16824814", + "3.11.3|linux_arm64|0816db0efd033c78c3cc1c37506967947b01965b9c0739fe13ec2b1eea08f601|14475471", + "3.11.3|linux_x86_64|ca2d5d40d4cdfb9a3a6205dd803b5bc8def00bd2f13e5526c127e9b667974a89|15489735", + "3.11.3|macos_arm64|267e4d50b68e8854b9cc44517da9ab2f47dec39787fed9f7eba42080d61ac7f8|15451086", + "3.11.3|macos_x86_64|9d029df37664b50e427442a600e4e065fa75fd74dac996c831ac68359654b2c4|16275303", + "3.11.2|linux_arm64|444b65100e224beee0a3a3a54cb19dad37388fa9217ab2782ba63551c4a2e128|14090242", + "3.11.2|linux_x86_64|781d826daec584f9d50a01f0f7dadfd25a3312217a14aa2fbb85107b014ac8ca|15026301", + "3.11.2|macos_arm64|f61a3aa55827de2d8c64a2063fd744b618b443ed063871b79f52069e90813151|14932800", + "3.11.2|macos_x86_64|404938fd2c6eff9e0dab830b0db943fca9e1572cd3d7ee40904705760faa390f|15759988", + "3.11.1|linux_arm64 |919173e8fb7a3b54d76af9feb92e49e86d5a80c5185020bae8c393fa0f0de1e8|13484900", + "3.11.1|linux_x86_64|0b1be96b66fab4770526f136f5f1a385a47c41923d33aab0dcb500e0f6c1bf7c|15023104", + "3.11.1|macos_arm64 |43d0198a7a2ea2639caafa81bb0596c97bee2d4e40df50b36202343eb4d5c46b|14934852", + "3.11.1|macos_x86_64|2548a90e5cc957ccc5016b47060665a9d2cd4d5b4d61dcc32f5de3144d103826|15757902", + "3.10.0|linux_arm64 |3b72f5f8a60772fb156d0a4ab93272e8da7ef4d18e6421a7020d7c019f521fc1|13055719", + "3.10.0|linux_x86_64|bf56beb418bb529b5e0d6d43d56654c5a03f89c98400b409d1013a33d9586474|14530566", + "3.10.0|macos_arm64 |f7f6558ebc8211824032a7fdcf0d55ad064cb33ec1eeec3d18057b9fe2e04dbe|14446277", + "3.10.0|macos_x86_64|1e7fd528482ac2ef2d79fe300724b3e07ff6f846a2a9b0b0fe6f5fa05691786b|15237557", + "3.8.0|linux_arm64 |23e08035dc0106fe4e0bd85800fd795b2b9ecd9f32187aa16c49b0a917105161|12324642", + "3.8.0|linux_x86_64|8408c91e846c5b9ba15eb6b1a5a79fc22dd4d33ac6ea63388e5698d1b2320c8b|13626774", + "3.8.0|macos_arm64 |751348f1a4a876ffe089fd68df6aea310fd05fe3b163ab76aa62632e327122f3|14078604", + "3.8.0|macos_x86_64|532ddd6213891084873e5c2dcafa577f425ca662a6594a3389e288fc48dc2089|14318316" ] } ] } }, - "PANTS_JUNIT_JVM_OPTIONS": { + "PANTS_HELM_LINT_STRICT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--junit-jvm-options=\"['', '', ...]\"", - "config_key": "jvm_options", - "default": [], + "comma_separated_display_args": "--[no-]helm-lint-strict", + "config_key": "lint_strict", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--junit-jvm-options=\"['', '', ...]\""], - "env_var": "PANTS_JUNIT_JVM_OPTIONS", + "display_args": ["--[no-]helm-lint-strict"], + "env_var": "PANTS_HELM_LINT_STRICT", "fromfile": false, - "help": "List of JVM options to pass to `junit` JVM processes.\n\nOptions set here will be added to those set in `[jvm].global_options`. Please check the documentation for the `jvm` subsystem to see what values are accepted here.", + "help": "Enables strict linting of Helm charts", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--junit-jvm-options"], + "scoped_cmd_line_args": ["--helm-lint-strict", "--no-helm-lint-strict"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--jvm-options"], + "typ": "bool", + "unscoped_cmd_line_args": ["--lint-strict", "--no-lint-strict"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": false } ] } }, - "PANTS_JUNIT_LOCKFILE": { + "PANTS_HELM_POST_RENDERER_INSTALL_FROM_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--junit-lockfile=", - "config_key": "lockfile", - "default": "", + "comma_separated_display_args": "--helm-post-renderer-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--junit-lockfile="], - "env_var": "PANTS_JUNIT_LOCKFILE", + "display_args": ["--helm-post-renderer-install-from-resolve="], + "env_var": "PANTS_HELM_POST_RENDERER_INSTALL_FROM_RESOLVE", "fromfile": false, - "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/jvm/test/junit.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `scie-pants-linux-x86_64 jvm-generate-lockfiles --resolve=junit`.", + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `helm-post-renderer` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--junit-lockfile"], + "scoped_cmd_line_args": ["--helm-post-renderer-install-from-resolve"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--lockfile"], + "unscoped_cmd_line_args": ["--install-from-resolve"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": "" } ] } }, - "PANTS_JUNIT_SKIP": { + "PANTS_HELM_POST_RENDERER_INTERPRETER_CONSTRAINTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]junit-skip", - "config_key": "skip", - "default": false, + "comma_separated_display_args": "--helm-post-renderer-interpreter-constraints=\"['', '', ...]\"", + "config_key": "interpreter_constraints", + "default": ["CPython>=3.7,<3.10"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]junit-skip"], - "env_var": "PANTS_JUNIT_SKIP", + "display_args": [ + "--helm-post-renderer-interpreter-constraints=\"['', '', ...]\"" + ], + "env_var": "PANTS_HELM_POST_RENDERER_INTERPRETER_CONSTRAINTS", "fromfile": false, - "help": "If true, don't use JUnit when running `scie-pants-linux-x86_64 test`.", + "help": "Python interpreter constraints for this tool.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--junit-skip", "--no-junit-skip"], + "scoped_cmd_line_args": ["--helm-post-renderer-interpreter-constraints"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "typ": "list", + "unscoped_cmd_line_args": ["--interpreter-constraints"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": ["CPython>=3.7,<3.10"] } ] } }, - "PANTS_JUNIT_VERSION": { + "PANTS_HELM_POST_RENDERER_REQUIREMENTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--junit-version=", - "config_key": "version", - "default": "5.7.2", + "comma_separated_display_args": "--helm-post-renderer-requirements=\"['', '', ...]\"", + "config_key": "requirements", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--junit-version="], - "env_var": "PANTS_JUNIT_VERSION", + "display_args": [ + "--helm-post-renderer-requirements=\"['', '', ...]\"" + ], + "env_var": "PANTS_HELM_POST_RENDERER_REQUIREMENTS", "fromfile": false, - "help": "Version string for the tool. This is available for substitution in the `[junit].artifacts` option by including the string `{version}`.", + "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--junit-version"], + "scoped_cmd_line_args": ["--helm-post-renderer-requirements"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--version"], + "typ": "list", + "unscoped_cmd_line_args": ["--requirements"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "5.7.2" + "value": [] } ] } }, - "PANTS_JVM_DEBUG_ARGS": { + "PANTS_HELM_REGISTRIES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--jvm-debug-args=\"['', '', ...]\"", - "config_key": "debug_args", - "default": [], + "comma_separated_display_args": "--helm-registries=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "registries", + "default": {}, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--jvm-debug-args=\"['', '', ...]\""], - "env_var": "PANTS_JVM_DEBUG_ARGS", - "fromfile": false, - "help": "Extra JVM arguments to use when running tests in debug mode.\n\nFor example, if you want to attach a remote debugger, use something like `['-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005']`.", + "display_args": [ + "--helm-registries=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_HELM_REGISTRIES", + "fromfile": true, + "help": "Configure Helm OCI registries. The schema for a registry entry is as follows:\n\n {\n \"registry-alias\": {\n \"address\": \"oci://registry-domain:port\",\n \"default\": bool,\n },\n ...\n }\n\nIf no registries are provided in either a `helm_chart` target, then all default addresses will be used, if any.\n\nThe `helm_chart.registries` may be provided with a list of registry addresses and registry alias prefixed with `@` to be used instead of the defaults.\n\nA configured registry is marked as default either by setting `default = true` or with an alias of `\"default\"`.\n\nRegistries also participate in resolving third party Helm charts uplodaded to those registries.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--jvm-debug-args"], + "scoped_cmd_line_args": ["--helm-registries"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--debug-args"], + "typ": "dict", + "unscoped_cmd_line_args": ["--registries"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": [] + "value": {} }, { "details": "", "rank": "HARDCODED", - "value": [] + "value": {} } ] } }, - "PANTS_JVM_DEFAULT_RESOLVE": { + "PANTS_HELM_TAILOR": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--jvm-default-resolve=", - "config_key": "default_resolve", - "default": "jvm-default", - "deprecated_message": null, - "deprecation_active": false, - "display_args": ["--jvm-default-resolve="], - "env_var": "PANTS_JVM_DEFAULT_RESOLVE", + "comma_separated_display_args": "--[no-]helm-tailor", + "config_key": "tailor", + "default": true, + "deprecated_message": "Deprecated, is scheduled to be removed in version: 2.19.0.dev0.", + "deprecation_active": true, + "display_args": ["--[no-]helm-tailor"], + "env_var": "PANTS_HELM_TAILOR", "fromfile": false, - "help": "The default value used for the `resolve` and `compatible_resolves` fields.\n\nThe name must be defined as a resolve in `[jvm].resolves`.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--jvm-default-resolve"], + "help": "If true, add `helm_chart` targets with the `tailor` goal.", + "removal_hint": "Use `[helm].tailor_charts` instead.", + "removal_version": "2.19.0.dev0", + "scoped_cmd_line_args": ["--helm-tailor", "--no-helm-tailor"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--default-resolve"], + "typ": "bool", + "unscoped_cmd_line_args": ["--tailor", "--no-tailor"], "value_history": { "ranked_values": [ { @@ -10709,62 +10627,68 @@ { "details": null, "rank": "HARDCODED", - "value": "jvm-default" + "value": true } ] } }, - "PANTS_JVM_GLOBAL_OPTIONS": { + "PANTS_HELM_TAILOR_CHARTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--jvm-global-options=\"['', '', ...]\"", - "config_key": "global_options", - "default": [], + "comma_separated_display_args": "--[no-]helm-tailor-charts", + "config_key": "tailor_charts", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--jvm-global-options=\"['', '', ...]\""], - "env_var": "PANTS_JVM_GLOBAL_OPTIONS", + "display_args": ["--[no-]helm-tailor-charts"], + "env_var": "PANTS_HELM_TAILOR_CHARTS", "fromfile": false, - "help": "List of JVM options to pass to all JVM processes.\n\nOptions set here will be used by any JVM processes required by Pants, with the exception of heap memory settings like `-Xmx`, which need to be set using `[GLOBAL].process_total_child_memory_usage` and `[GLOBAL].process_per_child_memory_usage`.", + "help": "If true, add `helm_chart` targets with the `tailor` goal.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--jvm-global-options"], - "target_field_name": "jvm_global_options", - "typ": "list", - "unscoped_cmd_line_args": ["--global-options"], + "scoped_cmd_line_args": [ + "--helm-tailor-charts", + "--no-helm-tailor-charts" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--tailor-charts", "--no-tailor-charts"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": false } ] } }, - "PANTS_JVM_JDK": { + "PANTS_HELM_TAILOR_UNITTESTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--jvm-jdk=", - "config_key": "jdk", - "default": "temurin:1.11", + "comma_separated_display_args": "--[no-]helm-tailor-unittests", + "config_key": "tailor_unittests", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--jvm-jdk="], - "env_var": "PANTS_JVM_JDK", + "display_args": ["--[no-]helm-tailor-unittests"], + "env_var": "PANTS_HELM_TAILOR_UNITTESTS", "fromfile": false, - "help": "The JDK to use.\n\nThis string will be passed directly to Coursier's `--jvm` parameter. Run `cs java --available` to see a list of available JVM versions on your platform.\n\nIf the string `'system'` is passed, Coursier's `--system-jvm` option will be used instead, but note that this can lead to inconsistent behavior since the JVM version will be whatever happens to be found first on the system's PATH.", + "help": "If true, add `helm_unittest_tests` targets with the `tailor` goal.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--jvm-jdk"], + "scoped_cmd_line_args": [ + "--helm-tailor-unittests", + "--no-helm-tailor-unittests" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--jdk"], + "typ": "bool", + "unscoped_cmd_line_args": ["--tailor-unittests", "--no-tailor-unittests"], "value_history": { "ranked_values": [ { @@ -10775,29 +10699,32 @@ { "details": null, "rank": "HARDCODED", - "value": "temurin:1.11" + "value": true } ] } }, - "PANTS_JVM_NAILGUN_REMOTE_CACHE_SPECULATION_DELAY": { + "PANTS_HELM_UNITTEST_COLOR": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--jvm-nailgun-remote-cache-speculation-delay=", - "config_key": "nailgun_remote_cache_speculation_delay", - "default": 1000, + "comma_separated_display_args": "--[no-]helm-unittest-color", + "config_key": "color", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--jvm-nailgun-remote-cache-speculation-delay="], - "env_var": "PANTS_JVM_NAILGUN_REMOTE_CACHE_SPECULATION_DELAY", + "display_args": ["--[no-]helm-unittest-color"], + "env_var": "PANTS_HELM_UNITTEST_COLOR", "fromfile": false, - "help": "The time in milliseconds to delay speculation of nailgun processes while reading from the remote cache.\n\nWhen speculating, a remote cache hit will cancel the local copy of a process. But because nailgun does not natively support cancellation, that requires killing a nailgun server, which will mean that future processes take longer to warm up.\n\nThis setting allows for trading off waiting for potentially slow cache entries against potentially having to warm up a new nailgun server.", + "help": "Enforce printing colored output even if stdout is not a tty.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--jvm-nailgun-remote-cache-speculation-delay"], + "scoped_cmd_line_args": [ + "--helm-unittest-color", + "--no-helm-unittest-color" + ], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--nailgun-remote-cache-speculation-delay"], + "typ": "bool", + "unscoped_cmd_line_args": ["--color", "--no-color"], "value_history": { "ranked_values": [ { @@ -10808,35 +10735,120 @@ { "details": null, "rank": "HARDCODED", - "value": 1000 + "value": false } ] } }, - "PANTS_JVM_REPRODUCIBLE_JARS": { + "PANTS_HELM_UNITTEST_KNOWN_VERSIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]jvm-reproducible-jars", - "config_key": "reproducible_jars", + "comma_separated_display_args": "--helm-unittest-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", + "default": [ + "0.3.3|linux_x86_64|8ebe20f77012a5d4e7139760cabe36dd1ea38e40b26f57de3f4165d96bd486ff|21685365", + "0.3.3|linux_arm64 |7f5e4426428cb9678f971576103df410e6fa38dd19b87fce4729f5217bd5c683|19944514", + "0.3.3|macos_x86_64|b2298a513b3cb6482ba2e42079c93ad18be8a31a230bd4dffdeb01ec2881d0f5|21497144", + "0.3.3|macos_arm64 |2365f5b3a99e6fc83218457046378b14039a3992e9ae96a4192bc2e43a33c742|20479438", + "0.2.8|linux_x86_64|d7c452559ad4406a1197435394fbcffe51198060de1aa9b4cb6feaf876776ba0|18299096", + "0.2.8|linux_arm64 |c793e241b063f0540ad9b4acc0a02e5a101bd9daea5bdf4d8562e9b2337fedb2|16943867", + "0.2.8|macos_x86_64|1dc95699320894bdebf055c4f4cc084c2cfa0133d3cb7fd6a4c0adca94df5c96|18161928", + "0.2.8|macos_arm64 |436e3167c26f71258b96e32c2877b4f97c051064db941de097cf3db2fc861342|17621648" + ], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--helm-unittest-known-versions=\"['', '', ...]\"" + ], + "env_var": "PANTS_HELM_UNITTEST_KNOWN_VERSIONS", + "fromfile": false, + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--helm-unittest-known-versions"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--known-versions"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [ + "0.3.3|linux_x86_64|8ebe20f77012a5d4e7139760cabe36dd1ea38e40b26f57de3f4165d96bd486ff|21685365", + "0.3.3|linux_arm64 |7f5e4426428cb9678f971576103df410e6fa38dd19b87fce4729f5217bd5c683|19944514", + "0.3.3|macos_x86_64|b2298a513b3cb6482ba2e42079c93ad18be8a31a230bd4dffdeb01ec2881d0f5|21497144", + "0.3.3|macos_arm64 |2365f5b3a99e6fc83218457046378b14039a3992e9ae96a4192bc2e43a33c742|20479438", + "0.2.8|linux_x86_64|d7c452559ad4406a1197435394fbcffe51198060de1aa9b4cb6feaf876776ba0|18299096", + "0.2.8|linux_arm64 |c793e241b063f0540ad9b4acc0a02e5a101bd9daea5bdf4d8562e9b2337fedb2|16943867", + "0.2.8|macos_x86_64|1dc95699320894bdebf055c4f4cc084c2cfa0133d3cb7fd6a4c0adca94df5c96|18161928", + "0.2.8|macos_arm64 |436e3167c26f71258b96e32c2877b4f97c051064db941de097cf3db2fc861342|17621648" + ] + } + ] + } + }, + "PANTS_HELM_UNITTEST_OUTPUT_TYPE": { + "choices": ["XUnit", "NUnit", "JUnit"], + "comma_separated_choices": "XUnit, NUnit, JUnit", + "comma_separated_display_args": "--helm-unittest-output-type=", + "config_key": "output_type", + "default": "XUnit", + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--helm-unittest-output-type=" + ], + "env_var": "PANTS_HELM_UNITTEST_OUTPUT_TYPE", + "fromfile": false, + "help": "Output type used for the test report.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--helm-unittest-output-type"], + "target_field_name": null, + "typ": "HelmUnitTestReportFormat", + "unscoped_cmd_line_args": ["--output-type"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "XUnit" + } + ] + } + }, + "PANTS_HELM_UNITTEST_SKIP": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]helm-unittest-skip", + "config_key": "skip", "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]jvm-reproducible-jars"], - "env_var": "PANTS_JVM_REPRODUCIBLE_JARS", + "display_args": ["--[no-]helm-unittest-skip"], + "env_var": "PANTS_HELM_UNITTEST_SKIP", "fromfile": false, - "help": "When enabled, JAR files produced by JVM tools will have timestamps stripped.\n\nBecause some compilers do not support this step as a native operation, it can have a performance cost, and is not enabled by default.", + "help": "If true, don't use helmunittestsubsystem when running `pants test`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--jvm-reproducible-jars", - "--no-jvm-reproducible-jars" + "--helm-unittest-skip", + "--no-helm-unittest-skip" ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": [ - "--reproducible-jars", - "--no-reproducible-jars" - ], + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -10852,26 +10864,31 @@ ] } }, - "PANTS_JVM_RESOLVES": { + "PANTS_HELM_UNITTEST_URL_PLATFORM_MAPPING": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--jvm-resolves=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "resolves", + "comma_separated_display_args": "--helm-unittest-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "url_platform_mapping", "default": { - "jvm-default": "3rdparty/jvm/default.lock" + "linux_arm64": "linux-arm64", + "linux_x86_64": "linux-amd64", + "macos_arm64": "macos-arm64", + "macos_x86_64": "macos-amd64" }, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--jvm-resolves=\"{'key1': val1, 'key2': val2, ...}\""], - "env_var": "PANTS_JVM_RESOLVES", + "display_args": [ + "--helm-unittest-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_HELM_UNITTEST_URL_PLATFORM_MAPPING", "fromfile": false, - "help": "A dictionary mapping resolve names to the path of their lockfile.", + "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--jvm-resolves"], + "scoped_cmd_line_args": ["--helm-unittest-url-platform-mapping"], "target_field_name": null, "typ": "dict", - "unscoped_cmd_line_args": ["--resolves"], + "unscoped_cmd_line_args": ["--url-platform-mapping"], "value_history": { "ranked_values": [ { @@ -10883,30 +10900,33 @@ "details": "", "rank": "HARDCODED", "value": { - "jvm-default": "3rdparty/jvm/default.lock" + "linux_arm64": "linux-arm64", + "linux_x86_64": "linux-amd64", + "macos_arm64": "macos-arm64", + "macos_x86_64": "macos-amd64" } } ] } }, - "PANTS_JVM_TOOL_JDK": { + "PANTS_HELM_UNITTEST_URL_TEMPLATE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--jvm-tool-jdk=", - "config_key": "tool_jdk", - "default": "temurin:1.11", + "comma_separated_display_args": "--helm-unittest-url-template=", + "config_key": "url_template", + "default": "https://github.com/helm-unittest/helm-unittest/releases/download/v{version}/helm-unittest-{platform}-{version}.tgz", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--jvm-tool-jdk="], - "env_var": "PANTS_JVM_TOOL_JDK", + "display_args": ["--helm-unittest-url-template="], + "env_var": "PANTS_HELM_UNITTEST_URL_TEMPLATE", "fromfile": false, - "help": "The JDK to use when building and running Pants' internal JVM support code and other non-compiler tools. See `jvm` help for supported values.", + "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--jvm-tool-jdk"], + "scoped_cmd_line_args": ["--helm-unittest-url-template"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--tool-jdk"], + "unscoped_cmd_line_args": ["--url-template"], "value_history": { "ranked_values": [ { @@ -10917,29 +10937,31 @@ { "details": null, "rank": "HARDCODED", - "value": "temurin:1.11" + "value": "https://github.com/helm-unittest/helm-unittest/releases/download/v{version}/helm-unittest-{platform}-{version}.tgz" } ] } }, - "PANTS_KEEP_SANDBOXES": { - "choices": ["always", "on_failure", "never"], - "comma_separated_choices": "always, on_failure, never", - "comma_separated_display_args": "--keep-sandboxes=", - "config_key": "keep_sandboxes", - "default": "never", + "PANTS_HELM_UNITTEST_USE_UNSUPPORTED_VERSION": { + "choices": ["error", "warning"], + "comma_separated_choices": "error, warning", + "comma_separated_display_args": "--helm-unittest-use-unsupported-version=", + "config_key": "use_unsupported_version", + "default": "error", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--keep-sandboxes="], - "env_var": "PANTS_KEEP_SANDBOXES", + "display_args": [ + "--helm-unittest-use-unsupported-version=" + ], + "env_var": "PANTS_HELM_UNITTEST_USE_UNSUPPORTED_VERSION", "fromfile": false, - "help": "Controls whether Pants will clean up local directories used as chroots for running processes.\n\nPants will log their location so that you can inspect the chroot, and run the `__run.sh` script to recreate the process using the same argv and environment variables used by Pants. This option is useful for debugging.", + "help": "\nWhat action to take in case the requested version of helmunittestsubsystem is not supported.\n\nSupported helmunittestsubsystem versions: unspecified\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--keep-sandboxes"], + "scoped_cmd_line_args": ["--helm-unittest-use-unsupported-version"], "target_field_name": null, - "typ": "KeepSandboxes", - "unscoped_cmd_line_args": ["--keep-sandboxes"], + "typ": "UnsupportedVersionUsage", + "unscoped_cmd_line_args": ["--use-unsupported-version"], "value_history": { "ranked_values": [ { @@ -10950,64 +10972,69 @@ { "details": null, "rank": "HARDCODED", - "value": "never" + "value": "error" } ] } }, - "PANTS_KOTLINC_ARGS": { + "PANTS_HELM_UNITTEST_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--kotlinc-args=\"[, , ...]\"", - "config_key": "args", - "default": [], + "comma_separated_display_args": "--helm-unittest-version=", + "config_key": "version", + "default": "0.3.3", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--kotlinc-args=\"[, , ...]\""], - "env_var": "PANTS_KOTLINC_ARGS", + "display_args": ["--helm-unittest-version="], + "env_var": "PANTS_HELM_UNITTEST_VERSION", "fromfile": false, - "help": "Arguments to pass directly to kotlinc, e.g. `--kotlinc-args='-Werror'`.\n\nSee https://kotlinlang.org/docs/compiler-reference.html for supported arguments.", + "help": "Use this version of helmunittestsubsystem.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--kotlinc-args"], + "scoped_cmd_line_args": ["--helm-unittest-version"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "typ": "str", + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": "0.3.3" } ] } }, - "PANTS_KOTLINC_PLUGINS_FOR_RESOLVE": { + "PANTS_HELM_URL_PLATFORM_MAPPING": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--kotlinc-plugins-for-resolve=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "plugins_for_resolve", - "default": {}, + "comma_separated_display_args": "--helm-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "url_platform_mapping", + "default": { + "linux_arm64": "linux-arm64", + "linux_x86_64": "linux-amd64", + "macos_arm64": "darwin-arm64", + "macos_x86_64": "darwin-amd64" + }, "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--kotlinc-plugins-for-resolve=\"{'key1': val1, 'key2': val2, ...}\"" + "--helm-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" ], - "env_var": "PANTS_KOTLINC_PLUGINS_FOR_RESOLVE", + "env_var": "PANTS_HELM_URL_PLATFORM_MAPPING", "fromfile": false, - "help": "A dictionary, whose keys are the names of each JVM resolve that requires default `kotlinc` plugins, and the value is a comma-separated string consisting of kotlinc plugin names. Each specified plugin must have a corresponding `kotlinc_plugin` target that specifies that name in either its `plugin_name` field or is the same as its target name.", + "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--kotlinc-plugins-for-resolve"], + "scoped_cmd_line_args": ["--helm-url-platform-mapping"], "target_field_name": null, "typ": "dict", - "unscoped_cmd_line_args": ["--plugins-for-resolve"], + "unscoped_cmd_line_args": ["--url-platform-mapping"], "value_history": { "ranked_values": [ { @@ -11018,32 +11045,34 @@ { "details": "", "rank": "HARDCODED", - "value": {} + "value": { + "linux_arm64": "linux-arm64", + "linux_x86_64": "linux-amd64", + "macos_arm64": "darwin-arm64", + "macos_x86_64": "darwin-amd64" + } } ] } }, - "PANTS_KOTLIN_INFER_CONSUMED_TYPES": { + "PANTS_HELM_URL_TEMPLATE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]kotlin-infer-consumed-types", - "config_key": "consumed_types", - "default": true, + "comma_separated_display_args": "--helm-url-template=", + "config_key": "url_template", + "default": "https://get.helm.sh/helm-v{version}-{platform}.tar.gz", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]kotlin-infer-consumed-types"], - "env_var": "PANTS_KOTLIN_INFER_CONSUMED_TYPES", + "display_args": ["--helm-url-template="], + "env_var": "PANTS_HELM_URL_TEMPLATE", "fromfile": false, - "help": "Infer a target's dependencies by parsing consumed types from sources.", + "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--kotlin-infer-consumed-types", - "--no-kotlin-infer-consumed-types" - ], + "scoped_cmd_line_args": ["--helm-url-template"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--consumed-types", "--no-consumed-types"], + "typ": "str", + "unscoped_cmd_line_args": ["--url-template"], "value_history": { "ranked_values": [ { @@ -11054,32 +11083,31 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": "https://get.helm.sh/helm-v{version}-{platform}.tar.gz" } ] } }, - "PANTS_KOTLIN_INFER_IMPORTS": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]kotlin-infer-imports", - "config_key": "imports", - "default": true, + "PANTS_HELM_USE_UNSUPPORTED_VERSION": { + "choices": ["error", "warning"], + "comma_separated_choices": "error, warning", + "comma_separated_display_args": "--helm-use-unsupported-version=", + "config_key": "use_unsupported_version", + "default": "error", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]kotlin-infer-imports"], - "env_var": "PANTS_KOTLIN_INFER_IMPORTS", + "display_args": [ + "--helm-use-unsupported-version=" + ], + "env_var": "PANTS_HELM_USE_UNSUPPORTED_VERSION", "fromfile": false, - "help": "Infer a target's dependencies by parsing import statements from sources.", + "help": "\nWhat action to take in case the requested version of helmsubsystem is not supported.\n\nSupported helmsubsystem versions: unspecified\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--kotlin-infer-imports", - "--no-kotlin-infer-imports" - ], + "scoped_cmd_line_args": ["--helm-use-unsupported-version"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--imports", "--no-imports"], + "typ": "UnsupportedVersionUsage", + "unscoped_cmd_line_args": ["--use-unsupported-version"], "value_history": { "ranked_values": [ { @@ -11090,35 +11118,29 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": "error" } ] } }, - "PANTS_KOTLIN_TAILOR_SOURCE_TARGETS": { + "PANTS_HELM_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]kotlin-tailor-source-targets", - "config_key": "tailor_source_targets", - "default": true, + "comma_separated_display_args": "--helm-version=", + "config_key": "version", + "default": "3.12.3", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]kotlin-tailor-source-targets"], - "env_var": "PANTS_KOTLIN_TAILOR_SOURCE_TARGETS", + "display_args": ["--helm-version="], + "env_var": "PANTS_HELM_VERSION", "fromfile": false, - "help": "If true, add `kotlin_sources` targets with the `tailor` goal.", + "help": "Use this version of helmsubsystem.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--kotlin-tailor-source-targets", - "--no-kotlin-tailor-source-targets" - ], + "scoped_cmd_line_args": ["--helm-version"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--tailor-source-targets", - "--no-tailor-source-targets" - ], + "typ": "str", + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { @@ -11129,97 +11151,101 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": "3.12.3" } ] } }, - "PANTS_KOTLIN_VERSION_FOR_RESOLVE": { + "PANTS_IGNORE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--kotlin-version-for-resolve=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "version_for_resolve", - "default": {}, + "comma_separated_display_args": "--pants-ignore=\"['', '', ...]\"", + "config_key": "pants_ignore", + "default": [".*/", "/dist/", "__pycache__"], "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--kotlin-version-for-resolve=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_KOTLIN_VERSION_FOR_RESOLVE", + "display_args": ["--pants-ignore=\"['', '', ...]\""], + "env_var": "PANTS_IGNORE", "fromfile": false, - "help": "A dictionary mapping the name of a resolve to the Kotlin version to use for all Kotlin targets consuming that resolve.", + "help": "Paths to ignore for all filesystem operations performed by pants (e.g. BUILD file scanning, glob matching, etc).\n\nPatterns use the gitignore syntax (https://git-scm.com/docs/gitignore). The `pants_distdir` and `pants_workdir` locations are automatically ignored.\n\n`pants_ignore` can be used in tandem with `pants_ignore_use_gitignore`; any rules specified here are applied after rules specified in a .gitignore file.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--kotlin-version-for-resolve"], + "scoped_cmd_line_args": ["--pants-ignore"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--version-for-resolve"], + "typ": "list", + "unscoped_cmd_line_args": ["--pants-ignore"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": {} + "value": [] }, { "details": "", "rank": "HARDCODED", - "value": {} + "value": [".*/", "/dist/", "__pycache__"] } ] } }, - "PANTS_KTLINT_ARTIFACTS": { + "PANTS_IGNORE_USE_GITIGNORE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--ktlint-artifacts=\"['', '', ...]\"", - "config_key": "artifacts", - "default": ["com.pinterest:ktlint:{version}"], + "comma_separated_display_args": "--[no-]pants-ignore-use-gitignore", + "config_key": "pants_ignore_use_gitignore", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--ktlint-artifacts=\"['', '', ...]\""], - "env_var": "PANTS_KTLINT_ARTIFACTS", + "display_args": ["--[no-]pants-ignore-use-gitignore"], + "env_var": "PANTS_IGNORE_USE_GITIGNORE", "fromfile": false, - "help": "Artifact requirements for this tool using specified as either the address of a `jvm_artifact` target or, alternatively, as a colon-separated Maven coordinates (e.g., `group:name:version`). For Maven coordinates, the string `{version}` version will be substituted with the value of the `[ktlint].version` option.", + "help": "Include patterns from `.gitignore`, `.git/info/exclude`, and the global gitignore files in the option `[GLOBAL].pants_ignore`, which is used for Pants to ignore filesystem operations on those patterns.\n\nPatterns from `[GLOBAL].pants_ignore` take precedence over these files' rules. For example, you can use `!my_pattern` in `pants_ignore` to have Pants operate on files that are gitignored.\n\nWarning: this does not yet support reading nested gitignore files.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--ktlint-artifacts"], + "scoped_cmd_line_args": [ + "--pants-ignore-use-gitignore", + "--no-pants-ignore-use-gitignore" + ], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--artifacts"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--pants-ignore-use-gitignore", + "--no-pants-ignore-use-gitignore" + ], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": ["com.pinterest:ktlint:{version}"] + "value": true } ] } }, - "PANTS_KTLINT_JVM_OPTIONS": { + "PANTS_IGNORE_WARNINGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--ktlint-jvm-options=\"['', '', ...]\"", - "config_key": "jvm_options", + "comma_separated_display_args": "--ignore-warnings=\"['', '', ...]\"", + "config_key": "ignore_warnings", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--ktlint-jvm-options=\"['', '', ...]\""], - "env_var": "PANTS_KTLINT_JVM_OPTIONS", + "display_args": ["--ignore-warnings=\"['', '', ...]\""], + "env_var": "PANTS_IGNORE_WARNINGS", "fromfile": false, - "help": "List of JVM options to pass to `ktlint` JVM processes.\n\nOptions set here will be added to those set in `[jvm].global_options`. Please check the documentation for the `jvm` subsystem to see what values are accepted here.", + "help": "Ignore logs and warnings matching these strings.\n\nNormally, Pants will look for literal matches from the start of the log/warning message, but you can prefix the ignore with `$regex$` for Pants to instead treat your string as a regex pattern. For example:\n\n ignore_warnings = [\n \"DEPRECATED: option 'config' in scope 'flake8' will be removed\",\n '$regex$:No files\\s*'\n ]", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--ktlint-jvm-options"], + "scoped_cmd_line_args": ["--ignore-warnings"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--jvm-options"], + "unscoped_cmd_line_args": ["--ignore-warnings"], "value_history": { "ranked_values": [ { @@ -11235,24 +11261,24 @@ ] } }, - "PANTS_KTLINT_LOCKFILE": { + "PANTS_IPYTHON_CONSOLE_SCRIPT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--ktlint-lockfile=", - "config_key": "lockfile", - "default": "", + "comma_separated_display_args": "--ipython-console-script=", + "config_key": "console_script", + "default": "ipython", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--ktlint-lockfile="], - "env_var": "PANTS_KTLINT_LOCKFILE", + "display_args": ["--ipython-console-script="], + "env_var": "PANTS_IPYTHON_CONSOLE_SCRIPT", "fromfile": false, - "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/backend/kotlin/lint/ktlint/ktlint.lock for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `scie-pants-linux-x86_64 jvm-generate-lockfiles --resolve=ktlint`.", + "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--ktlint-lockfile"], + "scoped_cmd_line_args": ["--ipython-console-script"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--lockfile"], + "unscoped_cmd_line_args": ["--console-script"], "value_history": { "ranked_values": [ { @@ -11263,62 +11289,60 @@ { "details": null, "rank": "HARDCODED", - "value": "" + "value": "ipython" } ] } }, - "PANTS_KTLINT_SKIP": { + "PANTS_IPYTHON_ENTRY_POINT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]ktlint-skip", - "config_key": "skip", - "default": false, + "comma_separated_display_args": "--ipython-entry-point=", + "config_key": "entry_point", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]ktlint-skip"], - "env_var": "PANTS_KTLINT_SKIP", + "display_args": ["--ipython-entry-point="], + "env_var": "PANTS_IPYTHON_ENTRY_POINT", "fromfile": false, - "help": "If true, don't use Ktlint when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--ktlint-skip", "--no-ktlint-skip"], + "scoped_cmd_line_args": ["--ipython-entry-point"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "typ": "str", + "unscoped_cmd_line_args": ["--entry-point"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": false } ] } }, - "PANTS_KTLINT_VERSION": { + "PANTS_IPYTHON_IGNORE_CWD": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--ktlint-version=", - "config_key": "version", - "default": "0.45.2", + "comma_separated_display_args": "--[no-]ipython-ignore-cwd", + "config_key": "ignore_cwd", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--ktlint-version="], - "env_var": "PANTS_KTLINT_VERSION", + "display_args": ["--[no-]ipython-ignore-cwd"], + "env_var": "PANTS_IPYTHON_IGNORE_CWD", "fromfile": false, - "help": "Version string for the tool. This is available for substitution in the `[ktlint].artifacts` option by including the string `{version}`.", + "help": "Whether to tell IPython not to put the CWD on the import path.\n\nNormally you want this to be True, so that imports come from the hermetic environment Pants creates.\n\nHowever IPython<7.13.0 doesn't support this option, so if you're using an earlier version (e.g., because you have Python 2.7 code) then you will need to set this to False, and you may have issues with imports from your CWD shading the hermetic environment.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--ktlint-version"], - "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--version"], + "scoped_cmd_line_args": [ + "--ipython-ignore-cwd", + "--no-ipython-ignore-cwd" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--ignore-cwd", "--no-ignore-cwd"], "value_history": { "ranked_values": [ { @@ -11329,120 +11353,125 @@ { "details": null, "rank": "HARDCODED", - "value": "0.45.2" + "value": true } ] } }, - "PANTS_LAMBDEX_CONSOLE_SCRIPT": { + "PANTS_IPYTHON_INSTALL_FROM_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--lambdex-console-script=", - "config_key": "console_script", - "default": "lambdex", + "comma_separated_display_args": "--ipython-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--lambdex-console-script="], - "env_var": "PANTS_LAMBDEX_CONSOLE_SCRIPT", + "display_args": ["--ipython-install-from-resolve="], + "env_var": "PANTS_IPYTHON_INSTALL_FROM_RESOLVE", "fromfile": false, - "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `ipython` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--lambdex-console-script"], + "scoped_cmd_line_args": ["--ipython-install-from-resolve"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--console-script"], + "unscoped_cmd_line_args": ["--install-from-resolve"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": "lambdex" } ] } }, - "PANTS_LAMBDEX_ENTRY_POINT": { + "PANTS_IPYTHON_REQUIREMENTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--lambdex-entry-point=", - "config_key": "entry_point", - "default": null, + "comma_separated_display_args": "--ipython-requirements=\"['', '', ...]\"", + "config_key": "requirements", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--lambdex-entry-point="], - "env_var": "PANTS_LAMBDEX_ENTRY_POINT", + "display_args": ["--ipython-requirements=\"['', '', ...]\""], + "env_var": "PANTS_IPYTHON_REQUIREMENTS", "fromfile": false, - "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", + "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--lambdex-entry-point"], + "scoped_cmd_line_args": ["--ipython-requirements"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--entry-point"], + "typ": "list", + "unscoped_cmd_line_args": ["--requirements"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] } ] } }, - "PANTS_LAMBDEX_INSTALL_FROM_RESOLVE": { + "PANTS_ISORT_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--lambdex-install-from-resolve=", - "config_key": "install_from_resolve", - "default": null, + "comma_separated_display_args": "--isort-args=\"[, , ...]\"", + "config_key": "args", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--lambdex-install-from-resolve="], - "env_var": "PANTS_LAMBDEX_INSTALL_FROM_RESOLVE", + "display_args": ["--isort-args=\"[, , ...]\""], + "env_var": "PANTS_ISORT_ARGS", "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `lambdex` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "help": "Arguments to pass directly to isort, e.g. `--isort-args='--case-sensitive --trailing-comma'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--lambdex-install-from-resolve"], + "scoped_cmd_line_args": ["--isort-args"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--install-from-resolve"], + "typ": "list", + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] } ] } }, - "PANTS_LAMBDEX_INTERPRETER_CONSTRAINTS": { + "PANTS_ISORT_CONFIG": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--lambdex-interpreter-constraints=\"['', '', ...]\"", - "config_key": "interpreter_constraints", - "default": ["CPython>=3.7,<3.12"], + "comma_separated_display_args": "--isort-config=\"[, , ...]\"", + "config_key": "config", + "default": [], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--lambdex-interpreter-constraints=\"['', '', ...]\"" + "--isort-config=\"[, , ...]\"" ], - "env_var": "PANTS_LAMBDEX_INTERPRETER_CONSTRAINTS", + "env_var": "PANTS_ISORT_CONFIG", "fromfile": false, - "help": "Python interpreter constraints for this tool.", + "help": "Path to config file understood by isort (https://pycqa.github.io/isort/docs/configuration/config_files/).\n\nSetting this option will disable `[isort].config_discovery`. Use this option if the config is located in a non-standard location.\n\nIf using isort 5+ and you specify only 1 config file, Pants will configure isort's argv to point to your config file.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--lambdex-interpreter-constraints"], + "scoped_cmd_line_args": ["--isort-config"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--interpreter-constraints"], + "unscoped_cmd_line_args": ["--config"], "value_history": { "ranked_values": [ { @@ -11453,29 +11482,32 @@ { "details": "", "rank": "HARDCODED", - "value": ["CPython>=3.7,<3.12"] + "value": [] } ] } }, - "PANTS_LAMBDEX_LAYOUT": { - "choices": ["lambdex", "zip"], - "comma_separated_choices": "lambdex, zip", - "comma_separated_display_args": "--lambdex-layout=", - "config_key": "layout", - "default": "zip", - "deprecated_message": "Deprecated, is scheduled to be removed in version: 2.19.0.dev0.", - "deprecation_active": true, - "display_args": ["--lambdex-layout="], - "env_var": "PANTS_LAMBDEX_LAYOUT", + "PANTS_ISORT_CONFIG_DISCOVERY": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]isort-config-discovery", + "config_key": "config_discovery", + "default": true, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]isort-config-discovery"], + "env_var": "PANTS_ISORT_CONFIG_DISCOVERY", "fromfile": false, - "help": "Explicitly control the layout used for `python_aws_lambda_function` (formerly `python_awslambda`) and `python_google_cloud_function` targets. This option exists for the transition from Lambdex-based layout to the plain zip layout, as recommended by cloud vendors.", - "removal_hint": "Remove the whole [lambdex] section, as Lambdex is deprecated and its functionality will be removed. If you have `layout = \"zip\"`, no further action is required, as you are already using the recommended layout.\n\nIf you have `layout = \"lambdex\"`, removing the section will switch any `python_aws_lambda_function` (formerly `python_awslambda`) and `python_google_cloud_function` targets to using the `zip` layout, as recommended by cloud vendors. (If you are using `python_aws_lambda_function`, you will need to also update the handlers configured in the cloud from `lambdex_handler.handler` to `lambda_function.handler`.)\n\nSee the docs for more details:\n\n* https://www.pantsbuild.org/v2.18/docs/awslambda-python#migrating-from-pants-216-and-earlier\n* https://www.pantsbuild.org/v2.18/docs/google-cloud-function-python#migrating-from-pants-216-and-earlier", - "removal_version": "2.19.0.dev0", - "scoped_cmd_line_args": ["--lambdex-layout"], + "help": "If true, Pants will include any relevant config files during runs (`.isort.cfg`, `pyproject.toml`, `setup.cfg`, `tox.ini` and `.editorconfig`).\n\nUse `[isort].config` instead if your config is in a non-standard location.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--isort-config-discovery", + "--no-isort-config-discovery" + ], "target_field_name": null, - "typ": "LambdexLayout", - "unscoped_cmd_line_args": ["--layout"], + "typ": "bool", + "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], "value_history": { "ranked_values": [ { @@ -11486,128 +11518,120 @@ { "details": null, "rank": "HARDCODED", - "value": "zip" + "value": true } ] } }, - "PANTS_LAMBDEX_REQUIREMENTS": { + "PANTS_ISORT_CONSOLE_SCRIPT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--lambdex-requirements=\"['', '', ...]\"", - "config_key": "requirements", - "default": [], + "comma_separated_display_args": "--isort-console-script=", + "config_key": "console_script", + "default": "isort", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--lambdex-requirements=\"['', '', ...]\""], - "env_var": "PANTS_LAMBDEX_REQUIREMENTS", + "display_args": ["--isort-console-script="], + "env_var": "PANTS_ISORT_CONSOLE_SCRIPT", "fromfile": false, - "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--lambdex-requirements"], + "scoped_cmd_line_args": ["--isort-console-script"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--requirements"], + "typ": "str", + "unscoped_cmd_line_args": ["--console-script"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": "isort" } ] } }, - "PANTS_LEVEL": { - "choices": ["trace", "debug", "info", "warn", "error"], - "comma_separated_choices": "trace, debug, info, warn, error", - "comma_separated_display_args": "-l=, --level=", - "config_key": "level", - "default": "info", + "PANTS_ISORT_ENTRY_POINT": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--isort-entry-point=", + "config_key": "entry_point", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["-l=", "--level="], - "env_var": "PANTS_LEVEL", + "display_args": ["--isort-entry-point="], + "env_var": "PANTS_ISORT_ENTRY_POINT", "fromfile": false, - "help": "Set the logging level.", + "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["-l", "--level"], + "scoped_cmd_line_args": ["--isort-entry-point"], "target_field_name": null, - "typ": "LogLevel", - "unscoped_cmd_line_args": ["-l", "--level"], + "typ": "str", + "unscoped_cmd_line_args": ["--entry-point"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": "info" } ] } }, - "PANTS_LINT_BATCH_SIZE": { + "PANTS_ISORT_INSTALL_FROM_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--lint-batch-size=", - "config_key": "batch_size", - "default": 128, + "comma_separated_display_args": "--isort-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--lint-batch-size="], - "env_var": "PANTS_LINT_BATCH_SIZE", + "display_args": ["--isort-install-from-resolve="], + "env_var": "PANTS_ISORT_INSTALL_FROM_RESOLVE", "fromfile": false, - "help": "The target number of files to be included in each linter batch.\n\nLinter processes are batched for a few reasons:\n\n 1. to avoid OS argument length limits (in processes which don't support argument files)\n 2. to support more stable cache keys than would be possible if all files were operated on in a single batch.\n 3. to allow for parallelism in linter processes which don't have internal parallelism, or -- if they do support internal parallelism -- to improve scheduling behavior when multiple processes are competing for cores and so internal parallelism cannot be used perfectly.\n\nIn order to improve cache hit rates (see 2.), batches are created at stable boundaries, and so this value is only a \"target\" batch size (rather than an exact value).", + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `isort` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--lint-batch-size"], + "scoped_cmd_line_args": ["--isort-install-from-resolve"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--batch-size"], + "typ": "str", + "unscoped_cmd_line_args": ["--install-from-resolve"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": 128 } ] } }, - "PANTS_LINT_ONLY": { + "PANTS_ISORT_INTERPRETER_CONSTRAINTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--lint-only=\"['', '', ...]\"", - "config_key": "only", - "default": [], + "comma_separated_display_args": "--isort-interpreter-constraints=\"['', '', ...]\"", + "config_key": "interpreter_constraints", + "default": ["CPython>=3.7,<4"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--lint-only=\"['', '', ...]\""], - "env_var": "PANTS_LINT_ONLY", + "display_args": [ + "--isort-interpreter-constraints=\"['', '', ...]\"" + ], + "env_var": "PANTS_ISORT_INTERPRETER_CONSTRAINTS", "fromfile": false, - "help": "Only run these linters and skip all others.\n\nThe linter names are outputted at the final summary of running this goal, e.g. `flake8` and `shellcheck`. You can also run `lint --only=fake` to get a list of all activated linters.\n\nYou can repeat this option, e.g. `lint --only=flake8 --only=shellcheck` or `lint --only=['flake8', 'shellcheck']`.", + "help": "Python interpreter constraints for this tool.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--lint-only"], + "scoped_cmd_line_args": ["--isort-interpreter-constraints"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--only"], + "unscoped_cmd_line_args": ["--interpreter-constraints"], "value_history": { "ranked_values": [ { @@ -11618,65 +11642,62 @@ { "details": "", "rank": "HARDCODED", - "value": [] + "value": ["CPython>=3.7,<4"] } ] } }, - "PANTS_LINT_SKIP_FIXERS": { + "PANTS_ISORT_REQUIREMENTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]lint-skip-fixers", - "config_key": "skip_fixers", - "default": false, + "comma_separated_display_args": "--isort-requirements=\"['', '', ...]\"", + "config_key": "requirements", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]lint-skip-fixers"], - "env_var": "PANTS_LINT_SKIP_FIXERS", + "display_args": ["--isort-requirements=\"['', '', ...]\""], + "env_var": "PANTS_ISORT_REQUIREMENTS", "fromfile": false, - "help": "If true, skip running all fixers in check-only mode.\n\nFYI: when running `scie-pants-linux-x86_64 fix lint ::`, there should be diminishing performance benefit to using this flag. Pants attempts to reuse the results from `fix` when running `lint` where possible.", + "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--lint-skip-fixers", "--no-lint-skip-fixers"], + "scoped_cmd_line_args": ["--isort-requirements"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--skip-fixers", "--no-skip-fixers"], + "typ": "list", + "unscoped_cmd_line_args": ["--requirements"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": [] } ] } }, - "PANTS_LINT_SKIP_FORMATTERS": { + "PANTS_ISORT_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]lint-skip-formatters", - "config_key": "skip_formatters", + "comma_separated_display_args": "--[no-]isort-skip", + "config_key": "skip", "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]lint-skip-formatters"], - "env_var": "PANTS_LINT_SKIP_FORMATTERS", + "display_args": ["--[no-]isort-skip"], + "env_var": "PANTS_ISORT_SKIP", "fromfile": false, - "help": "If true, skip running all formatters in check-only mode.\n\nFYI: when running `scie-pants-linux-x86_64 fmt lint ::`, there should be diminishing performance benefit to using this flag. Pants attempts to reuse the results from `fmt` when running `lint` where possible.", + "help": "If true, don't use isort when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--lint-skip-formatters", - "--no-lint-skip-formatters" - ], + "scoped_cmd_line_args": ["--isort-skip", "--no-isort-skip"], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--skip-formatters", "--no-skip-formatters"], + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -11692,85 +11713,90 @@ ] } }, - "PANTS_LIST_DOCUMENTED": { + "PANTS_JARJAR_ARTIFACTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]list-documented", - "config_key": "documented", - "default": false, + "comma_separated_display_args": "--jarjar-artifacts=\"['', '', ...]\"", + "config_key": "artifacts", + "default": ["com.eed3si9n.jarjar:jarjar-assembly:{version}"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]list-documented"], - "env_var": "PANTS_LIST_DOCUMENTED", + "display_args": ["--jarjar-artifacts=\"['', '', ...]\""], + "env_var": "PANTS_JARJAR_ARTIFACTS", "fromfile": false, - "help": "Print only targets that are documented with a description.", + "help": "Artifact requirements for this tool using specified as either the address of a `jvm_artifact` target or, alternatively, as a colon-separated Maven coordinates (e.g., `group:name:version`). For Maven coordinates, the string `{version}` version will be substituted with the value of the `[jarjar].version` option.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--list-documented", "--no-list-documented"], + "scoped_cmd_line_args": ["--jarjar-artifacts"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--documented", "--no-documented"], + "typ": "list", + "unscoped_cmd_line_args": ["--artifacts"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": ["com.eed3si9n.jarjar:jarjar-assembly:{version}"] } ] } }, - "PANTS_LIST_OUTPUT_FILE": { + "PANTS_JARJAR_JVM_OPTIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--list-output-file=", - "config_key": "output_file", - "default": null, + "comma_separated_display_args": "--jarjar-jvm-options=\"['', '', ...]\"", + "config_key": "jvm_options", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--list-output-file="], - "env_var": "PANTS_LIST_OUTPUT_FILE", + "display_args": ["--jarjar-jvm-options=\"['', '', ...]\""], + "env_var": "PANTS_JARJAR_JVM_OPTIONS", "fromfile": false, - "help": "Output the goal's stdout to this file. If unspecified, outputs to stdout.", + "help": "List of JVM options to pass to `jarjar` JVM processes.\n\nOptions set here will be added to those set in `[jvm].global_options`. Please check the documentation for the `jvm` subsystem to see what values are accepted here.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--list-output-file"], + "scoped_cmd_line_args": ["--jarjar-jvm-options"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--output-file"], + "typ": "list", + "unscoped_cmd_line_args": ["--jvm-options"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] } ] } }, - "PANTS_LIST_SEP": { + "PANTS_JARJAR_LOCKFILE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--list-sep=", - "config_key": "sep", - "default": "\\n", + "comma_separated_display_args": "--jarjar-lockfile=", + "config_key": "lockfile", + "default": "", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--list-sep="], - "env_var": "PANTS_LIST_SEP", + "display_args": ["--jarjar-lockfile="], + "env_var": "PANTS_JARJAR_LOCKFILE", "fromfile": false, - "help": "String to use to separate lines in line-oriented output.", + "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/jvm/shading/jarjar.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=jarjar`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--list-sep"], + "scoped_cmd_line_args": ["--jarjar-lockfile"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--sep"], + "unscoped_cmd_line_args": ["--lockfile"], "value_history": { "ranked_values": [ { @@ -11781,62 +11807,62 @@ { "details": null, "rank": "HARDCODED", - "value": "\\n" + "value": "" } ] } }, - "PANTS_LOCAL_CACHE": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]local-cache", - "config_key": "local_cache", - "default": true, + "PANTS_JARJAR_MISPLACED_CLASS_STRATEGY": { + "choices": ["fatal", "skip", "omit", "move"], + "comma_separated_choices": "fatal, skip, omit, move", + "comma_separated_display_args": "--jarjar-misplaced-class-strategy=", + "config_key": "misplaced_class_strategy", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]local-cache"], - "env_var": "PANTS_LOCAL_CACHE", + "display_args": [ + "--jarjar-misplaced-class-strategy=" + ], + "env_var": "PANTS_JARJAR_MISPLACED_CLASS_STRATEGY", "fromfile": false, - "help": "Whether to cache process executions in a local cache persisted to disk at `--local-store-dir`.", + "help": "The strategy to use when processing class files that are in the wrong package.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--local-cache", "--no-local-cache"], + "scoped_cmd_line_args": ["--jarjar-misplaced-class-strategy"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--local-cache", "--no-local-cache"], + "typ": "MisplacedClassStrategy", + "unscoped_cmd_line_args": ["--misplaced-class-strategy"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": true } ] } }, - "PANTS_LOCAL_EXECUTION_ROOT_DIR": { + "PANTS_JARJAR_SKIP_MANIFEST": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--local-execution-root-dir=", - "config_key": "local_execution_root_dir", - "default": "", + "comma_separated_display_args": "--[no-]jarjar-skip-manifest", + "config_key": "skip_manifest", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--local-execution-root-dir="], - "env_var": "PANTS_LOCAL_EXECUTION_ROOT_DIR", + "display_args": ["--[no-]jarjar-skip-manifest"], + "env_var": "PANTS_JARJAR_SKIP_MANIFEST", "fromfile": false, - "help": "Directory to use for local process execution sandboxing.\n\nThe path may be absolute or relative. If the directory is within the build root, be sure to include it in `--pants-ignore`.", + "help": "Skip the processing of the JAR manifest.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--local-execution-root-dir"], + "scoped_cmd_line_args": [ + "--jarjar-skip-manifest", + "--no-jarjar-skip-manifest" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--local-execution-root-dir"], + "typ": "bool", + "unscoped_cmd_line_args": ["--skip-manifest", "--no-skip-manifest"], "value_history": { "ranked_values": [ { @@ -11847,29 +11873,29 @@ { "details": null, "rank": "HARDCODED", - "value": "/tmp" + "value": false } ] } }, - "PANTS_LOCAL_STORE_DIR": { + "PANTS_JARJAR_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--local-store-dir=", - "config_key": "local_store_dir", - "default": "/home/josh/.cache/pants/lmdb_store", + "comma_separated_display_args": "--jarjar-version=", + "config_key": "version", + "default": "1.8.1", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--local-store-dir="], - "env_var": "PANTS_LOCAL_STORE_DIR", + "display_args": ["--jarjar-version="], + "env_var": "PANTS_JARJAR_VERSION", "fromfile": false, - "help": "Directory to use for the local file store, which stores the results of subprocesses run by Pants.\n\nThe path may be absolute or relative. If the directory is within the build root, be sure to include it in `--pants-ignore`.", + "help": "Version string for the tool. This is available for substitution in the `[jarjar].artifacts` option by including the string `{version}`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--local-store-dir"], + "scoped_cmd_line_args": ["--jarjar-version"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--local-store-dir"], + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { @@ -11880,62 +11906,68 @@ { "details": null, "rank": "HARDCODED", - "value": "/home/josh/.cache/pants/lmdb_store" + "value": "1.8.1" } ] } }, - "PANTS_LOCAL_STORE_DIRECTORIES_MAX_SIZE_BYTES": { + "PANTS_JAVAC_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--local-store-directories-max-size-bytes=", - "config_key": "local_store_directories_max_size_bytes", - "default": 16000000000, + "comma_separated_display_args": "--javac-args=\"[, , ...]\"", + "config_key": "args", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--local-store-directories-max-size-bytes="], - "env_var": "PANTS_LOCAL_STORE_DIRECTORIES_MAX_SIZE_BYTES", + "display_args": ["--javac-args=\"[, , ...]\""], + "env_var": "PANTS_JAVAC_ARGS", "fromfile": false, - "help": "The maximum size in bytes of the local store containing directories. Stored below `--local-store-dir`.", + "help": "Arguments to pass directly to javac, e.g. `--javac-args='-g -deprecation'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--local-store-directories-max-size-bytes"], + "scoped_cmd_line_args": ["--javac-args"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--local-store-directories-max-size-bytes"], + "typ": "list", + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": 16000000000 + "value": [] } ] } }, - "PANTS_LOCAL_STORE_FILES_MAX_SIZE_BYTES": { + "PANTS_JAVAC_TAILOR_SOURCE_TARGETS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--local-store-files-max-size-bytes=", - "config_key": "local_store_files_max_size_bytes", - "default": 256000000000, + "comma_separated_display_args": "--[no-]javac-tailor-source-targets", + "config_key": "tailor_source_targets", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--local-store-files-max-size-bytes="], - "env_var": "PANTS_LOCAL_STORE_FILES_MAX_SIZE_BYTES", + "display_args": ["--[no-]javac-tailor-source-targets"], + "env_var": "PANTS_JAVAC_TAILOR_SOURCE_TARGETS", "fromfile": false, - "help": "The maximum size in bytes of the local store containing files. Stored below `--local-store-dir`.\n\nNB: This size value bounds the total size of all files, but (due to sharding of the store on disk) it also bounds the per-file size to (VALUE / `--local-store-shard-count`).\n\nThis value doesn't reflect space allocated on disk, or RAM allocated (it may be reflected in VIRT but not RSS). However, the default is lower than you might otherwise choose because macOS creates core dumps that include MMAP'd pages, and setting this too high might cause core dumps to use an unreasonable amount of disk if they are enabled.", + "help": "If true, add `java_sources` and `java_tests` targets with the `tailor` goal.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--local-store-files-max-size-bytes"], + "scoped_cmd_line_args": [ + "--javac-tailor-source-targets", + "--no-javac-tailor-source-targets" + ], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--local-store-files-max-size-bytes"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--tailor-source-targets", + "--no-tailor-source-targets" + ], "value_history": { "ranked_values": [ { @@ -11946,164 +11978,164 @@ { "details": null, "rank": "HARDCODED", - "value": 256000000000 + "value": true } ] } }, - "PANTS_LOCAL_STORE_PROCESSES_MAX_SIZE_BYTES": { + "PANTS_JAVA_AVRO_ARTIFACTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--local-store-processes-max-size-bytes=", - "config_key": "local_store_processes_max_size_bytes", - "default": 16000000000, + "comma_separated_display_args": "--java-avro-artifacts=\"['', '', ...]\"", + "config_key": "artifacts", + "default": ["org.apache.avro:avro-tools:{version}"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--local-store-processes-max-size-bytes="], - "env_var": "PANTS_LOCAL_STORE_PROCESSES_MAX_SIZE_BYTES", + "display_args": ["--java-avro-artifacts=\"['', '', ...]\""], + "env_var": "PANTS_JAVA_AVRO_ARTIFACTS", "fromfile": false, - "help": "The maximum size in bytes of the local store containing process cache entries. Stored below `--local-store-dir`.", + "help": "Artifact requirements for this tool using specified as either the address of a `jvm_artifact` target or, alternatively, as a colon-separated Maven coordinates (e.g., `group:name:version`). For Maven coordinates, the string `{version}` version will be substituted with the value of the `[java-avro].version` option.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--local-store-processes-max-size-bytes"], + "scoped_cmd_line_args": ["--java-avro-artifacts"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--local-store-processes-max-size-bytes"], + "typ": "list", + "unscoped_cmd_line_args": ["--artifacts"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": 16000000000 + "value": ["org.apache.avro:avro-tools:{version}"] } ] } }, - "PANTS_LOCAL_STORE_SHARD_COUNT": { + "PANTS_JAVA_AVRO_JVM_OPTIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--local-store-shard-count=", - "config_key": "local_store_shard_count", - "default": 16, + "comma_separated_display_args": "--java-avro-jvm-options=\"['', '', ...]\"", + "config_key": "jvm_options", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--local-store-shard-count="], - "env_var": "PANTS_LOCAL_STORE_SHARD_COUNT", + "display_args": ["--java-avro-jvm-options=\"['', '', ...]\""], + "env_var": "PANTS_JAVA_AVRO_JVM_OPTIONS", "fromfile": false, - "help": "The number of LMDB shards created for the local store. This setting also impacts the maximum size of stored files: see `--local-store-files-max-size-bytes` for more information.\n\nBecause LMDB allows only one simultaneous writer per database, the store is split into multiple shards to allow for more concurrent writers. The faster your disks are, the fewer shards you are likely to need for performance.\n\nNB: After changing this value, you will likely want to manually clear the `--local-store-dir` directory to clear the space used by old shard layouts.", + "help": "List of JVM options to pass to `java-avro` JVM processes.\n\nOptions set here will be added to those set in `[jvm].global_options`. Please check the documentation for the `jvm` subsystem to see what values are accepted here.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--local-store-shard-count"], + "scoped_cmd_line_args": ["--java-avro-jvm-options"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--local-store-shard-count"], + "typ": "list", + "unscoped_cmd_line_args": ["--jvm-options"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": 16 + "value": [] } ] } }, - "PANTS_LOGDIR": { + "PANTS_JAVA_AVRO_LOCKFILE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--logdir=", - "config_key": "logdir", - "default": null, + "comma_separated_display_args": "--java-avro-lockfile=", + "config_key": "lockfile", + "default": "", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--logdir="], - "env_var": "PANTS_LOGDIR", + "display_args": ["--java-avro-lockfile="], + "env_var": "PANTS_JAVA_AVRO_LOCKFILE", "fromfile": false, - "help": "Write logs to files under this directory.", + "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/codegen/avro/java/avro-tools.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=java-avro`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--logdir"], + "scoped_cmd_line_args": ["--java-avro-lockfile"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--logdir"], + "unscoped_cmd_line_args": ["--lockfile"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "" } ] } }, - "PANTS_LOG_LEVELS_BY_TARGET": { + "PANTS_JAVA_AVRO_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--log-levels-by-target=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "log_levels_by_target", - "default": {}, + "comma_separated_display_args": "--java-avro-version=", + "config_key": "version", + "default": "1.11.0", "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--log-levels-by-target=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_LOG_LEVELS_BY_TARGET", + "display_args": ["--java-avro-version="], + "env_var": "PANTS_JAVA_AVRO_VERSION", "fromfile": false, - "help": "Set a more specific logging level for one or more logging targets. The names of logging targets are specified in log strings when the --show-log-target option is set. The logging levels are one of: \"error\", \"warn\", \"info\", \"debug\", \"trace\". All logging targets not specified here use the global log level set with `--level`. For example, you can set `--log-levels-by-target='{\"workunit_store\": \"info\", \"pants.engine.rules\": \"warn\"}'`.", + "help": "Version string for the tool. This is available for substitution in the `[java-avro].artifacts` option by including the string `{version}`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--log-levels-by-target"], + "scoped_cmd_line_args": ["--java-avro-version"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--log-levels-by-target"], + "typ": "str", + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": {} + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": {} + "value": "1.11.0" } ] } }, - "PANTS_LOG_SHOW_RUST_3RDPARTY": { + "PANTS_JAVA_INFER_CONSUMED_TYPES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]log-show-rust-3rdparty", - "config_key": "log_show_rust_3rdparty", - "default": false, + "comma_separated_display_args": "--[no-]java-infer-consumed-types", + "config_key": "consumed_types", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]log-show-rust-3rdparty"], - "env_var": "PANTS_LOG_SHOW_RUST_3RDPARTY", + "display_args": ["--[no-]java-infer-consumed-types"], + "env_var": "PANTS_JAVA_INFER_CONSUMED_TYPES", "fromfile": false, - "help": "Whether to show/hide logging done by 3rdparty Rust crates used by the Pants engine.", + "help": "Infer a target's dependencies by parsing consumed types from sources.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--log-show-rust-3rdparty", - "--no-log-show-rust-3rdparty" + "--java-infer-consumed-types", + "--no-java-infer-consumed-types" ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": [ - "--log-show-rust-3rdparty", - "--no-log-show-rust-3rdparty" - ], + "unscoped_cmd_line_args": ["--consumed-types", "--no-consumed-types"], "value_history": { "ranked_values": [ { @@ -12114,29 +12146,32 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": true } ] } }, - "PANTS_LOOP": { + "PANTS_JAVA_INFER_IMPORTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]loop", - "config_key": "loop", - "default": false, + "comma_separated_display_args": "--[no-]java-infer-imports", + "config_key": "imports", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]loop"], - "env_var": "PANTS_LOOP", + "display_args": ["--[no-]java-infer-imports"], + "env_var": "PANTS_JAVA_INFER_IMPORTS", "fromfile": false, - "help": "Run goals continuously as file changes are detected.", + "help": "Infer a target's dependencies by parsing import statements from sources.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--loop", "--no-loop"], + "scoped_cmd_line_args": [ + "--java-infer-imports", + "--no-java-infer-imports" + ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--loop", "--no-loop"], + "unscoped_cmd_line_args": ["--imports", "--no-imports"], "value_history": { "ranked_values": [ { @@ -12147,59 +12182,97 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": true } ] } }, - "PANTS_LOOP_MAX": { + "PANTS_JAVA_INFER_THIRD_PARTY_IMPORT_MAPPING": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--loop-max=", - "config_key": "loop_max", - "default": 4294967296, + "comma_separated_display_args": "--java-infer-third-party-import-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "third_party_import_mapping", + "default": {}, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--loop-max="], - "env_var": "PANTS_LOOP_MAX", + "display_args": [ + "--java-infer-third-party-import-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_JAVA_INFER_THIRD_PARTY_IMPORT_MAPPING", "fromfile": false, - "help": "The maximum number of times to loop when `--loop` is specified.", + "help": "A dictionary mapping a Java package path to a JVM artifact coordinate (GROUP:ARTIFACT) without the version.\n\nSee `jvm_artifact` for more information on the mapping syntax.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--loop-max"], + "scoped_cmd_line_args": ["--java-infer-third-party-import-mapping"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--loop-max"], + "typ": "dict", + "unscoped_cmd_line_args": ["--third-party-import-mapping"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": {} }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": 4294967296 + "value": {} } ] } }, - "PANTS_MYPY_ARGS": { + "PANTS_JAVA_THRIFT_OPTIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--mypy-args=\"[, , ...]\"", + "comma_separated_display_args": "--java-thrift-options=\"['', '', ...]\"", + "config_key": "options", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--java-thrift-options=\"['', '', ...]\""], + "env_var": "PANTS_JAVA_THRIFT_OPTIONS", + "fromfile": false, + "help": "Code generation options specific to the Java code generator to pass to the Apache `thrift` binary via the `-gen java` argument. See `thrift -help` for supported values.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--java-thrift-options"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--options"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + }, + "PANTS_JUNIT_ARGS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--junit-args=\"[, , ...]\", ... -- [ [ [...]]]", "config_key": "args", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--mypy-args=\"[, , ...]\""], - "env_var": "PANTS_MYPY_ARGS", + "display_args": [ + "--junit-args=\"[, , ...]\"", + "... -- [ [ [...]]]" + ], + "env_var": "PANTS_JUNIT_ARGS", "fromfile": false, - "help": "Arguments to pass directly to MyPy, e.g. `--mypy-args='--python-version 3.7 --disallow-any-expr'`.", + "help": "Arguments to pass directly to JUnit, e.g. `--junit-args='--disable-ansi-colors'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--mypy-args"], + "scoped_cmd_line_args": ["--junit-args"], "target_field_name": null, "typ": "list", "unscoped_cmd_line_args": ["--args"], @@ -12218,88 +12291,98 @@ ] } }, - "PANTS_MYPY_CONFIG": { + "PANTS_JUNIT_ARTIFACTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--mypy-config=", - "config_key": "config", - "default": null, + "comma_separated_display_args": "--junit-artifacts=\"['', '', ...]\"", + "config_key": "artifacts", + "default": [ + "org.junit.platform:junit-platform-console:1.7.2", + "org.junit.jupiter:junit-jupiter-engine:{version}", + "org.junit.vintage:junit-vintage-engine:{version}" + ], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--mypy-config="], - "env_var": "PANTS_MYPY_CONFIG", + "display_args": ["--junit-artifacts=\"['', '', ...]\""], + "env_var": "PANTS_JUNIT_ARTIFACTS", "fromfile": false, - "help": "Path to a config file understood by MyPy (https://mypy.readthedocs.io/en/stable/config_file.html).\n\nSetting this option will disable `[mypy].config_discovery`. Use this option if the config is located in a non-standard location.", + "help": "Artifact requirements for this tool using specified as either the address of a `jvm_artifact` target or, alternatively, as a colon-separated Maven coordinates (e.g., `group:name:version`). For Maven coordinates, the string `{version}` version will be substituted with the value of the `[junit].version` option.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--mypy-config"], + "scoped_cmd_line_args": ["--junit-artifacts"], "target_field_name": null, - "typ": "file_option", - "unscoped_cmd_line_args": ["--config"], + "typ": "list", + "unscoped_cmd_line_args": ["--artifacts"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [ + "org.junit.platform:junit-platform-console:1.7.2", + "org.junit.jupiter:junit-jupiter-engine:{version}", + "org.junit.vintage:junit-vintage-engine:{version}" + ] } ] } }, - "PANTS_MYPY_CONFIG_DISCOVERY": { + "PANTS_JUNIT_JVM_OPTIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]mypy-config-discovery", - "config_key": "config_discovery", - "default": true, + "comma_separated_display_args": "--junit-jvm-options=\"['', '', ...]\"", + "config_key": "jvm_options", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]mypy-config-discovery"], - "env_var": "PANTS_MYPY_CONFIG_DISCOVERY", + "display_args": ["--junit-jvm-options=\"['', '', ...]\""], + "env_var": "PANTS_JUNIT_JVM_OPTIONS", "fromfile": false, - "help": "If true, Pants will include any relevant config files during runs (`mypy.ini`, `.mypy.ini`, and `setup.cfg`).\n\nUse `[mypy].config` instead if your config is in a non-standard location.", + "help": "List of JVM options to pass to `junit` JVM processes.\n\nOptions set here will be added to those set in `[jvm].global_options`. Please check the documentation for the `jvm` subsystem to see what values are accepted here.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--mypy-config-discovery", - "--no-mypy-config-discovery" - ], + "scoped_cmd_line_args": ["--junit-jvm-options"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], + "typ": "list", + "unscoped_cmd_line_args": ["--jvm-options"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": true + "value": [] } ] } }, - "PANTS_MYPY_CONSOLE_SCRIPT": { + "PANTS_JUNIT_LOCKFILE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--mypy-console-script=", - "config_key": "console_script", - "default": "mypy", + "comma_separated_display_args": "--junit-lockfile=", + "config_key": "lockfile", + "default": "", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--mypy-console-script="], - "env_var": "PANTS_MYPY_CONSOLE_SCRIPT", + "display_args": ["--junit-lockfile="], + "env_var": "PANTS_JUNIT_LOCKFILE", "fromfile": false, - "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", + "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/jvm/test/junit.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=junit`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--mypy-console-script"], + "scoped_cmd_line_args": ["--junit-lockfile"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--console-script"], + "unscoped_cmd_line_args": ["--lockfile"], "value_history": { "ranked_values": [ { @@ -12310,87 +12393,95 @@ { "details": null, "rank": "HARDCODED", - "value": "mypy" + "value": "" } ] } }, - "PANTS_MYPY_ENTRY_POINT": { + "PANTS_JUNIT_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--mypy-entry-point=", - "config_key": "entry_point", - "default": null, + "comma_separated_display_args": "--[no-]junit-skip", + "config_key": "skip", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--mypy-entry-point="], - "env_var": "PANTS_MYPY_ENTRY_POINT", + "display_args": ["--[no-]junit-skip"], + "env_var": "PANTS_JUNIT_SKIP", "fromfile": false, - "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", + "help": "If true, don't use JUnit when running `pants test`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--mypy-entry-point"], + "scoped_cmd_line_args": ["--junit-skip", "--no-junit-skip"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--entry-point"], + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false } ] } }, - "PANTS_MYPY_INSTALL_FROM_RESOLVE": { + "PANTS_JUNIT_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--mypy-install-from-resolve=", - "config_key": "install_from_resolve", - "default": null, + "comma_separated_display_args": "--junit-version=", + "config_key": "version", + "default": "5.7.2", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--mypy-install-from-resolve="], - "env_var": "PANTS_MYPY_INSTALL_FROM_RESOLVE", + "display_args": ["--junit-version="], + "env_var": "PANTS_JUNIT_VERSION", "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `mypy` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "help": "Version string for the tool. This is available for substitution in the `[junit].artifacts` option by including the string `{version}`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--mypy-install-from-resolve"], + "scoped_cmd_line_args": ["--junit-version"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--install-from-resolve"], + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "5.7.2" } ] } }, - "PANTS_MYPY_INTERPRETER_CONSTRAINTS": { + "PANTS_JVM_DEBUG_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--mypy-interpreter-constraints=\"['', '', ...]\"", - "config_key": "interpreter_constraints", - "default": ["CPython>=3.7,<4"], + "comma_separated_display_args": "--jvm-debug-args=\"['', '', ...]\"", + "config_key": "debug_args", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--mypy-interpreter-constraints=\"['', '', ...]\"" - ], - "env_var": "PANTS_MYPY_INTERPRETER_CONSTRAINTS", + "display_args": ["--jvm-debug-args=\"['', '', ...]\""], + "env_var": "PANTS_JVM_DEBUG_ARGS", "fromfile": false, - "help": "Python interpreter constraints for this tool.", + "help": "Extra JVM arguments to use when running tests in debug mode.\n\nFor example, if you want to attach a remote debugger, use something like `['-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005']`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--mypy-interpreter-constraints"], + "scoped_cmd_line_args": ["--jvm-debug-args"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--interpreter-constraints"], + "unscoped_cmd_line_args": ["--debug-args"], "value_history": { "ranked_values": [ { @@ -12401,59 +12492,62 @@ { "details": "", "rank": "HARDCODED", - "value": ["CPython>=3.7,<4"] + "value": [] } ] } }, - "PANTS_MYPY_PROTOBUF_INSTALL_FROM_RESOLVE": { + "PANTS_JVM_DEFAULT_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--mypy-protobuf-install-from-resolve=", - "config_key": "install_from_resolve", - "default": null, + "comma_separated_display_args": "--jvm-default-resolve=", + "config_key": "default_resolve", + "default": "jvm-default", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--mypy-protobuf-install-from-resolve="], - "env_var": "PANTS_MYPY_PROTOBUF_INSTALL_FROM_RESOLVE", + "display_args": ["--jvm-default-resolve="], + "env_var": "PANTS_JVM_DEFAULT_RESOLVE", "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `mypy-protobuf` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "help": "The default value used for the `resolve` and `compatible_resolves` fields.\n\nThe name must be defined as a resolve in `[jvm].resolves`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--mypy-protobuf-install-from-resolve"], + "scoped_cmd_line_args": ["--jvm-default-resolve"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--install-from-resolve"], + "unscoped_cmd_line_args": ["--default-resolve"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "jvm-default" } ] } }, - "PANTS_MYPY_PROTOBUF_INTERPRETER_CONSTRAINTS": { + "PANTS_JVM_GLOBAL_OPTIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--mypy-protobuf-interpreter-constraints=\"['', '', ...]\"", - "config_key": "interpreter_constraints", - "default": ["CPython>=3.7,<4"], + "comma_separated_display_args": "--jvm-global-options=\"['', '', ...]\"", + "config_key": "global_options", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--mypy-protobuf-interpreter-constraints=\"['', '', ...]\"" - ], - "env_var": "PANTS_MYPY_PROTOBUF_INTERPRETER_CONSTRAINTS", + "display_args": ["--jvm-global-options=\"['', '', ...]\""], + "env_var": "PANTS_JVM_GLOBAL_OPTIONS", "fromfile": false, - "help": "Python interpreter constraints for this tool.", + "help": "List of JVM options to pass to all JVM processes.\n\nOptions set here will be used by any JVM processes required by Pants, with the exception of heap memory settings like `-Xmx`, which need to be set using `[GLOBAL].process_total_child_memory_usage` and `[GLOBAL].process_per_child_memory_usage`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--mypy-protobuf-interpreter-constraints"], - "target_field_name": null, + "scoped_cmd_line_args": ["--jvm-global-options"], + "target_field_name": "jvm_global_options", "typ": "list", - "unscoped_cmd_line_args": ["--interpreter-constraints"], + "unscoped_cmd_line_args": ["--global-options"], "value_history": { "ranked_values": [ { @@ -12464,97 +12558,101 @@ { "details": "", "rank": "HARDCODED", - "value": ["CPython>=3.7,<4"] + "value": [] } ] } }, - "PANTS_MYPY_PROTOBUF_REQUIREMENTS": { + "PANTS_JVM_JDK": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--mypy-protobuf-requirements=\"['', '', ...]\"", - "config_key": "requirements", - "default": [], + "comma_separated_display_args": "--jvm-jdk=", + "config_key": "jdk", + "default": "temurin:1.11", "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--mypy-protobuf-requirements=\"['', '', ...]\"" - ], - "env_var": "PANTS_MYPY_PROTOBUF_REQUIREMENTS", + "display_args": ["--jvm-jdk="], + "env_var": "PANTS_JVM_JDK", "fromfile": false, - "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "help": "The JDK to use.\n\nThis string will be passed directly to Coursier's `--jvm` parameter. Run `cs java --available` to see a list of available JVM versions on your platform.\n\nIf the string `'system'` is passed, Coursier's `--system-jvm` option will be used instead, but note that this can lead to inconsistent behavior since the JVM version will be whatever happens to be found first on the system's PATH.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--mypy-protobuf-requirements"], + "scoped_cmd_line_args": ["--jvm-jdk"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--requirements"], + "typ": "str", + "unscoped_cmd_line_args": ["--jdk"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": "temurin:1.11" } ] } }, - "PANTS_MYPY_REQUIREMENTS": { + "PANTS_JVM_NAILGUN_REMOTE_CACHE_SPECULATION_DELAY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--mypy-requirements=\"['', '', ...]\"", - "config_key": "requirements", - "default": [], + "comma_separated_display_args": "--jvm-nailgun-remote-cache-speculation-delay=", + "config_key": "nailgun_remote_cache_speculation_delay", + "default": 1000, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--mypy-requirements=\"['', '', ...]\""], - "env_var": "PANTS_MYPY_REQUIREMENTS", + "display_args": ["--jvm-nailgun-remote-cache-speculation-delay="], + "env_var": "PANTS_JVM_NAILGUN_REMOTE_CACHE_SPECULATION_DELAY", "fromfile": false, - "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "help": "The time in milliseconds to delay speculation of nailgun processes while reading from the remote cache.\n\nWhen speculating, a remote cache hit will cancel the local copy of a process. But because nailgun does not natively support cancellation, that requires killing a nailgun server, which will mean that future processes take longer to warm up.\n\nThis setting allows for trading off waiting for potentially slow cache entries against potentially having to warm up a new nailgun server.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--mypy-requirements"], + "scoped_cmd_line_args": ["--jvm-nailgun-remote-cache-speculation-delay"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--requirements"], + "typ": "int", + "unscoped_cmd_line_args": ["--nailgun-remote-cache-speculation-delay"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": 1000 } ] } }, - "PANTS_MYPY_SKIP": { + "PANTS_JVM_REPRODUCIBLE_JARS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]mypy-skip", - "config_key": "skip", + "comma_separated_display_args": "--[no-]jvm-reproducible-jars", + "config_key": "reproducible_jars", "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]mypy-skip"], - "env_var": "PANTS_MYPY_SKIP", + "display_args": ["--[no-]jvm-reproducible-jars"], + "env_var": "PANTS_JVM_REPRODUCIBLE_JARS", "fromfile": false, - "help": "If true, don't use MyPy when running `scie-pants-linux-x86_64 check`.", + "help": "When enabled, JAR files produced by JVM tools will have timestamps stripped.\n\nBecause some compilers do not support this step as a native operation, it can have a performance cost, and is not enabled by default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--mypy-skip", "--no-mypy-skip"], + "scoped_cmd_line_args": [ + "--jvm-reproducible-jars", + "--no-jvm-reproducible-jars" + ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "unscoped_cmd_line_args": [ + "--reproducible-jars", + "--no-reproducible-jars" + ], "value_history": { "ranked_values": [ { @@ -12570,59 +12668,61 @@ ] } }, - "PANTS_MYPY_SOURCE_PLUGINS": { + "PANTS_JVM_RESOLVES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--mypy-source-plugins=\"[, , ...]\"", - "config_key": "source_plugins", - "default": [], + "comma_separated_display_args": "--jvm-resolves=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "resolves", + "default": { + "jvm-default": "3rdparty/jvm/default.lock" + }, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--mypy-source-plugins=\"[, , ...]\"" - ], - "env_var": "PANTS_MYPY_SOURCE_PLUGINS", + "display_args": ["--jvm-resolves=\"{'key1': val1, 'key2': val2, ...}\""], + "env_var": "PANTS_JVM_RESOLVES", "fromfile": false, - "help": "An optional list of `python_sources` target addresses to load first-party plugins.\n\nYou must also set `plugins = path.to.module` in your `mypy.ini`, and set the `[mypy].config` option in your `pants.toml`.\n\nTo instead load third-party plugins, set the option `[mypy].install_from_resolve` to a resolve whose lockfile includes those plugins, and set the `plugins` option in `mypy.ini`. See https://www.pantsbuild.org/v2.18/docs/python-check-goal.", + "help": "A dictionary mapping resolve names to the path of their lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--mypy-source-plugins"], + "scoped_cmd_line_args": ["--jvm-resolves"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--source-plugins"], + "typ": "dict", + "unscoped_cmd_line_args": ["--resolves"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": [] + "value": {} }, { "details": "", "rank": "HARDCODED", - "value": [] + "value": { + "jvm-default": "3rdparty/jvm/default.lock" + } } ] } }, - "PANTS_NAMED_CACHES_DIR": { + "PANTS_JVM_TOOL_JDK": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--named-caches-dir=", - "config_key": "named_caches_dir", - "default": "/home/josh/.cache/pants/named_caches", + "comma_separated_display_args": "--jvm-tool-jdk=", + "config_key": "tool_jdk", + "default": "temurin:1.11", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--named-caches-dir="], - "env_var": "PANTS_NAMED_CACHES_DIR", - "fromfile": false, - "help": "Directory to use for named global caches for tools and processes with trusted, concurrency-safe caches.\n\nThe path may be absolute or relative. If the directory is within the build root, be sure to include it in `--pants-ignore`.", + "display_args": ["--jvm-tool-jdk="], + "env_var": "PANTS_JVM_TOOL_JDK", + "fromfile": false, + "help": "The JDK to use when building and running Pants' internal JVM support code and other non-compiler tools. See `jvm` help for supported values.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--named-caches-dir"], + "scoped_cmd_line_args": ["--jvm-tool-jdk"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--named-caches-dir"], + "unscoped_cmd_line_args": ["--tool-jdk"], "value_history": { "ranked_values": [ { @@ -12633,66 +12733,62 @@ { "details": null, "rank": "HARDCODED", - "value": "/home/josh/.cache/pants/named_caches" + "value": "temurin:1.11" } ] } }, - "PANTS_NODEJS_COREPACK_ENV_VARS": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--nodejs-corepack-env-vars=\"[, , ...]\"", - "config_key": "corepack_env_vars", - "default": [], + "PANTS_KEEP_SANDBOXES": { + "choices": ["always", "on_failure", "never"], + "comma_separated_choices": "always, on_failure, never", + "comma_separated_display_args": "--keep-sandboxes=", + "config_key": "keep_sandboxes", + "default": "never", "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--nodejs-corepack-env-vars=\"[, , ...]\"" - ], - "env_var": "PANTS_NODEJS_COREPACK_ENV_VARS", + "display_args": ["--keep-sandboxes="], + "env_var": "PANTS_KEEP_SANDBOXES", "fromfile": false, - "help": "Environment variables to set for `corepack` invocations.\n\nEntries are either strings in the form `ENV_VAR=value` to set an explicit value; or just `ENV_VAR` to copy the value from Pants's own environment.\n\nReview https://github.com/nodejs/corepack#environment-variables for available variables.", + "help": "Controls whether Pants will clean up local directories used as chroots for running processes.\n\nPants will log their location so that you can inspect the chroot, and run the `__run.sh` script to recreate the process using the same argv and environment variables used by Pants. This option is useful for debugging.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--nodejs-corepack-env-vars"], - "target_field_name": "nodejs_corepack_env_vars", - "typ": "list", - "unscoped_cmd_line_args": ["--corepack-env-vars"], + "scoped_cmd_line_args": ["--keep-sandboxes"], + "target_field_name": null, + "typ": "KeepSandboxes", + "unscoped_cmd_line_args": ["--keep-sandboxes"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": "never" } ] } }, - "PANTS_NODEJS_EXECUTABLE_SEARCH_PATHS": { + "PANTS_KOTLINC_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--nodejs-executable-search-paths=\"[, , ...]\"", - "config_key": "executable_search_paths", - "default": [""], + "comma_separated_display_args": "--kotlinc-args=\"[, , ...]\"", + "config_key": "args", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--nodejs-executable-search-paths=\"[, , ...]\"" - ], - "env_var": "PANTS_NODEJS_EXECUTABLE_SEARCH_PATHS", + "display_args": ["--kotlinc-args=\"[, , ...]\""], + "env_var": "PANTS_KOTLINC_ARGS", "fromfile": false, - "help": "The PATH value that will be used to find any tools required to run nodejs processes. The special string `\"\"` will expand to the contents of the PATH env var.", + "help": "Arguments to pass directly to kotlinc, e.g. `--kotlinc-args='-Werror'`.\n\nSee https://kotlinlang.org/docs/compiler-reference.html for supported arguments.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--nodejs-executable-search-paths"], - "target_field_name": "nodejs_executable_search_paths", + "scoped_cmd_line_args": ["--kotlinc-args"], + "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--executable-search-paths"], + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { @@ -12703,71 +12799,67 @@ { "details": "", "rank": "HARDCODED", - "value": [""] + "value": [] } ] } }, - "PANTS_NODEJS_INFER_IMPORTS": { + "PANTS_KOTLINC_PLUGINS_FOR_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]nodejs-infer-imports", - "config_key": "imports", - "default": true, + "comma_separated_display_args": "--kotlinc-plugins-for-resolve=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "plugins_for_resolve", + "default": {}, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]nodejs-infer-imports"], - "env_var": "PANTS_NODEJS_INFER_IMPORTS", + "display_args": [ + "--kotlinc-plugins-for-resolve=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_KOTLINC_PLUGINS_FOR_RESOLVE", "fromfile": false, - "help": "Infer a target's imported dependencies by parsing import statements from sources.\n\nTo ignore a false positive, you can either put `// pants: no-infer-dep` on the line of the import or put `!{bad_address}` in the `dependencies` field of your target.", + "help": "A dictionary, whose keys are the names of each JVM resolve that requires default `kotlinc` plugins, and the value is a comma-separated string consisting of kotlinc plugin names. Each specified plugin must have a corresponding `kotlinc_plugin` target that specifies that name in either its `plugin_name` field or is the same as its target name.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--nodejs-infer-imports", - "--no-nodejs-infer-imports" - ], + "scoped_cmd_line_args": ["--kotlinc-plugins-for-resolve"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--imports", "--no-imports"], + "typ": "dict", + "unscoped_cmd_line_args": ["--plugins-for-resolve"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": {} }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": true + "value": {} } ] } }, - "PANTS_NODEJS_INFER_PACKAGE_JSON_ENTRY_POINTS": { + "PANTS_KOTLIN_INFER_CONSUMED_TYPES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]nodejs-infer-package-json-entry-points", - "config_key": "package_json_entry_points", + "comma_separated_display_args": "--[no-]kotlin-infer-consumed-types", + "config_key": "consumed_types", "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]nodejs-infer-package-json-entry-points"], - "env_var": "PANTS_NODEJS_INFER_PACKAGE_JSON_ENTRY_POINTS", + "display_args": ["--[no-]kotlin-infer-consumed-types"], + "env_var": "PANTS_KOTLIN_INFER_CONSUMED_TYPES", "fromfile": false, - "help": "Infer a `package_json`'s dependencies by parsing entry point statements from the package.json file.\n\nTo ignore a false positive, you can put `!{bad_address}` in the `dependencies` field of the `package_json` target.\n\nSee https://nodejs.org/api/packages.html#package-entry-points and\n https://docs.npmjs.com/cli/v9/configuring-npm/package-json#browser.", + "help": "Infer a target's dependencies by parsing consumed types from sources.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--nodejs-infer-package-json-entry-points", - "--no-nodejs-infer-package-json-entry-points" + "--kotlin-infer-consumed-types", + "--no-kotlin-infer-consumed-types" ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": [ - "--package-json-entry-points", - "--no-package-json-entry-points" - ], + "unscoped_cmd_line_args": ["--consumed-types", "--no-consumed-types"], "value_history": { "ranked_values": [ { @@ -12783,67 +12875,27 @@ ] } }, - "PANTS_NODEJS_KNOWN_VERSIONS": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--nodejs-known-versions=\"['', '', ...]\"", - "config_key": "known_versions", - "default": [ - "v16.15.0|macos_arm64|ad8d8fc5330ef47788f509c2af398c8060bb59acbe914070d0df684cd2d8d39b|29126014", - "v16.15.0|macos_x86_64|a6bb12bbf979d32137598e49d56d61bcddf8a8596c3442b44a9b3ace58dd4de8|30561503", - "v16.15.0|linux_arm64|b4080b86562c5397f32da7a0723b95b1df523cab4c757688a184e3f733a7df56|21403276", - "v16.15.0|linux_x86_64|ebdf4dc9d992d19631f0931cca2fc33c6d0d382543639bc6560d31d5060a8372|22031988" - ], - "deprecated_message": null, - "deprecation_active": false, - "display_args": ["--nodejs-known-versions=\"['', '', ...]\""], - "env_var": "PANTS_NODEJS_KNOWN_VERSIONS", - "fromfile": false, - "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--nodejs-known-versions"], - "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--known-versions"], - "value_history": { - "ranked_values": [ - { - "details": "", - "rank": "NONE", - "value": [] - }, - { - "details": "", - "rank": "HARDCODED", - "value": [ - "v16.15.0|macos_arm64|ad8d8fc5330ef47788f509c2af398c8060bb59acbe914070d0df684cd2d8d39b|29126014", - "v16.15.0|macos_x86_64|a6bb12bbf979d32137598e49d56d61bcddf8a8596c3442b44a9b3ace58dd4de8|30561503", - "v16.15.0|linux_arm64|b4080b86562c5397f32da7a0723b95b1df523cab4c757688a184e3f733a7df56|21403276", - "v16.15.0|linux_x86_64|ebdf4dc9d992d19631f0931cca2fc33c6d0d382543639bc6560d31d5060a8372|22031988" - ] - } - ] - } - }, - "PANTS_NODEJS_PACKAGE_MANAGER": { + "PANTS_KOTLIN_INFER_IMPORTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--nodejs-package-manager=", - "config_key": "package_manager", - "default": "npm", + "comma_separated_display_args": "--[no-]kotlin-infer-imports", + "config_key": "imports", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--nodejs-package-manager="], - "env_var": "PANTS_NODEJS_PACKAGE_MANAGER", + "display_args": ["--[no-]kotlin-infer-imports"], + "env_var": "PANTS_KOTLIN_INFER_IMPORTS", "fromfile": false, - "help": "Default Node.js package manager to use.\n\nYou can either rely on this default together with the [nodejs].package_managers option, or specify the `package.json#packageManager` tool and version in the package.json of your project.\n\nSpecifying conflicting package manager versions within a multi-package workspace is an error.", + "help": "Infer a target's dependencies by parsing import statements from sources.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--nodejs-package-manager"], + "scoped_cmd_line_args": [ + "--kotlin-infer-imports", + "--no-kotlin-infer-imports" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--package-manager"], + "typ": "bool", + "unscoped_cmd_line_args": ["--imports", "--no-imports"], "value_history": { "ranked_values": [ { @@ -12854,70 +12906,70 @@ { "details": null, "rank": "HARDCODED", - "value": "npm" + "value": true } ] } }, - "PANTS_NODEJS_PACKAGE_MANAGERS": { + "PANTS_KOTLIN_TAILOR_SOURCE_TARGETS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--nodejs-package-managers=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "package_managers", - "default": { - "npm": "8.5.5" - }, + "comma_separated_display_args": "--[no-]kotlin-tailor-source-targets", + "config_key": "tailor_source_targets", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--nodejs-package-managers=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_NODEJS_PACKAGE_MANAGERS", + "display_args": ["--[no-]kotlin-tailor-source-targets"], + "env_var": "PANTS_KOTLIN_TAILOR_SOURCE_TARGETS", "fromfile": false, - "help": "A mapping of package manager versions to semver releases.\n\nMany organizations only need a single version of a package manager, which is a good default and often the simplest thing to do.\n\nThe version download is managed by Corepack. This mapping corresponds to the https://github.com/nodejs/corepack#known-good-releases setting, using the `--activate` flag.", + "help": "If true, add `kotlin_sources` targets with the `tailor` goal.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--nodejs-package-managers"], + "scoped_cmd_line_args": [ + "--kotlin-tailor-source-targets", + "--no-kotlin-tailor-source-targets" + ], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--package-managers"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--tailor-source-targets", + "--no-tailor-source-targets" + ], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": {} + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": { - "npm": "8.5.5" - } + "value": true } ] } }, - "PANTS_NODEJS_RESOLVES": { + "PANTS_KOTLIN_VERSION_FOR_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--nodejs-resolves=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "resolves", + "comma_separated_display_args": "--kotlin-version-for-resolve=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "version_for_resolve", "default": {}, "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--nodejs-resolves=\"{'key1': val1, 'key2': val2, ...}\"" + "--kotlin-version-for-resolve=\"{'key1': val1, 'key2': val2, ...}\"" ], - "env_var": "PANTS_NODEJS_RESOLVES", + "env_var": "PANTS_KOTLIN_VERSION_FOR_RESOLVE", "fromfile": false, - "help": "A mapping of names to lockfile paths used in your project.\n\nSpecifying a resolve name is optional. If unspecified, the default resolve name is calculated by taking the path from the source root to the directory containing the lockfile and replacing '/' with '.' in that path.\n\nExample: An npm lockfile located at `src/js/package/package-lock.json' will result in a resolve named `js.package`, assuming src/ is a source root.\n\nRun `scie-pants-linux-x86_64 generate-lockfiles` to generate the lockfile(s).", + "help": "A dictionary mapping the name of a resolve to the Kotlin version to use for all Kotlin targets consuming that resolve.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--nodejs-resolves"], + "scoped_cmd_line_args": ["--kotlin-version-for-resolve"], "target_field_name": null, "typ": "dict", - "unscoped_cmd_line_args": ["--resolves"], + "unscoped_cmd_line_args": ["--version-for-resolve"], "value_history": { "ranked_values": [ { @@ -12933,26 +12985,24 @@ ] } }, - "PANTS_NODEJS_SEARCH_PATH": { + "PANTS_KTLINT_ARTIFACTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--nodejs-search-path=\"[, , ...]\"", - "config_key": "search_path", - "default": [""], + "comma_separated_display_args": "--ktlint-artifacts=\"['', '', ...]\"", + "config_key": "artifacts", + "default": ["com.pinterest:ktlint:{version}"], "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--nodejs-search-path=\"[, , ...]\"" - ], - "env_var": "PANTS_NODEJS_SEARCH_PATH", + "display_args": ["--ktlint-artifacts=\"['', '', ...]\""], + "env_var": "PANTS_KTLINT_ARTIFACTS", "fromfile": false, - "help": "A list of paths to search for Node.js distributions.\n\nThis option is only used if a templated url download specified via [nodejs].known_versions does not contain a version matching the configured [nodejs].version range.\n\nYou can specify absolute paths to binaries and/or to directories containing binaries. The order of entries does not matter.\n\nThe following special strings are supported:\n\nFor all runtime environment types:\n\n* ``, the contents of the PATH env var\n\nWhen the environment is a `local_environment` target:\n\n* ``, all Node.js versions currently configured by ASDF `(asdf shell, ${HOME}/.tool-versions)`, with a fallback to all installed versions\n* ``, the ASDF binaries with the version in `BUILD_ROOT/.tool-versions`\n* ``, all NodeJS versions under $NVM_DIR/versions/node\n* ``, the nvm installation with the version in BUILD_ROOT/.nvmrc\nNote that the version in the .nvmrc file has to be on the form \"vX.Y.Z\".", + "help": "Artifact requirements for this tool using specified as either the address of a `jvm_artifact` target or, alternatively, as a colon-separated Maven coordinates (e.g., `group:name:version`). For Maven coordinates, the string `{version}` version will be substituted with the value of the `[ktlint].version` option.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--nodejs-search-path"], - "target_field_name": "nodejs_search_path", + "scoped_cmd_line_args": ["--ktlint-artifacts"], + "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--search-path"], + "unscoped_cmd_line_args": ["--artifacts"], "value_history": { "ranked_values": [ { @@ -12963,74 +13013,62 @@ { "details": "", "rank": "HARDCODED", - "value": [""] + "value": ["com.pinterest:ktlint:{version}"] } ] } }, - "PANTS_NODEJS_URL_PLATFORM_MAPPING": { + "PANTS_KTLINT_JVM_OPTIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--nodejs-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "url_platform_mapping", - "default": { - "linux_arm64": "linux-arm64", - "linux_x86_64": "linux-x64", - "macos_arm64": "darwin-arm64", - "macos_x86_64": "darwin-x64" - }, + "comma_separated_display_args": "--ktlint-jvm-options=\"['', '', ...]\"", + "config_key": "jvm_options", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--nodejs-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_NODEJS_URL_PLATFORM_MAPPING", + "display_args": ["--ktlint-jvm-options=\"['', '', ...]\""], + "env_var": "PANTS_KTLINT_JVM_OPTIONS", "fromfile": false, - "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", + "help": "List of JVM options to pass to `ktlint` JVM processes.\n\nOptions set here will be added to those set in `[jvm].global_options`. Please check the documentation for the `jvm` subsystem to see what values are accepted here.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--nodejs-url-platform-mapping"], + "scoped_cmd_line_args": ["--ktlint-jvm-options"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--url-platform-mapping"], + "typ": "list", + "unscoped_cmd_line_args": ["--jvm-options"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": {} + "value": [] }, { "details": "", "rank": "HARDCODED", - "value": { - "linux_arm64": "linux-arm64", - "linux_x86_64": "linux-x64", - "macos_arm64": "darwin-arm64", - "macos_x86_64": "darwin-x64" - } + "value": [] } ] } }, - "PANTS_NODEJS_URL_TEMPLATE": { + "PANTS_KTLINT_LOCKFILE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--nodejs-url-template=", - "config_key": "url_template", - "default": "https://nodejs.org/dist/{version}/node-{version}-{platform}.tar", + "comma_separated_display_args": "--ktlint-lockfile=", + "config_key": "lockfile", + "default": "", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--nodejs-url-template="], - "env_var": "PANTS_NODEJS_URL_TEMPLATE", + "display_args": ["--ktlint-lockfile="], + "env_var": "PANTS_KTLINT_LOCKFILE", "fromfile": false, - "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", + "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/kotlin/lint/ktlint/ktlint.lock for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=ktlint`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--nodejs-url-template"], + "scoped_cmd_line_args": ["--ktlint-lockfile"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--url-template"], + "unscoped_cmd_line_args": ["--lockfile"], "value_history": { "ranked_values": [ { @@ -13041,29 +13079,29 @@ { "details": null, "rank": "HARDCODED", - "value": "https://nodejs.org/dist/{version}/node-{version}-{platform}.tar" + "value": "" } ] } }, - "PANTS_NODEJS_VERSION": { + "PANTS_KTLINT_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--nodejs-version=", - "config_key": "version", - "default": "v16.15.0", + "comma_separated_display_args": "--[no-]ktlint-skip", + "config_key": "skip", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--nodejs-version="], - "env_var": "PANTS_NODEJS_VERSION", + "display_args": ["--[no-]ktlint-skip"], + "env_var": "PANTS_KTLINT_SKIP", "fromfile": false, - "help": "Use this version of nodejs.", + "help": "If true, don't use Ktlint when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--nodejs-version"], + "scoped_cmd_line_args": ["--ktlint-skip", "--no-ktlint-skip"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--version"], + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -13074,32 +13112,29 @@ { "details": null, "rank": "HARDCODED", - "value": "v16.15.0" + "value": false } ] } }, - "PANTS_OPENAPI_TAILOR_TARGETS": { + "PANTS_KTLINT_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]openapi-tailor-targets", - "config_key": "tailor_targets", - "default": true, + "comma_separated_display_args": "--ktlint-version=", + "config_key": "version", + "default": "0.45.2", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]openapi-tailor-targets"], - "env_var": "PANTS_OPENAPI_TAILOR_TARGETS", + "display_args": ["--ktlint-version="], + "env_var": "PANTS_KTLINT_VERSION", "fromfile": false, - "help": "If true, add `openapi_documents` and `openapi_sources` targets with the `tailor` goal.", + "help": "Version string for the tool. This is available for substitution in the `[ktlint].artifacts` option by including the string `{version}`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--openapi-tailor-targets", - "--no-openapi-tailor-targets" - ], + "scoped_cmd_line_args": ["--ktlint-version"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--tailor-targets", "--no-tailor-targets"], + "typ": "str", + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { @@ -13110,64 +13145,64 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": "0.45.2" } ] } }, - "PANTS_PANTSD": { + "PANTS_KUBECONFORM_CONCURRENCY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]pantsd", - "config_key": "pantsd", - "default": true, + "comma_separated_display_args": "--kubeconform-concurrency=", + "config_key": "concurrency", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]pantsd"], - "env_var": "PANTS_PANTSD", + "display_args": ["--kubeconform-concurrency="], + "env_var": "PANTS_KUBECONFORM_CONCURRENCY", "fromfile": false, - "help": "Enables use of the Pants daemon (pantsd). pantsd can significantly improve runtime performance by lowering per-run startup cost, and by memoizing filesystem operations and rule execution.", + "help": "Number of workers used by Kubeconform to validate resources.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pantsd", "--no-pantsd"], + "scoped_cmd_line_args": ["--kubeconform-concurrency"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--pantsd", "--no-pantsd"], + "typ": "int", + "unscoped_cmd_line_args": ["--concurrency"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": true } ] } }, - "PANTS_PANTSD_INVALIDATION_GLOBS": { + "PANTS_KUBECONFORM_KNOWN_VERSIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pantsd-invalidation-globs=\"['', '', ...]\"", - "config_key": "pantsd_invalidation_globs", - "default": [], + "comma_separated_display_args": "--kubeconform-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", + "default": [ + "0.6.2|linux_arm64 |41c15ecbb120042bee0aca8a616e479b555084d5d14bc2e095ed96081c1e9404|5335394", + "0.6.2|linux_x86_64|d2a10db6b78d56de8fe9375b9c351bc573aa218a74da04d114767b505a675090|5739066", + "0.6.2|macos_arm64 |881e3fe2ecdb1cc41bce80013113f24da80e1bec593876ffe88668333ae69b51|5423607", + "0.6.2|macos_x86_64|88e53c2562482ed5ab7434188ca5ba03d3482088ac52d53da7499d579923f2e8|5656173" + ], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--pantsd-invalidation-globs=\"['', '', ...]\"" + "--kubeconform-known-versions=\"['', '', ...]\"" ], - "env_var": "PANTS_PANTSD_INVALIDATION_GLOBS", + "env_var": "PANTS_KUBECONFORM_KNOWN_VERSIONS", "fromfile": false, - "help": "Filesystem events matching any of these globs will trigger a daemon restart. Pants's own code, plugins, and `--pants-config-files` are inherently invalidated.", + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pantsd-invalidation-globs"], + "scoped_cmd_line_args": ["--kubeconform-known-versions"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--pantsd-invalidation-globs"], + "unscoped_cmd_line_args": ["--known-versions"], "value_history": { "ranked_values": [ { @@ -13178,29 +13213,34 @@ { "details": "", "rank": "HARDCODED", - "value": [] + "value": [ + "0.6.2|linux_arm64 |41c15ecbb120042bee0aca8a616e479b555084d5d14bc2e095ed96081c1e9404|5335394", + "0.6.2|linux_x86_64|d2a10db6b78d56de8fe9375b9c351bc573aa218a74da04d114767b505a675090|5739066", + "0.6.2|macos_arm64 |881e3fe2ecdb1cc41bce80013113f24da80e1bec593876ffe88668333ae69b51|5423607", + "0.6.2|macos_x86_64|88e53c2562482ed5ab7434188ca5ba03d3482088ac52d53da7499d579923f2e8|5656173" + ] } ] } }, - "PANTS_PANTSD_MAX_MEMORY_USAGE": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--pantsd-max-memory-usage=", - "config_key": "pantsd_max_memory_usage", - "default": "4GiB", + "PANTS_KUBECONFORM_OUTPUT_TYPE": { + "choices": ["text", "json", "tap", "junit"], + "comma_separated_choices": "text, json, tap, junit", + "comma_separated_display_args": "--kubeconform-output-type=", + "config_key": "output_type", + "default": "text", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pantsd-max-memory-usage="], - "env_var": "PANTS_PANTSD_MAX_MEMORY_USAGE", + "display_args": ["--kubeconform-output-type="], + "env_var": "PANTS_KUBECONFORM_OUTPUT_TYPE", "fromfile": false, - "help": "The maximum memory usage of the pantsd process.\n\nWhen the maximum memory is exceeded, the daemon will restart gracefully, although all previous in-memory caching will be lost. Setting too low means that you may miss out on some caching, whereas setting too high may over-consume resources and may result in the operating system killing Pantsd due to memory overconsumption (e.g. via the OOM killer).\n\nYou can suffix with `GiB`, `MiB`, `KiB`, or `B` to indicate the unit, e.g. `2GiB` or `2.12GiB`. A bare number will be in bytes.\n\nThere is at most one pantsd process per workspace.", + "help": "Output type used by `kubeconform`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pantsd-max-memory-usage"], + "scoped_cmd_line_args": ["--kubeconform-output-type"], "target_field_name": null, - "typ": "memory_size", - "unscoped_cmd_line_args": ["--pantsd-max-memory-usage"], + "typ": "KubeconformOutput", + "unscoped_cmd_line_args": ["--output-type"], "value_history": { "ranked_values": [ { @@ -13211,62 +13251,64 @@ { "details": null, "rank": "HARDCODED", - "value": 4294967296 + "value": "text" } ] } }, - "PANTS_PANTSD_PAILGUN_PORT": { + "PANTS_KUBECONFORM_SCHEMA_LOCATIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pantsd-pailgun-port=", - "config_key": "pantsd_pailgun_port", - "default": 0, + "comma_separated_display_args": "--kubeconform-schema-locations=\"['', '', ...]\"", + "config_key": "schema_locations", + "default": ["default"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pantsd-pailgun-port="], - "env_var": "PANTS_PANTSD_PAILGUN_PORT", + "display_args": [ + "--kubeconform-schema-locations=\"['', '', ...]\"" + ], + "env_var": "PANTS_KUBECONFORM_SCHEMA_LOCATIONS", "fromfile": false, - "help": "The port to bind the Pants nailgun server to. Defaults to a random port.", + "help": "List of schema locations to use to validate the resources.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pantsd-pailgun-port"], + "scoped_cmd_line_args": ["--kubeconform-schema-locations"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--pantsd-pailgun-port"], + "typ": "list", + "unscoped_cmd_line_args": ["--schema-locations"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": 0 + "value": ["default"] } ] } }, - "PANTS_PANTSD_TIMEOUT_WHEN_MULTIPLE_INVOCATIONS": { + "PANTS_KUBECONFORM_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pantsd-timeout-when-multiple-invocations=", - "config_key": "pantsd_timeout_when_multiple_invocations", - "default": 60.0, + "comma_separated_display_args": "--[no-]kubeconform-skip", + "config_key": "skip", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pantsd-timeout-when-multiple-invocations="], - "env_var": "PANTS_PANTSD_TIMEOUT_WHEN_MULTIPLE_INVOCATIONS", + "display_args": ["--[no-]kubeconform-skip"], + "env_var": "PANTS_KUBECONFORM_SKIP", "fromfile": false, - "help": "The maximum amount of time to wait for the invocation to start until raising a timeout exception. Because pantsd currently does not support parallel runs, any prior running Pants command must be finished for the current one to start. To never timeout, use the value -1.", + "help": "If true, don't use kubeconform when running `pants check`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pantsd-timeout-when-multiple-invocations"], + "scoped_cmd_line_args": ["--kubeconform-skip", "--no-kubeconform-skip"], "target_field_name": null, - "typ": "float", - "unscoped_cmd_line_args": ["--pantsd-timeout-when-multiple-invocations"], + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -13277,29 +13319,32 @@ { "details": null, "rank": "HARDCODED", - "value": 60.0 + "value": false } ] } }, - "PANTS_PANTSRC": { + "PANTS_KUBECONFORM_SUMMARY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]pantsrc", - "config_key": "pantsrc", - "default": true, + "comma_separated_display_args": "--[no-]kubeconform-summary", + "config_key": "summary", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]pantsrc"], - "env_var": "PANTS_PANTSRC", + "display_args": ["--[no-]kubeconform-summary"], + "env_var": "PANTS_KUBECONFORM_SUMMARY", "fromfile": false, - "help": "Use pantsrc files located at the paths specified in the global option `pantsrc_files`.", + "help": "Set to true to only output check summary.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pantsrc", "--no-pantsrc"], + "scoped_cmd_line_args": [ + "--kubeconform-summary", + "--no-kubeconform-summary" + ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--pantsrc", "--no-pantsrc"], + "unscoped_cmd_line_args": ["--summary", "--no-summary"], "value_history": { "ranked_values": [ { @@ -13310,149 +13355,178 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": false } ] } }, - "PANTS_PANTSRC_FILES": { + "PANTS_KUBECONFORM_URL_PLATFORM_MAPPING": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pantsrc-files=\"[, , ...]\"", - "config_key": "pantsrc_files", - "default": ["/etc/pantsrc", "~/.pants.rc", ".pants.rc"], + "comma_separated_display_args": "--kubeconform-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "url_platform_mapping", + "default": { + "linux_arm64": "linux-arm64", + "linux_x86_64": "linux-amd64", + "macos_arm64": "darwin-arm64", + "macos_x86_64": "darwin-amd64" + }, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pantsrc-files=\"[, , ...]\""], - "env_var": "PANTS_PANTSRC_FILES", + "display_args": [ + "--kubeconform-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_KUBECONFORM_URL_PLATFORM_MAPPING", "fromfile": false, - "help": "Override config with values from these files, using syntax matching that of `--pants-config-files`.", + "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pantsrc-files"], + "scoped_cmd_line_args": ["--kubeconform-url-platform-mapping"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--pantsrc-files"], + "typ": "dict", + "unscoped_cmd_line_args": ["--url-platform-mapping"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": [] + "value": {} }, { "details": "", "rank": "HARDCODED", - "value": ["/etc/pantsrc", "~/.pants.rc", ".pants.rc"] + "value": { + "linux_arm64": "linux-arm64", + "linux_x86_64": "linux-amd64", + "macos_arm64": "darwin-arm64", + "macos_x86_64": "darwin-amd64" + } } ] } }, - "PANTS_PATHS_FROM": { + "PANTS_KUBECONFORM_URL_TEMPLATE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--paths-from=", - "config_key": "from", - "default": null, + "comma_separated_display_args": "--kubeconform-url-template=", + "config_key": "url_template", + "default": "https://github.com/yannh/kubeconform/releases/download/v{version}/kubeconform-{platform}.tar.gz", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--paths-from="], - "env_var": "PANTS_PATHS_FROM", + "display_args": ["--kubeconform-url-template="], + "env_var": "PANTS_KUBECONFORM_URL_TEMPLATE", "fromfile": false, - "help": "The path starting address", + "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--paths-from"], + "scoped_cmd_line_args": ["--kubeconform-url-template"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--from"], + "unscoped_cmd_line_args": ["--url-template"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "https://github.com/yannh/kubeconform/releases/download/v{version}/kubeconform-{platform}.tar.gz" } ] } }, - "PANTS_PATHS_OUTPUT_FILE": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--paths-output-file=", - "config_key": "output_file", - "default": null, + "PANTS_KUBECONFORM_USE_UNSUPPORTED_VERSION": { + "choices": ["error", "warning"], + "comma_separated_choices": "error, warning", + "comma_separated_display_args": "--kubeconform-use-unsupported-version=", + "config_key": "use_unsupported_version", + "default": "error", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--paths-output-file="], - "env_var": "PANTS_PATHS_OUTPUT_FILE", + "display_args": [ + "--kubeconform-use-unsupported-version=" + ], + "env_var": "PANTS_KUBECONFORM_USE_UNSUPPORTED_VERSION", "fromfile": false, - "help": "Output the goal's stdout to this file. If unspecified, outputs to stdout.", + "help": "\nWhat action to take in case the requested version of kubeconform is not supported.\n\nSupported kubeconform versions: unspecified\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--paths-output-file"], + "scoped_cmd_line_args": ["--kubeconform-use-unsupported-version"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--output-file"], + "typ": "UnsupportedVersionUsage", + "unscoped_cmd_line_args": ["--use-unsupported-version"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "error" } ] } }, - "PANTS_PATHS_TO": { + "PANTS_KUBECONFORM_VERBOSE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--paths-to=", - "config_key": "to", - "default": null, + "comma_separated_display_args": "--[no-]kubeconform-verbose", + "config_key": "verbose", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--paths-to="], - "env_var": "PANTS_PATHS_TO", + "display_args": ["--[no-]kubeconform-verbose"], + "env_var": "PANTS_KUBECONFORM_VERBOSE", "fromfile": false, - "help": "The path end address", + "help": "Set to true to increase output verbosity.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--paths-to"], + "scoped_cmd_line_args": [ + "--kubeconform-verbose", + "--no-kubeconform-verbose" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--to"], + "typ": "bool", + "unscoped_cmd_line_args": ["--verbose", "--no-verbose"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false } ] } }, - "PANTS_PEEK_EXCLUDE_DEFAULTS": { + "PANTS_KUBECONFORM_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]peek-exclude-defaults", - "config_key": "exclude_defaults", - "default": false, + "comma_separated_display_args": "--kubeconform-version=", + "config_key": "version", + "default": "0.6.2", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]peek-exclude-defaults"], - "env_var": "PANTS_PEEK_EXCLUDE_DEFAULTS", + "display_args": ["--kubeconform-version="], + "env_var": "PANTS_KUBECONFORM_VERSION", "fromfile": false, - "help": "Whether to leave off values that match the target-defined default values.", + "help": "Use this version of kubeconform.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--peek-exclude-defaults", - "--no-peek-exclude-defaults" - ], + "scoped_cmd_line_args": ["--kubeconform-version"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--exclude-defaults", "--no-exclude-defaults"], + "typ": "str", + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { @@ -13463,35 +13537,29 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": "0.6.2" } ] } }, - "PANTS_PEEK_INCLUDE_DEP_RULES": { + "PANTS_LAMBDEX_CONSOLE_SCRIPT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]peek-include-dep-rules", - "config_key": "include_dep_rules", - "default": false, + "comma_separated_display_args": "--lambdex-console-script=", + "config_key": "console_script", + "default": "lambdex", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]peek-include-dep-rules"], - "env_var": "PANTS_PEEK_INCLUDE_DEP_RULES", + "display_args": ["--lambdex-console-script="], + "env_var": "PANTS_LAMBDEX_CONSOLE_SCRIPT", "fromfile": false, - "help": "Whether to include `_dependencies_rules`, `_dependents_rules` and `_applicable_dep_rules` that apply to the target and its dependencies.", + "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--peek-include-dep-rules", - "--no-peek-include-dep-rules" - ], + "scoped_cmd_line_args": ["--lambdex-console-script"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--include-dep-rules", - "--no-include-dep-rules" - ], + "typ": "str", + "unscoped_cmd_line_args": ["--console-script"], "value_history": { "ranked_values": [ { @@ -13502,29 +13570,29 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": "lambdex" } ] } }, - "PANTS_PEEK_OUTPUT_FILE": { + "PANTS_LAMBDEX_ENTRY_POINT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--peek-output-file=", - "config_key": "output_file", + "comma_separated_display_args": "--lambdex-entry-point=", + "config_key": "entry_point", "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--peek-output-file="], - "env_var": "PANTS_PEEK_OUTPUT_FILE", + "display_args": ["--lambdex-entry-point="], + "env_var": "PANTS_LAMBDEX_ENTRY_POINT", "fromfile": false, - "help": "Output the goal's stdout to this file. If unspecified, outputs to stdout.", + "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--peek-output-file"], + "scoped_cmd_line_args": ["--lambdex-entry-point"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--output-file"], + "unscoped_cmd_line_args": ["--entry-point"], "value_history": { "ranked_values": [ { @@ -13535,172 +13603,153 @@ ] } }, - "PANTS_PEX_BINARY_DEFAULTS_EMIT_WARNINGS": { + "PANTS_LAMBDEX_INSTALL_FROM_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]pex-binary-defaults-emit-warnings", - "config_key": "emit_warnings", - "default": true, + "comma_separated_display_args": "--lambdex-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]pex-binary-defaults-emit-warnings"], - "env_var": "PANTS_PEX_BINARY_DEFAULTS_EMIT_WARNINGS", + "display_args": ["--lambdex-install-from-resolve="], + "env_var": "PANTS_LAMBDEX_INSTALL_FROM_RESOLVE", "fromfile": false, - "help": "Whether built PEX binaries should emit PEX warnings at runtime by default.\n\nCan be overridden by specifying the `emit_warnings` parameter of individual `pex_binary` targets", + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `lambdex` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--pex-binary-defaults-emit-warnings", - "--no-pex-binary-defaults-emit-warnings" - ], + "scoped_cmd_line_args": ["--lambdex-install-from-resolve"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--emit-warnings", "--no-emit-warnings"], + "typ": "str", + "unscoped_cmd_line_args": ["--install-from-resolve"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": true } ] } }, - "PANTS_PEX_BINARY_DEFAULTS_RESOLVE_LOCAL_PLATFORMS": { + "PANTS_LAMBDEX_INTERPRETER_CONSTRAINTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]pex-binary-defaults-resolve-local-platforms", - "config_key": "resolve_local_platforms", - "default": false, + "comma_separated_display_args": "--lambdex-interpreter-constraints=\"['', '', ...]\"", + "config_key": "interpreter_constraints", + "default": ["CPython>=3.7,<3.12"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]pex-binary-defaults-resolve-local-platforms"], - "env_var": "PANTS_PEX_BINARY_DEFAULTS_RESOLVE_LOCAL_PLATFORMS", + "display_args": [ + "--lambdex-interpreter-constraints=\"['', '', ...]\"" + ], + "env_var": "PANTS_LAMBDEX_INTERPRETER_CONSTRAINTS", "fromfile": false, - "help": "For each of the `platforms` specified for a `pex_binary` target, attempt to find a local interpreter that matches.\n\nIf a matching interpreter is found, use the interpreter to resolve distributions and build any that are only available in source distribution form. If no matching interpreter is found (or if this option is `False`), resolve for the platform by accepting only pre-built binary distributions (wheels).", + "help": "Python interpreter constraints for this tool.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--pex-binary-defaults-resolve-local-platforms", - "--no-pex-binary-defaults-resolve-local-platforms" - ], + "scoped_cmd_line_args": ["--lambdex-interpreter-constraints"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--resolve-local-platforms", - "--no-resolve-local-platforms" - ], + "typ": "list", + "unscoped_cmd_line_args": ["--interpreter-constraints"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": ["CPython>=3.7,<3.12"] } ] } }, - "PANTS_PEX_CLI_KNOWN_VERSIONS": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--pex-cli-known-versions=\"['', '', ...]\"", - "config_key": "known_versions", - "default": [ - "v2.1.137|macos_arm64|faad51a6a108fba9d40b2a10e82a2646fccbaf8c3d9be47818f4bffae02d94b8|4098329", - "v2.1.137|macos_x86_64|faad51a6a108fba9d40b2a10e82a2646fccbaf8c3d9be47818f4bffae02d94b8|4098329", - "v2.1.137|linux_x86_64|faad51a6a108fba9d40b2a10e82a2646fccbaf8c3d9be47818f4bffae02d94b8|4098329", - "v2.1.137|linux_arm64|faad51a6a108fba9d40b2a10e82a2646fccbaf8c3d9be47818f4bffae02d94b8|4098329" - ], - "deprecated_message": null, - "deprecation_active": false, - "display_args": ["--pex-cli-known-versions=\"['', '', ...]\""], - "env_var": "PANTS_PEX_CLI_KNOWN_VERSIONS", + "PANTS_LAMBDEX_LAYOUT": { + "choices": ["lambdex", "zip"], + "comma_separated_choices": "lambdex, zip", + "comma_separated_display_args": "--lambdex-layout=", + "config_key": "layout", + "default": "zip", + "deprecated_message": "Deprecated, is scheduled to be removed in version: 2.19.0.dev0.", + "deprecation_active": true, + "display_args": ["--lambdex-layout="], + "env_var": "PANTS_LAMBDEX_LAYOUT", "fromfile": false, - "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--pex-cli-known-versions"], + "help": "Explicitly control the layout used for `python_aws_lambda_function` (formerly `python_awslambda`) and `python_google_cloud_function` targets. This option exists for the transition from Lambdex-based layout to the plain zip layout, as recommended by cloud vendors.", + "removal_hint": "Remove the whole [lambdex] section, as Lambdex is deprecated and its functionality will be removed. If you have `layout = \"zip\"`, no further action is required, as you are already using the recommended layout.\n\nIf you have `layout = \"lambdex\"`, removing the section will switch any `python_aws_lambda_function` (formerly `python_awslambda`) and `python_google_cloud_function` targets to using the `zip` layout, as recommended by cloud vendors. (If you are using `python_aws_lambda_function`, you will need to also update the handlers configured in the cloud from `lambdex_handler.handler` to `lambda_function.handler`.)\n\nSee the docs for more details:\n\n* https://www.pantsbuild.org/v2.18/docs/awslambda-python#migrating-from-pants-216-and-earlier\n* https://www.pantsbuild.org/v2.18/docs/google-cloud-function-python#migrating-from-pants-216-and-earlier", + "removal_version": "2.19.0.dev0", + "scoped_cmd_line_args": ["--lambdex-layout"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--known-versions"], + "typ": "LambdexLayout", + "unscoped_cmd_line_args": ["--layout"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [ - "v2.1.137|macos_arm64|faad51a6a108fba9d40b2a10e82a2646fccbaf8c3d9be47818f4bffae02d94b8|4098329", - "v2.1.137|macos_x86_64|faad51a6a108fba9d40b2a10e82a2646fccbaf8c3d9be47818f4bffae02d94b8|4098329", - "v2.1.137|linux_x86_64|faad51a6a108fba9d40b2a10e82a2646fccbaf8c3d9be47818f4bffae02d94b8|4098329", - "v2.1.137|linux_arm64|faad51a6a108fba9d40b2a10e82a2646fccbaf8c3d9be47818f4bffae02d94b8|4098329" - ] + "value": "zip" } ] } }, - "PANTS_PEX_CLI_URL_PLATFORM_MAPPING": { + "PANTS_LAMBDEX_REQUIREMENTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pex-cli-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "url_platform_mapping", - "default": {}, + "comma_separated_display_args": "--lambdex-requirements=\"['', '', ...]\"", + "config_key": "requirements", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--pex-cli-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_PEX_CLI_URL_PLATFORM_MAPPING", + "display_args": ["--lambdex-requirements=\"['', '', ...]\""], + "env_var": "PANTS_LAMBDEX_REQUIREMENTS", "fromfile": false, - "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", + "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pex-cli-url-platform-mapping"], + "scoped_cmd_line_args": ["--lambdex-requirements"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--url-platform-mapping"], + "typ": "list", + "unscoped_cmd_line_args": ["--requirements"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": {} + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] } ] } }, - "PANTS_PEX_CLI_URL_TEMPLATE": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--pex-cli-url-template=", - "config_key": "url_template", - "default": "https://github.com/pantsbuild/pex/releases/download/{version}/pex", + "PANTS_LEVEL": { + "choices": ["trace", "debug", "info", "warn", "error"], + "comma_separated_choices": "trace, debug, info, warn, error", + "comma_separated_display_args": "-l=, --level=", + "config_key": "level", + "default": "info", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pex-cli-url-template="], - "env_var": "PANTS_PEX_CLI_URL_TEMPLATE", + "display_args": ["-l=", "--level="], + "env_var": "PANTS_LEVEL", "fromfile": false, - "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", + "help": "Set the logging level.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pex-cli-url-template"], + "scoped_cmd_line_args": ["-l", "--level"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--url-template"], + "typ": "LogLevel", + "unscoped_cmd_line_args": ["-l", "--level"], "value_history": { "ranked_values": [ { @@ -13711,31 +13760,29 @@ { "details": null, "rank": "HARDCODED", - "value": "https://github.com/pantsbuild/pex/releases/download/{version}/pex" + "value": "info" } ] } }, - "PANTS_PEX_CLI_USE_UNSUPPORTED_VERSION": { - "choices": ["error", "warning"], - "comma_separated_choices": "error, warning", - "comma_separated_display_args": "--pex-cli-use-unsupported-version=", - "config_key": "use_unsupported_version", - "default": "error", + "PANTS_LINT_BATCH_SIZE": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--lint-batch-size=", + "config_key": "batch_size", + "default": 128, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--pex-cli-use-unsupported-version=" - ], - "env_var": "PANTS_PEX_CLI_USE_UNSUPPORTED_VERSION", + "display_args": ["--lint-batch-size="], + "env_var": "PANTS_LINT_BATCH_SIZE", "fromfile": false, - "help": "\nWhat action to take in case the requested version of pex is not supported.\n\nSupported pex versions: >=2.1.135,<3.0\n", + "help": "The target number of files to be included in each linter batch.\n\nLinter processes are batched for a few reasons:\n\n 1. to avoid OS argument length limits (in processes which don't support argument files)\n 2. to support more stable cache keys than would be possible if all files were operated on in a single batch.\n 3. to allow for parallelism in linter processes which don't have internal parallelism, or -- if they do support internal parallelism -- to improve scheduling behavior when multiple processes are competing for cores and so internal parallelism cannot be used perfectly.\n\nIn order to improve cache hit rates (see 2.), batches are created at stable boundaries, and so this value is only a \"target\" batch size (rather than an exact value).", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pex-cli-use-unsupported-version"], + "scoped_cmd_line_args": ["--lint-batch-size"], "target_field_name": null, - "typ": "UnsupportedVersionUsage", - "unscoped_cmd_line_args": ["--use-unsupported-version"], + "typ": "int", + "unscoped_cmd_line_args": ["--batch-size"], "value_history": { "ranked_values": [ { @@ -13746,103 +13793,98 @@ { "details": null, "rank": "HARDCODED", - "value": "error" + "value": 128 } ] } }, - "PANTS_PEX_CLI_VERSION": { + "PANTS_LINT_ONLY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pex-cli-version=", - "config_key": "version", - "default": "v2.1.137", + "comma_separated_display_args": "--lint-only=\"['', '', ...]\"", + "config_key": "only", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pex-cli-version="], - "env_var": "PANTS_PEX_CLI_VERSION", + "display_args": ["--lint-only=\"['', '', ...]\""], + "env_var": "PANTS_LINT_ONLY", "fromfile": false, - "help": "Use this version of pex.\n\nSupported pex versions: >=2.1.135,<3.0", + "help": "Only run these linters and skip all others.\n\nThe linter names are outputted at the final summary of running this goal, e.g. `flake8` and `shellcheck`. You can also run `lint --only=fake` to get a list of all activated linters.\n\nYou can repeat this option, e.g. `lint --only=flake8 --only=shellcheck` or `lint --only=['flake8', 'shellcheck']`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pex-cli-version"], + "scoped_cmd_line_args": ["--lint-only"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--version"], + "typ": "list", + "unscoped_cmd_line_args": ["--only"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "v2.1.137" + "value": [] } ] } }, - "PANTS_PEX_EXECUTABLE_SEARCH_PATHS": { + "PANTS_LINT_SKIP_FIXERS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pex-executable-search-paths=\"[, , ...]\"", - "config_key": "executable_search_paths", - "default": [""], + "comma_separated_display_args": "--[no-]lint-skip-fixers", + "config_key": "skip_fixers", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--pex-executable-search-paths=\"[, , ...]\"" - ], - "env_var": "PANTS_PEX_EXECUTABLE_SEARCH_PATHS", + "display_args": ["--[no-]lint-skip-fixers"], + "env_var": "PANTS_LINT_SKIP_FIXERS", "fromfile": false, - "help": "The PATH value that will be used by the PEX subprocess and any subprocesses it spawns.\n\nThe special string `\"\"` will expand to the contents of the PATH env var.", + "help": "If true, skip running all fixers in check-only mode.\n\nFYI: when running `pants fix lint ::`, there should be diminishing performance benefit to using this flag. Pants attempts to reuse the results from `fix` when running `lint` where possible.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pex-executable-search-paths"], - "target_field_name": "pex_executable_search_paths", - "typ": "list", - "unscoped_cmd_line_args": ["--executable-search-paths"], + "scoped_cmd_line_args": ["--lint-skip-fixers", "--no-lint-skip-fixers"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--skip-fixers", "--no-skip-fixers"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [""] + "value": false } ] } }, - "PANTS_PEX_VENV_USE_SYMLINKS": { + "PANTS_LINT_SKIP_FORMATTERS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]pex-venv-use-symlinks", - "config_key": "venv_use_symlinks", + "comma_separated_display_args": "--[no-]lint-skip-formatters", + "config_key": "skip_formatters", "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]pex-venv-use-symlinks"], - "env_var": "PANTS_PEX_VENV_USE_SYMLINKS", + "display_args": ["--[no-]lint-skip-formatters"], + "env_var": "PANTS_LINT_SKIP_FORMATTERS", "fromfile": false, - "help": "When possible, use venvs whose site-packages directories are populated with symlinks.\n\nEnabling this can save space in the `--named-caches-dir` directory and lead to slightly faster execution times for Pants Python goals. Some distributions do not work with symlinked venvs though, so you may not be able to enable this optimization as a result.", + "help": "If true, skip running all formatters in check-only mode.\n\nFYI: when running `pants fmt lint ::`, there should be diminishing performance benefit to using this flag. Pants attempts to reuse the results from `fmt` when running `lint` where possible.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--pex-venv-use-symlinks", - "--no-pex-venv-use-symlinks" + "--lint-skip-formatters", + "--no-lint-skip-formatters" ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": [ - "--venv-use-symlinks", - "--no-venv-use-symlinks" - ], + "unscoped_cmd_line_args": ["--skip-formatters", "--no-skip-formatters"], "value_history": { "ranked_values": [ { @@ -13858,24 +13900,24 @@ ] } }, - "PANTS_PEX_VERBOSITY": { + "PANTS_LIST_DOCUMENTED": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pex-verbosity=", - "config_key": "verbosity", - "default": 0, + "comma_separated_display_args": "--[no-]list-documented", + "config_key": "documented", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pex-verbosity="], - "env_var": "PANTS_PEX_VERBOSITY", + "display_args": ["--[no-]list-documented"], + "env_var": "PANTS_LIST_DOCUMENTED", "fromfile": false, - "help": "Set the verbosity level of PEX logging, from 0 (no logging) up to 9 (max logging).", + "help": "Print only targets that are documented with a description.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pex-verbosity"], + "scoped_cmd_line_args": ["--list-documented", "--no-list-documented"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--verbosity"], + "typ": "bool", + "unscoped_cmd_line_args": ["--documented", "--no-documented"], "value_history": { "ranked_values": [ { @@ -13886,29 +13928,29 @@ { "details": null, "rank": "HARDCODED", - "value": 0 + "value": false } ] } }, - "PANTS_PHYSICAL_WORKDIR_BASE": { + "PANTS_LIST_OUTPUT_FILE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pants-physical-workdir-base=", - "config_key": "pants_physical_workdir_base", + "comma_separated_display_args": "--list-output-file=", + "config_key": "output_file", "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pants-physical-workdir-base="], - "env_var": "PANTS_PHYSICAL_WORKDIR_BASE", + "display_args": ["--list-output-file="], + "env_var": "PANTS_LIST_OUTPUT_FILE", "fromfile": false, - "help": "When set, a base directory in which to store `--pants-workdir` contents. If this option is a set, the workdir will be created as symlink into a per-workspace subdirectory.", + "help": "Output the goal's stdout to this file. If unspecified, outputs to stdout.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pants-physical-workdir-base"], + "scoped_cmd_line_args": ["--list-output-file"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--pants-physical-workdir-base"], + "unscoped_cmd_line_args": ["--output-file"], "value_history": { "ranked_values": [ { @@ -13919,63 +13961,57 @@ ] } }, - "PANTS_PLUGINS": { + "PANTS_LIST_SEP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--plugins=\"['', '', ...]\"", - "config_key": "plugins", - "default": [], + "comma_separated_display_args": "--list-sep=", + "config_key": "sep", + "default": "\\n", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--plugins=\"['', '', ...]\""], - "env_var": "PANTS_PLUGINS", + "display_args": ["--list-sep="], + "env_var": "PANTS_LIST_SEP", "fromfile": false, - "help": "Allow backends to be loaded from these plugins (usually released through PyPI). The default backends for each plugin will be loaded automatically. Other backends in a plugin can be loaded by listing them in `backend_packages` in the `[GLOBAL]` scope.", + "help": "String to use to separate lines in line-oriented output.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--plugins"], + "scoped_cmd_line_args": ["--list-sep"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--plugins"], + "typ": "str", + "unscoped_cmd_line_args": ["--sep"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": "\\n" } ] } }, - "PANTS_PLUGINS_FORCE_RESOLVE": { + "PANTS_LOCAL_CACHE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]plugins-force-resolve", - "config_key": "plugins_force_resolve", - "default": false, + "comma_separated_display_args": "--[no-]local-cache", + "config_key": "local_cache", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]plugins-force-resolve"], - "env_var": "PANTS_PLUGINS_FORCE_RESOLVE", + "display_args": ["--[no-]local-cache"], + "env_var": "PANTS_LOCAL_CACHE", "fromfile": false, - "help": "Re-resolve plugins, even if previously resolved.", + "help": "Whether to cache process executions in a local cache persisted to disk at `--local-store-dir`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--plugins-force-resolve", - "--no-plugins-force-resolve" - ], + "scoped_cmd_line_args": ["--local-cache", "--no-local-cache"], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": [ - "--plugins-force-resolve", - "--no-plugins-force-resolve" - ], + "unscoped_cmd_line_args": ["--local-cache", "--no-local-cache"], "value_history": { "ranked_values": [ { @@ -13986,29 +14022,29 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": true } ] } }, - "PANTS_PREAMBLE_SKIP": { + "PANTS_LOCAL_EXECUTION_ROOT_DIR": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]preamble-skip", - "config_key": "skip", - "default": false, + "comma_separated_display_args": "--local-execution-root-dir=", + "config_key": "local_execution_root_dir", + "default": "", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]preamble-skip"], - "env_var": "PANTS_PREAMBLE_SKIP", + "display_args": ["--local-execution-root-dir="], + "env_var": "PANTS_LOCAL_EXECUTION_ROOT_DIR", "fromfile": false, - "help": "If true, don't use preamble when running `scie-pants-linux-x86_64 fmt`.", + "help": "Directory to use for local process execution sandboxing.\n\nThe path may be absolute or relative. If the directory is within the build root, be sure to include it in `--pants-ignore`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--preamble-skip", "--no-preamble-skip"], + "scoped_cmd_line_args": ["--local-execution-root-dir"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "typ": "str", + "unscoped_cmd_line_args": ["--local-execution-root-dir"], "value_history": { "ranked_values": [ { @@ -14019,64 +14055,62 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": "/tmp" } ] } }, - "PANTS_PREAMBLE_TEMPLATE_BY_GLOBS": { + "PANTS_LOCAL_STORE_DIR": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--preamble-template-by-globs=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "template_by_globs", - "default": {}, + "comma_separated_display_args": "--local-store-dir=", + "config_key": "local_store_dir", + "default": "/home/runner/.cache/pants/lmdb_store", "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--preamble-template-by-globs=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_PREAMBLE_TEMPLATE_BY_GLOBS", - "fromfile": true, - "help": "Which preamble template to use based on the path globs (relative to the build root).\n\nExample:\n\n {\n '*.rs': '// Copyright (c) $year\\n// Line 2\\n'\n '*.py:!__init__.py': '# Copyright (c) $year\\n# Line 2\\n',\n }\n\nIt might be helpful to load this config from a JSON or YAML file. To do that, set `[preamble].config = '@path/to/config.yaml'`, for example.", + "display_args": ["--local-store-dir="], + "env_var": "PANTS_LOCAL_STORE_DIR", + "fromfile": false, + "help": "Directory to use for the local file store, which stores the results of subprocesses run by Pants.\n\nThe path may be absolute or relative. If the directory is within the build root, be sure to include it in `--pants-ignore`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--preamble-template-by-globs"], + "scoped_cmd_line_args": ["--local-store-dir"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--template-by-globs"], + "typ": "str", + "unscoped_cmd_line_args": ["--local-store-dir"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": {} + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": {} + "value": "/home/runner/.cache/pants/lmdb_store" } ] } }, - "PANTS_PRINT_STACKTRACE": { + "PANTS_LOCAL_STORE_DIRECTORIES_MAX_SIZE_BYTES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]print-stacktrace", - "config_key": "print_stacktrace", - "default": false, + "comma_separated_display_args": "--local-store-directories-max-size-bytes=", + "config_key": "local_store_directories_max_size_bytes", + "default": 16000000000, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]print-stacktrace"], - "env_var": "PANTS_PRINT_STACKTRACE", + "display_args": ["--local-store-directories-max-size-bytes="], + "env_var": "PANTS_LOCAL_STORE_DIRECTORIES_MAX_SIZE_BYTES", "fromfile": false, - "help": "Print the full exception stack trace for any errors.", + "help": "The maximum size in bytes of the local store containing directories. Stored below `--local-store-dir`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--print-stacktrace", "--no-print-stacktrace"], + "scoped_cmd_line_args": ["--local-store-directories-max-size-bytes"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--print-stacktrace", "--no-print-stacktrace"], + "typ": "int", + "unscoped_cmd_line_args": ["--local-store-directories-max-size-bytes"], "value_history": { "ranked_values": [ { @@ -14087,29 +14121,29 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": 16000000000 } ] } }, - "PANTS_PROCESS_CLEANUP": { + "PANTS_LOCAL_STORE_FILES_MAX_SIZE_BYTES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]process-cleanup", - "config_key": "process_cleanup", - "default": true, - "deprecated_message": "Deprecated, is scheduled to be removed in version: 3.0.0.dev0.", - "deprecation_active": true, - "display_args": ["--[no-]process-cleanup"], - "env_var": "PANTS_PROCESS_CLEANUP", + "comma_separated_display_args": "--local-store-files-max-size-bytes=", + "config_key": "local_store_files_max_size_bytes", + "default": 256000000000, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--local-store-files-max-size-bytes="], + "env_var": "PANTS_LOCAL_STORE_FILES_MAX_SIZE_BYTES", "fromfile": false, - "help": "If false, Pants will not clean up local directories used as chroots for running processes. Pants will log their location so that you can inspect the chroot, and run the `__run.sh` script to recreate the process using the same argv and environment variables used by Pants. This option is useful for debugging.", - "removal_hint": "Use the `keep_sandboxes` option instead.", - "removal_version": "3.0.0.dev0", - "scoped_cmd_line_args": ["--process-cleanup", "--no-process-cleanup"], + "help": "The maximum size in bytes of the local store containing files. Stored below `--local-store-dir`.\n\nNB: This size value bounds the total size of all files, but (due to sharding of the store on disk) it also bounds the per-file size to (VALUE / `--local-store-shard-count`).\n\nThis value doesn't reflect space allocated on disk, or RAM allocated (it may be reflected in VIRT but not RSS). However, the default is lower than you might otherwise choose because macOS creates core dumps that include MMAP'd pages, and setting this too high might cause core dumps to use an unreasonable amount of disk if they are enabled.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--local-store-files-max-size-bytes"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--process-cleanup", "--no-process-cleanup"], + "typ": "int", + "unscoped_cmd_line_args": ["--local-store-files-max-size-bytes"], "value_history": { "ranked_values": [ { @@ -14120,59 +14154,62 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": 256000000000 } ] } }, - "PANTS_PROCESS_EXECUTION_CACHE_NAMESPACE": { + "PANTS_LOCAL_STORE_PROCESSES_MAX_SIZE_BYTES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--process-execution-cache-namespace=", - "config_key": "process_execution_cache_namespace", - "default": null, + "comma_separated_display_args": "--local-store-processes-max-size-bytes=", + "config_key": "local_store_processes_max_size_bytes", + "default": 16000000000, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--process-execution-cache-namespace="], - "env_var": "PANTS_PROCESS_EXECUTION_CACHE_NAMESPACE", + "display_args": ["--local-store-processes-max-size-bytes="], + "env_var": "PANTS_LOCAL_STORE_PROCESSES_MAX_SIZE_BYTES", "fromfile": false, - "help": "The cache namespace for process execution. Change this value to invalidate every artifact's execution, or to prevent process cache entries from being (re)used for different usecases or users.", + "help": "The maximum size in bytes of the local store containing process cache entries. Stored below `--local-store-dir`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--process-execution-cache-namespace"], + "scoped_cmd_line_args": ["--local-store-processes-max-size-bytes"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--process-execution-cache-namespace"], + "typ": "int", + "unscoped_cmd_line_args": ["--local-store-processes-max-size-bytes"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": 16000000000 } ] } }, - "PANTS_PROCESS_EXECUTION_GRACEFUL_SHUTDOWN_TIMEOUT": { + "PANTS_LOCAL_STORE_SHARD_COUNT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--process-execution-graceful-shutdown-timeout=", - "config_key": "process_execution_graceful_shutdown_timeout", - "default": 3, + "comma_separated_display_args": "--local-store-shard-count=", + "config_key": "local_store_shard_count", + "default": 16, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--process-execution-graceful-shutdown-timeout="], - "env_var": "PANTS_PROCESS_EXECUTION_GRACEFUL_SHUTDOWN_TIMEOUT", + "display_args": ["--local-store-shard-count="], + "env_var": "PANTS_LOCAL_STORE_SHARD_COUNT", "fromfile": false, - "help": "The time in seconds to wait when gracefully shutting down an interactive process (such as one opened using `scie-pants-linux-x86_64 run`) before killing it.", + "help": "The number of LMDB shards created for the local store. This setting also impacts the maximum size of stored files: see `--local-store-files-max-size-bytes` for more information.\n\nBecause LMDB allows only one simultaneous writer per database, the store is split into multiple shards to allow for more concurrent writers. The faster your disks are, the fewer shards you are likely to need for performance.\n\nNB: After changing this value, you will likely want to manually clear the `--local-store-dir` directory to clear the space used by old shard layouts.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--process-execution-graceful-shutdown-timeout"], + "scoped_cmd_line_args": ["--local-store-shard-count"], "target_field_name": null, "typ": "int", - "unscoped_cmd_line_args": [ - "--process-execution-graceful-shutdown-timeout" - ], + "unscoped_cmd_line_args": ["--local-store-shard-count"], "value_history": { "ranked_values": [ { @@ -14183,101 +14220,98 @@ { "details": null, "rank": "HARDCODED", - "value": 3 + "value": 16 } ] } }, - "PANTS_PROCESS_EXECUTION_LOCAL_ENABLE_NAILGUN": { + "PANTS_LOGDIR": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]process-execution-local-enable-nailgun", - "config_key": "process_execution_local_enable_nailgun", - "default": true, + "comma_separated_display_args": "--logdir=", + "config_key": "logdir", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]process-execution-local-enable-nailgun"], - "env_var": "PANTS_PROCESS_EXECUTION_LOCAL_ENABLE_NAILGUN", + "display_args": ["--logdir="], + "env_var": "PANTS_LOGDIR", "fromfile": false, - "help": "Whether or not to use nailgun to run JVM requests that are marked as supporting nailgun.", + "help": "Write logs to files under this directory.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--process-execution-local-enable-nailgun", - "--no-process-execution-local-enable-nailgun" - ], + "scoped_cmd_line_args": ["--logdir"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--process-execution-local-enable-nailgun", - "--no-process-execution-local-enable-nailgun" - ], + "typ": "str", + "unscoped_cmd_line_args": ["--logdir"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": true } ] } }, - "PANTS_PROCESS_EXECUTION_LOCAL_PARALLELISM": { + "PANTS_LOG_LEVELS_BY_TARGET": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--process-execution-local-parallelism=", - "config_key": "process_execution_local_parallelism", - "default": "#cores", + "comma_separated_display_args": "--log-levels-by-target=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "log_levels_by_target", + "default": {}, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--process-execution-local-parallelism="], - "env_var": "PANTS_PROCESS_EXECUTION_LOCAL_PARALLELISM", + "display_args": [ + "--log-levels-by-target=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_LOG_LEVELS_BY_TARGET", "fromfile": false, - "help": "Number of concurrent processes that may be executed locally.\n\nThis value is independent of the number of threads that may be used to execute the logic in `@rules` (controlled by `--rule-threads-core`).", + "help": "Set a more specific logging level for one or more logging targets. The names of logging targets are specified in log strings when the --show-log-target option is set. The logging levels are one of: \"error\", \"warn\", \"info\", \"debug\", \"trace\". All logging targets not specified here use the global log level set with `--level`. For example, you can set `--log-levels-by-target='{\"workunit_store\": \"info\", \"pants.engine.rules\": \"warn\"}'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--process-execution-local-parallelism"], + "scoped_cmd_line_args": ["--log-levels-by-target"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--process-execution-local-parallelism"], + "typ": "dict", + "unscoped_cmd_line_args": ["--log-levels-by-target"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": {} }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": 64 + "value": {} } ] } }, - "PANTS_PROCESS_EXECUTION_REMOTE_PARALLELISM": { + "PANTS_LOG_SHOW_RUST_3RDPARTY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--process-execution-remote-parallelism=", - "config_key": "process_execution_remote_parallelism", - "default": 128, + "comma_separated_display_args": "--[no-]log-show-rust-3rdparty", + "config_key": "log_show_rust_3rdparty", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--process-execution-remote-parallelism="], - "env_var": "PANTS_PROCESS_EXECUTION_REMOTE_PARALLELISM", + "display_args": ["--[no-]log-show-rust-3rdparty"], + "env_var": "PANTS_LOG_SHOW_RUST_3RDPARTY", "fromfile": false, - "help": "Number of concurrent processes that may be executed remotely.", + "help": "Whether to show/hide logging done by 3rdparty Rust crates used by the Pants engine.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--process-execution-remote-parallelism"], + "scoped_cmd_line_args": [ + "--log-show-rust-3rdparty", + "--no-log-show-rust-3rdparty" + ], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--process-execution-remote-parallelism"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--log-show-rust-3rdparty", + "--no-log-show-rust-3rdparty" + ], "value_history": { "ranked_values": [ { @@ -14288,29 +14322,29 @@ { "details": null, "rank": "HARDCODED", - "value": 128 + "value": false } ] } }, - "PANTS_PROCESS_PER_CHILD_MEMORY_USAGE": { + "PANTS_LOOP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--process-per-child-memory-usage=", - "config_key": "process_per_child_memory_usage", - "default": "512MiB", + "comma_separated_display_args": "--[no-]loop", + "config_key": "loop", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--process-per-child-memory-usage="], - "env_var": "PANTS_PROCESS_PER_CHILD_MEMORY_USAGE", + "display_args": ["--[no-]loop"], + "env_var": "PANTS_LOOP", "fromfile": false, - "help": "The default memory usage for a single \"pooled\" child process.\n\nCheck the documentation for the `--process-total-child-memory-usage` for advice on how to choose an appropriate value for this option.\n\nYou can suffix with `GiB`, `MiB`, `KiB`, or `B` to indicate the unit, e.g. `2GiB` or `2.12GiB`. A bare number will be in bytes.", + "help": "Run goals continuously as file changes are detected.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--process-per-child-memory-usage"], + "scoped_cmd_line_args": ["--loop", "--no-loop"], "target_field_name": null, - "typ": "memory_size", - "unscoped_cmd_line_args": ["--process-per-child-memory-usage"], + "typ": "bool", + "unscoped_cmd_line_args": ["--loop", "--no-loop"], "value_history": { "ranked_values": [ { @@ -14321,64 +14355,62 @@ { "details": null, "rank": "HARDCODED", - "value": 536870912 + "value": false } ] } }, - "PANTS_PROCESS_TOTAL_CHILD_MEMORY_USAGE": { + "PANTS_LOOP_MAX": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--process-total-child-memory-usage=", - "config_key": "process_total_child_memory_usage", - "default": null, + "comma_separated_display_args": "--loop-max=", + "config_key": "loop_max", + "default": 4294967296, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--process-total-child-memory-usage="], - "env_var": "PANTS_PROCESS_TOTAL_CHILD_MEMORY_USAGE", + "display_args": ["--loop-max="], + "env_var": "PANTS_LOOP_MAX", "fromfile": false, - "help": "The maximum memory usage for all \"pooled\" child processes.\n\nWhen set, this value participates in precomputing the pool size of child processes used by Pants (pooling is currently used only for the JVM). When not set, Pants will default to spawning `2 * --process-execution-local-parallelism` pooled processes.\n\nA high value would result in a high number of child processes spawned, potentially overconsuming your resources and triggering the OS' OOM killer. A low value would mean a low number of child processes launched and therefore less parallelism for the tasks that need those processes.\n\nIf setting this value, consider also adjusting the value of the `--process-per-child-memory-usage` option.\n\nYou can suffix with `GiB`, `MiB`, `KiB`, or `B` to indicate the unit, e.g. `2GiB` or `2.12GiB`. A bare number will be in bytes.", + "help": "The maximum number of times to loop when `--loop` is specified.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--process-total-child-memory-usage"], + "scoped_cmd_line_args": ["--loop-max"], "target_field_name": null, - "typ": "memory_size", - "unscoped_cmd_line_args": ["--process-total-child-memory-usage"], + "typ": "int", + "unscoped_cmd_line_args": ["--loop-max"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": 4294967296 } ] } }, - "PANTS_PROTOBUF_JAVA_GRPC_ARTIFACTS": { + "PANTS_MYPY_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--protobuf-java-grpc-artifacts=\"['', '', ...]\"", - "config_key": "artifacts", - "default": [ - "io.grpc:protoc-gen-grpc-java:exe:linux-aarch_64:{version}", - "io.grpc:protoc-gen-grpc-java:exe:linux-x86_64:{version}", - "io.grpc:protoc-gen-grpc-java:exe:osx-aarch_64:{version}", - "io.grpc:protoc-gen-grpc-java:exe:osx-x86_64:{version}" - ], + "comma_separated_display_args": "--mypy-args=\"[, , ...]\"", + "config_key": "args", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--protobuf-java-grpc-artifacts=\"['', '', ...]\"" - ], - "env_var": "PANTS_PROTOBUF_JAVA_GRPC_ARTIFACTS", + "display_args": ["--mypy-args=\"[, , ...]\""], + "env_var": "PANTS_MYPY_ARGS", "fromfile": false, - "help": "Artifact requirements for this tool using specified as either the address of a `jvm_artifact` target or, alternatively, as a colon-separated Maven coordinates (e.g., `group:name:version`). For Maven coordinates, the string `{version}` version will be substituted with the value of the `[protobuf-java-grpc].version` option.", + "help": "Arguments to pass directly to MyPy, e.g. `--mypy-args='--python-version 3.7 --disallow-any-expr'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--protobuf-java-grpc-artifacts"], + "scoped_cmd_line_args": ["--mypy-args"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--artifacts"], + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { @@ -14389,69 +14421,60 @@ { "details": "", "rank": "HARDCODED", - "value": [ - "io.grpc:protoc-gen-grpc-java:exe:linux-aarch_64:{version}", - "io.grpc:protoc-gen-grpc-java:exe:linux-x86_64:{version}", - "io.grpc:protoc-gen-grpc-java:exe:osx-aarch_64:{version}", - "io.grpc:protoc-gen-grpc-java:exe:osx-x86_64:{version}" - ] + "value": [] } ] } }, - "PANTS_PROTOBUF_JAVA_GRPC_JVM_OPTIONS": { + "PANTS_MYPY_CONFIG": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--protobuf-java-grpc-jvm-options=\"['', '', ...]\"", - "config_key": "jvm_options", - "default": [], + "comma_separated_display_args": "--mypy-config=", + "config_key": "config", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--protobuf-java-grpc-jvm-options=\"['', '', ...]\"" - ], - "env_var": "PANTS_PROTOBUF_JAVA_GRPC_JVM_OPTIONS", + "display_args": ["--mypy-config="], + "env_var": "PANTS_MYPY_CONFIG", "fromfile": false, - "help": "List of JVM options to pass to `protobuf-java-grpc` JVM processes.\n\nOptions set here will be added to those set in `[jvm].global_options`. Please check the documentation for the `jvm` subsystem to see what values are accepted here.", + "help": "Path to a config file understood by MyPy (https://mypy.readthedocs.io/en/stable/config_file.html).\n\nSetting this option will disable `[mypy].config_discovery`. Use this option if the config is located in a non-standard location.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--protobuf-java-grpc-jvm-options"], + "scoped_cmd_line_args": ["--mypy-config"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--jvm-options"], + "typ": "file_option", + "unscoped_cmd_line_args": ["--config"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] - }, - { - "details": "", - "rank": "HARDCODED", - "value": [] + "value": null } ] } }, - "PANTS_PROTOBUF_JAVA_GRPC_LOCKFILE": { + "PANTS_MYPY_CONFIG_DISCOVERY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--protobuf-java-grpc-lockfile=", - "config_key": "lockfile", - "default": "", + "comma_separated_display_args": "--[no-]mypy-config-discovery", + "config_key": "config_discovery", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--protobuf-java-grpc-lockfile="], - "env_var": "PANTS_PROTOBUF_JAVA_GRPC_LOCKFILE", + "display_args": ["--[no-]mypy-config-discovery"], + "env_var": "PANTS_MYPY_CONFIG_DISCOVERY", "fromfile": false, - "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/backend/codegen/protobuf/java/grpc-java.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `scie-pants-linux-x86_64 jvm-generate-lockfiles --resolve=protobuf-java-grpc`.", + "help": "If true, Pants will include any relevant config files during runs (`mypy.ini`, `.mypy.ini`, and `setup.cfg`).\n\nUse `[mypy].config` instead if your config is in a non-standard location.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--protobuf-java-grpc-lockfile"], + "scoped_cmd_line_args": [ + "--mypy-config-discovery", + "--no-mypy-config-discovery" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--lockfile"], + "typ": "bool", + "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], "value_history": { "ranked_values": [ { @@ -14462,29 +14485,29 @@ { "details": null, "rank": "HARDCODED", - "value": "" + "value": true } ] } }, - "PANTS_PROTOBUF_JAVA_GRPC_VERSION": { + "PANTS_MYPY_CONSOLE_SCRIPT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--protobuf-java-grpc-version=", - "config_key": "version", - "default": "1.48.0", + "comma_separated_display_args": "--mypy-console-script=", + "config_key": "console_script", + "default": "mypy", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--protobuf-java-grpc-version="], - "env_var": "PANTS_PROTOBUF_JAVA_GRPC_VERSION", + "display_args": ["--mypy-console-script="], + "env_var": "PANTS_MYPY_CONSOLE_SCRIPT", "fromfile": false, - "help": "Version string for the tool. This is available for substitution in the `[protobuf-java-grpc].artifacts` option by including the string `{version}`.", + "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--protobuf-java-grpc-version"], + "scoped_cmd_line_args": ["--mypy-console-script"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--version"], + "unscoped_cmd_line_args": ["--console-script"], "value_history": { "ranked_values": [ { @@ -14495,73 +14518,87 @@ { "details": null, "rank": "HARDCODED", - "value": "1.48.0" + "value": "mypy" } ] } }, - "PANTS_PROTOC_DEPENDENCY_INFERENCE": { + "PANTS_MYPY_ENTRY_POINT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]protoc-dependency-inference", - "config_key": "dependency_inference", - "default": true, + "comma_separated_display_args": "--mypy-entry-point=", + "config_key": "entry_point", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]protoc-dependency-inference"], - "env_var": "PANTS_PROTOC_DEPENDENCY_INFERENCE", + "display_args": ["--mypy-entry-point="], + "env_var": "PANTS_MYPY_ENTRY_POINT", "fromfile": false, - "help": "Infer Protobuf dependencies on other Protobuf files by analyzing import statements.", + "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--protoc-dependency-inference", - "--no-protoc-dependency-inference" - ], + "scoped_cmd_line_args": ["--mypy-entry-point"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--dependency-inference", - "--no-dependency-inference" - ], + "typ": "str", + "unscoped_cmd_line_args": ["--entry-point"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, + } + ] + } + }, + "PANTS_MYPY_INSTALL_FROM_RESOLVE": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--mypy-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--mypy-install-from-resolve="], + "env_var": "PANTS_MYPY_INSTALL_FROM_RESOLVE", + "fromfile": false, + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `mypy` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--mypy-install-from-resolve"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--install-from-resolve"], + "value_history": { + "ranked_values": [ { "details": null, - "rank": "HARDCODED", - "value": true + "rank": "NONE", + "value": null } ] } }, - "PANTS_PROTOC_KNOWN_VERSIONS": { + "PANTS_MYPY_INTERPRETER_CONSTRAINTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--protoc-known-versions=\"['', '', ...]\"", - "config_key": "known_versions", - "default": [ - "3.20.1|linux_arm64 |8a5a51876259f934cd2acc2bc59dba0e9a51bd631a5c37a4b9081d6e4dbc7591|1804837", - "3.20.1|linux_x86_64|3a0e900f9556fbcac4c3a913a00d07680f0fdf6b990a341462d822247b265562|1714731", - "3.20.1|macos_arm64 |b362acae78542872bb6aac8dba73aaf0dc6e94991b8b0a065d6c3e703fec2a8b|2708249", - "3.20.1|macos_x86_64|b4f36b18202d54d343a66eebc9f8ae60809a2a96cc2d1b378137550bbe4cf33c|2708249" - ], + "comma_separated_display_args": "--mypy-interpreter-constraints=\"['', '', ...]\"", + "config_key": "interpreter_constraints", + "default": ["CPython>=3.7,<4"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--protoc-known-versions=\"['', '', ...]\""], - "env_var": "PANTS_PROTOC_KNOWN_VERSIONS", + "display_args": [ + "--mypy-interpreter-constraints=\"['', '', ...]\"" + ], + "env_var": "PANTS_MYPY_INTERPRETER_CONSTRAINTS", "fromfile": false, - "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", + "help": "Python interpreter constraints for this tool.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--protoc-known-versions"], + "scoped_cmd_line_args": ["--mypy-interpreter-constraints"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--known-versions"], + "unscoped_cmd_line_args": ["--interpreter-constraints"], "value_history": { "ranked_values": [ { @@ -14572,180 +14609,160 @@ { "details": "", "rank": "HARDCODED", - "value": [ - "3.20.1|linux_arm64 |8a5a51876259f934cd2acc2bc59dba0e9a51bd631a5c37a4b9081d6e4dbc7591|1804837", - "3.20.1|linux_x86_64|3a0e900f9556fbcac4c3a913a00d07680f0fdf6b990a341462d822247b265562|1714731", - "3.20.1|macos_arm64 |b362acae78542872bb6aac8dba73aaf0dc6e94991b8b0a065d6c3e703fec2a8b|2708249", - "3.20.1|macos_x86_64|b4f36b18202d54d343a66eebc9f8ae60809a2a96cc2d1b378137550bbe4cf33c|2708249" - ] + "value": ["CPython>=3.7,<4"] } ] } }, - "PANTS_PROTOC_TAILOR": { + "PANTS_MYPY_PROTOBUF_INSTALL_FROM_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]protoc-tailor", - "config_key": "tailor", - "default": true, + "comma_separated_display_args": "--mypy-protobuf-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]protoc-tailor"], - "env_var": "PANTS_PROTOC_TAILOR", + "display_args": ["--mypy-protobuf-install-from-resolve="], + "env_var": "PANTS_MYPY_PROTOBUF_INSTALL_FROM_RESOLVE", "fromfile": false, - "help": "If true, add `protobuf_sources` targets with the `tailor` goal.", + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `mypy-protobuf` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--protoc-tailor", "--no-protoc-tailor"], + "scoped_cmd_line_args": ["--mypy-protobuf-install-from-resolve"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--tailor", "--no-tailor"], + "typ": "str", + "unscoped_cmd_line_args": ["--install-from-resolve"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": true } ] } }, - "PANTS_PROTOC_URL_PLATFORM_MAPPING": { + "PANTS_MYPY_PROTOBUF_INTERPRETER_CONSTRAINTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--protoc-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "url_platform_mapping", - "default": { - "linux_arm64": "linux-aarch_64", - "linux_x86_64": "linux-x86_64", - "macos_arm64": "osx-aarch_64", - "macos_x86_64": "osx-x86_64" - }, + "comma_separated_display_args": "--mypy-protobuf-interpreter-constraints=\"['', '', ...]\"", + "config_key": "interpreter_constraints", + "default": ["CPython>=3.7,<4"], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--protoc-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + "--mypy-protobuf-interpreter-constraints=\"['', '', ...]\"" ], - "env_var": "PANTS_PROTOC_URL_PLATFORM_MAPPING", + "env_var": "PANTS_MYPY_PROTOBUF_INTERPRETER_CONSTRAINTS", "fromfile": false, - "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", + "help": "Python interpreter constraints for this tool.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--protoc-url-platform-mapping"], + "scoped_cmd_line_args": ["--mypy-protobuf-interpreter-constraints"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--url-platform-mapping"], + "typ": "list", + "unscoped_cmd_line_args": ["--interpreter-constraints"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": {} + "value": [] }, { "details": "", "rank": "HARDCODED", - "value": { - "linux_arm64": "linux-aarch_64", - "linux_x86_64": "linux-x86_64", - "macos_arm64": "osx-aarch_64", - "macos_x86_64": "osx-x86_64" - } + "value": ["CPython>=3.7,<4"] } ] } }, - "PANTS_PROTOC_URL_TEMPLATE": { + "PANTS_MYPY_PROTOBUF_REQUIREMENTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--protoc-url-template=", - "config_key": "url_template", - "default": "https://github.com/protocolbuffers/protobuf/releases/download/v{version}/protoc-{version}-{platform}.zip", - "deprecated_message": null, + "comma_separated_display_args": "--mypy-protobuf-requirements=\"['', '', ...]\"", + "config_key": "requirements", + "default": [], + "deprecated_message": null, "deprecation_active": false, - "display_args": ["--protoc-url-template="], - "env_var": "PANTS_PROTOC_URL_TEMPLATE", + "display_args": [ + "--mypy-protobuf-requirements=\"['', '', ...]\"" + ], + "env_var": "PANTS_MYPY_PROTOBUF_REQUIREMENTS", "fromfile": false, - "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", + "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--protoc-url-template"], + "scoped_cmd_line_args": ["--mypy-protobuf-requirements"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--url-template"], + "typ": "list", + "unscoped_cmd_line_args": ["--requirements"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "https://github.com/protocolbuffers/protobuf/releases/download/v{version}/protoc-{version}-{platform}.zip" + "value": [] } ] } }, - "PANTS_PROTOC_USE_UNSUPPORTED_VERSION": { - "choices": ["error", "warning"], - "comma_separated_choices": "error, warning", - "comma_separated_display_args": "--protoc-use-unsupported-version=", - "config_key": "use_unsupported_version", - "default": "error", + "PANTS_MYPY_REQUIREMENTS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--mypy-requirements=\"['', '', ...]\"", + "config_key": "requirements", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--protoc-use-unsupported-version=" - ], - "env_var": "PANTS_PROTOC_USE_UNSUPPORTED_VERSION", + "display_args": ["--mypy-requirements=\"['', '', ...]\""], + "env_var": "PANTS_MYPY_REQUIREMENTS", "fromfile": false, - "help": "\nWhat action to take in case the requested version of protoc is not supported.\n\nSupported protoc versions: unspecified\n", + "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--protoc-use-unsupported-version"], + "scoped_cmd_line_args": ["--mypy-requirements"], "target_field_name": null, - "typ": "UnsupportedVersionUsage", - "unscoped_cmd_line_args": ["--use-unsupported-version"], + "typ": "list", + "unscoped_cmd_line_args": ["--requirements"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "error" + "value": [] } ] } }, - "PANTS_PROTOC_VERSION": { + "PANTS_MYPY_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--protoc-version=", - "config_key": "version", - "default": "3.20.1", + "comma_separated_display_args": "--[no-]mypy-skip", + "config_key": "skip", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--protoc-version="], - "env_var": "PANTS_PROTOC_VERSION", + "display_args": ["--[no-]mypy-skip"], + "env_var": "PANTS_MYPY_SKIP", "fromfile": false, - "help": "Use this version of protoc.", + "help": "If true, don't use MyPy when running `pants check`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--protoc-version"], + "scoped_cmd_line_args": ["--mypy-skip", "--no-mypy-skip"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--version"], + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -14756,57 +14773,99 @@ { "details": null, "rank": "HARDCODED", - "value": "3.20.1" + "value": false } ] } }, - "PANTS_PUBLISH_OUTPUT": { + "PANTS_MYPY_SOURCE_PLUGINS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--publish-output=", - "config_key": "output", - "default": null, + "comma_separated_display_args": "--mypy-source-plugins=\"[, , ...]\"", + "config_key": "source_plugins", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--publish-output="], - "env_var": "PANTS_PUBLISH_OUTPUT", + "display_args": [ + "--mypy-source-plugins=\"[, , ...]\"" + ], + "env_var": "PANTS_MYPY_SOURCE_PLUGINS", "fromfile": false, - "help": "Filename for JSON structured publish information.", + "help": "An optional list of `python_sources` target addresses to load first-party plugins.\n\nYou must also set `plugins = path.to.module` in your `mypy.ini`, and set the `[mypy].config` option in your `pants.toml`.\n\nTo instead load third-party plugins, set the option `[mypy].install_from_resolve` to a resolve whose lockfile includes those plugins, and set the `plugins` option in `mypy.ini`. See https://www.pantsbuild.org/v2.18/docs/python-check-goal.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--publish-output"], + "scoped_cmd_line_args": ["--mypy-source-plugins"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--source-plugins"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + }, + "PANTS_NAMED_CACHES_DIR": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--named-caches-dir=", + "config_key": "named_caches_dir", + "default": "/home/runner/.cache/pants/named_caches", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--named-caches-dir="], + "env_var": "PANTS_NAMED_CACHES_DIR", + "fromfile": false, + "help": "Directory to use for named global caches for tools and processes with trusted, concurrency-safe caches.\n\nThe path may be absolute or relative. If the directory is within the build root, be sure to include it in `--pants-ignore`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--named-caches-dir"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--output"], + "unscoped_cmd_line_args": ["--named-caches-dir"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "/home/runner/.cache/pants/named_caches" } ] } }, - "PANTS_PYDOCSTYLE_ARGS": { + "PANTS_NODEJS_COREPACK_ENV_VARS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pydocstyle-args=\"[, , ...]\"", - "config_key": "args", + "comma_separated_display_args": "--nodejs-corepack-env-vars=\"[, , ...]\"", + "config_key": "corepack_env_vars", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pydocstyle-args=\"[, , ...]\""], - "env_var": "PANTS_PYDOCSTYLE_ARGS", + "display_args": [ + "--nodejs-corepack-env-vars=\"[, , ...]\"" + ], + "env_var": "PANTS_NODEJS_COREPACK_ENV_VARS", "fromfile": false, - "help": "Arguments to pass directly to Pydocstyle, e.g. `--pydocstyle-args='--select=D101,D102'`.", + "help": "Environment variables to set for `corepack` invocations.\n\nEntries are either strings in the form `ENV_VAR=value` to set an explicit value; or just `ENV_VAR` to copy the value from Pants's own environment.\n\nReview https://github.com/nodejs/corepack#environment-variables for available variables.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pydocstyle-args"], - "target_field_name": null, + "scoped_cmd_line_args": ["--nodejs-corepack-env-vars"], + "target_field_name": "nodejs_corepack_env_vars", "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "unscoped_cmd_line_args": ["--corepack-env-vars"], "value_history": { "ranked_values": [ { @@ -14822,55 +14881,62 @@ ] } }, - "PANTS_PYDOCSTYLE_CONFIG": { + "PANTS_NODEJS_EXECUTABLE_SEARCH_PATHS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pydocstyle-config=", - "config_key": "config", - "default": null, + "comma_separated_display_args": "--nodejs-executable-search-paths=\"[, , ...]\"", + "config_key": "executable_search_paths", + "default": [""], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pydocstyle-config="], - "env_var": "PANTS_PYDOCSTYLE_CONFIG", + "display_args": [ + "--nodejs-executable-search-paths=\"[, , ...]\"" + ], + "env_var": "PANTS_NODEJS_EXECUTABLE_SEARCH_PATHS", "fromfile": false, - "help": "Path to a Pydocstyle config file (http://www.pydocstyle.org/en/stable/usage.html#configuration-files).", + "help": "The PATH value that will be used to find any tools required to run nodejs processes. The special string `\"\"` will expand to the contents of the PATH env var.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pydocstyle-config"], - "target_field_name": null, - "typ": "file_option", - "unscoped_cmd_line_args": ["--config"], + "scoped_cmd_line_args": ["--nodejs-executable-search-paths"], + "target_field_name": "nodejs_executable_search_paths", + "typ": "list", + "unscoped_cmd_line_args": ["--executable-search-paths"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [""] } ] } }, - "PANTS_PYDOCSTYLE_CONFIG_DISCOVERY": { + "PANTS_NODEJS_INFER_IMPORTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]pydocstyle-config-discovery", - "config_key": "config_discovery", + "comma_separated_display_args": "--[no-]nodejs-infer-imports", + "config_key": "imports", "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]pydocstyle-config-discovery"], - "env_var": "PANTS_PYDOCSTYLE_CONFIG_DISCOVERY", + "display_args": ["--[no-]nodejs-infer-imports"], + "env_var": "PANTS_NODEJS_INFER_IMPORTS", "fromfile": false, - "help": "If true, Pants will include any relevant config files during runs (`setup.cfg`, `tox.ini`, `.pydocstyle`, `.pydocstyle.ini`, `.pydocstylerc`, `.pydocstylerc.ini`, and `pyproject.toml`) searching for the configuration file in this particular order.\n\nPlease note that even though `pydocstyle` keeps looking for a configuration file up the directory tree until one is found, Pants will only search for the config files in the repository root (from where you would normally run the `` command).\n\nUse `[pydocstyle].config` instead if your config is in a non-standard location.", + "help": "Infer a target's imported dependencies by parsing import statements from sources.\n\nTo ignore a false positive, you can either put `// pants: no-infer-dep` on the line of the import or put `!{bad_address}` in the `dependencies` field of your target.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--pydocstyle-config-discovery", - "--no-pydocstyle-config-discovery" + "--nodejs-infer-imports", + "--no-nodejs-infer-imports" ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], + "unscoped_cmd_line_args": ["--imports", "--no-imports"], "value_history": { "ranked_values": [ { @@ -14886,24 +14952,30 @@ ] } }, - "PANTS_PYDOCSTYLE_CONSOLE_SCRIPT": { + "PANTS_NODEJS_INFER_PACKAGE_JSON_ENTRY_POINTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pydocstyle-console-script=", - "config_key": "console_script", - "default": "pydocstyle", + "comma_separated_display_args": "--[no-]nodejs-infer-package-json-entry-points", + "config_key": "package_json_entry_points", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pydocstyle-console-script="], - "env_var": "PANTS_PYDOCSTYLE_CONSOLE_SCRIPT", + "display_args": ["--[no-]nodejs-infer-package-json-entry-points"], + "env_var": "PANTS_NODEJS_INFER_PACKAGE_JSON_ENTRY_POINTS", "fromfile": false, - "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", + "help": "Infer a `package_json`'s dependencies by parsing entry point statements from the package.json file.\n\nTo ignore a false positive, you can put `!{bad_address}` in the `dependencies` field of the `package_json` target.\n\nSee https://nodejs.org/api/packages.html#package-entry-points and\n https://docs.npmjs.com/cli/v9/configuring-npm/package-json#browser.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pydocstyle-console-script"], + "scoped_cmd_line_args": [ + "--nodejs-infer-package-json-entry-points", + "--no-nodejs-infer-package-json-entry-points" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--console-script"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--package-json-entry-points", + "--no-package-json-entry-points" + ], "value_history": { "ranked_values": [ { @@ -14914,283 +14986,325 @@ { "details": null, "rank": "HARDCODED", - "value": "pydocstyle" + "value": true } ] } }, - "PANTS_PYDOCSTYLE_ENTRY_POINT": { + "PANTS_NODEJS_KNOWN_VERSIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pydocstyle-entry-point=", - "config_key": "entry_point", - "default": null, + "comma_separated_display_args": "--nodejs-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", + "default": [ + "v16.15.0|macos_arm64|ad8d8fc5330ef47788f509c2af398c8060bb59acbe914070d0df684cd2d8d39b|29126014", + "v16.15.0|macos_x86_64|a6bb12bbf979d32137598e49d56d61bcddf8a8596c3442b44a9b3ace58dd4de8|30561503", + "v16.15.0|linux_arm64|b4080b86562c5397f32da7a0723b95b1df523cab4c757688a184e3f733a7df56|21403276", + "v16.15.0|linux_x86_64|ebdf4dc9d992d19631f0931cca2fc33c6d0d382543639bc6560d31d5060a8372|22031988" + ], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pydocstyle-entry-point="], - "env_var": "PANTS_PYDOCSTYLE_ENTRY_POINT", + "display_args": ["--nodejs-known-versions=\"['', '', ...]\""], + "env_var": "PANTS_NODEJS_KNOWN_VERSIONS", "fromfile": false, - "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pydocstyle-entry-point"], + "scoped_cmd_line_args": ["--nodejs-known-versions"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--entry-point"], + "typ": "list", + "unscoped_cmd_line_args": ["--known-versions"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [ + "v16.15.0|macos_arm64|ad8d8fc5330ef47788f509c2af398c8060bb59acbe914070d0df684cd2d8d39b|29126014", + "v16.15.0|macos_x86_64|a6bb12bbf979d32137598e49d56d61bcddf8a8596c3442b44a9b3ace58dd4de8|30561503", + "v16.15.0|linux_arm64|b4080b86562c5397f32da7a0723b95b1df523cab4c757688a184e3f733a7df56|21403276", + "v16.15.0|linux_x86_64|ebdf4dc9d992d19631f0931cca2fc33c6d0d382543639bc6560d31d5060a8372|22031988" + ] } ] } }, - "PANTS_PYDOCSTYLE_INSTALL_FROM_RESOLVE": { + "PANTS_NODEJS_PACKAGE_MANAGER": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pydocstyle-install-from-resolve=", - "config_key": "install_from_resolve", - "default": null, + "comma_separated_display_args": "--nodejs-package-manager=", + "config_key": "package_manager", + "default": "npm", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pydocstyle-install-from-resolve="], - "env_var": "PANTS_PYDOCSTYLE_INSTALL_FROM_RESOLVE", + "display_args": ["--nodejs-package-manager="], + "env_var": "PANTS_NODEJS_PACKAGE_MANAGER", "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `pydocstyle` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "help": "Default Node.js package manager to use.\n\nYou can either rely on this default together with the [nodejs].package_managers option, or specify the `package.json#packageManager` tool and version in the package.json of your project.\n\nSpecifying conflicting package manager versions within a multi-package workspace is an error.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pydocstyle-install-from-resolve"], + "scoped_cmd_line_args": ["--nodejs-package-manager"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--install-from-resolve"], + "unscoped_cmd_line_args": ["--package-manager"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "npm" } ] } }, - "PANTS_PYDOCSTYLE_INTERPRETER_CONSTRAINTS": { + "PANTS_NODEJS_PACKAGE_MANAGERS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pydocstyle-interpreter-constraints=\"['', '', ...]\"", - "config_key": "interpreter_constraints", - "default": ["CPython>=3.7,<4"], + "comma_separated_display_args": "--nodejs-package-managers=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "package_managers", + "default": { + "npm": "8.5.5" + }, "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--pydocstyle-interpreter-constraints=\"['', '', ...]\"" + "--nodejs-package-managers=\"{'key1': val1, 'key2': val2, ...}\"" ], - "env_var": "PANTS_PYDOCSTYLE_INTERPRETER_CONSTRAINTS", + "env_var": "PANTS_NODEJS_PACKAGE_MANAGERS", "fromfile": false, - "help": "Python interpreter constraints for this tool.", + "help": "A mapping of package manager versions to semver releases.\n\nMany organizations only need a single version of a package manager, which is a good default and often the simplest thing to do.\n\nThe version download is managed by Corepack. This mapping corresponds to the https://github.com/nodejs/corepack#known-good-releases setting, using the `--activate` flag.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pydocstyle-interpreter-constraints"], + "scoped_cmd_line_args": ["--nodejs-package-managers"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--interpreter-constraints"], + "typ": "dict", + "unscoped_cmd_line_args": ["--package-managers"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": [] + "value": {} }, { "details": "", "rank": "HARDCODED", - "value": ["CPython>=3.7,<4"] + "value": { + "npm": "8.5.5" + } } ] } }, - "PANTS_PYDOCSTYLE_REQUIREMENTS": { + "PANTS_NODEJS_RESOLVES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pydocstyle-requirements=\"['', '', ...]\"", - "config_key": "requirements", - "default": [], + "comma_separated_display_args": "--nodejs-resolves=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "resolves", + "default": {}, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pydocstyle-requirements=\"['', '', ...]\""], - "env_var": "PANTS_PYDOCSTYLE_REQUIREMENTS", + "display_args": [ + "--nodejs-resolves=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_NODEJS_RESOLVES", "fromfile": false, - "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "help": "A mapping of names to lockfile paths used in your project.\n\nSpecifying a resolve name is optional. If unspecified, the default resolve name is calculated by taking the path from the source root to the directory containing the lockfile and replacing '/' with '.' in that path.\n\nExample: An npm lockfile located at `src/js/package/package-lock.json' will result in a resolve named `js.package`, assuming src/ is a source root.\n\nRun `pants generate-lockfiles` to generate the lockfile(s).", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pydocstyle-requirements"], + "scoped_cmd_line_args": ["--nodejs-resolves"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--requirements"], + "typ": "dict", + "unscoped_cmd_line_args": ["--resolves"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": [] + "value": {} }, { "details": "", "rank": "HARDCODED", - "value": [] + "value": {} } ] } }, - "PANTS_PYDOCSTYLE_SKIP": { + "PANTS_NODEJS_SEARCH_PATH": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]pydocstyle-skip", - "config_key": "skip", - "default": false, + "comma_separated_display_args": "--nodejs-search-path=\"[, , ...]\"", + "config_key": "search_path", + "default": [""], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]pydocstyle-skip"], - "env_var": "PANTS_PYDOCSTYLE_SKIP", + "display_args": [ + "--nodejs-search-path=\"[, , ...]\"" + ], + "env_var": "PANTS_NODEJS_SEARCH_PATH", "fromfile": false, - "help": "If true, don't use Pydocstyle when running `scie-pants-linux-x86_64 lint`.", + "help": "A list of paths to search for Node.js distributions.\n\nThis option is only used if a templated url download specified via [nodejs].known_versions does not contain a version matching the configured [nodejs].version range.\n\nYou can specify absolute paths to binaries and/or to directories containing binaries. The order of entries does not matter.\n\nThe following special strings are supported:\n\nFor all runtime environment types:\n\n* ``, the contents of the PATH env var\n\nWhen the environment is a `local_environment` target:\n\n* ``, all Node.js versions currently configured by ASDF `(asdf shell, ${HOME}/.tool-versions)`, with a fallback to all installed versions\n* ``, the ASDF binaries with the version in `BUILD_ROOT/.tool-versions`\n* ``, all NodeJS versions under $NVM_DIR/versions/node\n* ``, the nvm installation with the version in BUILD_ROOT/.nvmrc\nNote that the version in the .nvmrc file has to be on the form \"vX.Y.Z\".", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pydocstyle-skip", "--no-pydocstyle-skip"], - "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "scoped_cmd_line_args": ["--nodejs-search-path"], + "target_field_name": "nodejs_search_path", + "typ": "list", + "unscoped_cmd_line_args": ["--search-path"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": [""] } ] } }, - "PANTS_PYLINT_ARGS": { + "PANTS_NODEJS_TEST_COVERAGE_OUTPUT_DIR": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pylint-args=\"[, , ...]\"", - "config_key": "args", - "default": [], + "comma_separated_display_args": "--nodejs-test-coverage-output-dir=", + "config_key": "coverage_output_dir", + "default": "{distdir}/coverage/js/{target_spec}", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pylint-args=\"[, , ...]\""], - "env_var": "PANTS_PYLINT_ARGS", + "display_args": ["--nodejs-test-coverage-output-dir="], + "env_var": "PANTS_NODEJS_TEST_COVERAGE_OUTPUT_DIR", "fromfile": false, - "help": "Arguments to pass directly to Pylint, e.g. `--pylint-args='--ignore=foo.py,bar.py --disable=C0330,W0311'`.", + "help": "Path to write the NodeJS coverage reports to. Must be relative to the build root.\n\nReplacements:\n\n- `{distdir}` is replaced with the Pants `distdir`.\n\n- `{target_spec}` is replaced with the address of the applicable `javascript_test` target with `/` characters replaced with dots (`.`). Additional batch information is included in `target_spec`, when batching is used.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pylint-args"], + "scoped_cmd_line_args": ["--nodejs-test-coverage-output-dir"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "typ": "str", + "unscoped_cmd_line_args": ["--coverage-output-dir"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": "{distdir}/coverage/js/{target_spec}" } ] } }, - "PANTS_PYLINT_CONFIG": { + "PANTS_NODEJS_TEST_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pylint-config=", - "config_key": "config", - "default": null, + "comma_separated_display_args": "--[no-]nodejs-test-skip", + "config_key": "skip", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pylint-config="], - "env_var": "PANTS_PYLINT_CONFIG", + "display_args": ["--[no-]nodejs-test-skip"], + "env_var": "PANTS_NODEJS_TEST_SKIP", "fromfile": false, - "help": "Path to a config file understood by Pylint (http://pylint.pycqa.org/en/latest/user_guide/run.html#command-line-options).\n\nSetting this option will disable `[pylint].config_discovery`. Use this option if the config is located in a non-standard location.", + "help": "If true, don't use Node.js tests when running `pants test`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pylint-config"], + "scoped_cmd_line_args": ["--nodejs-test-skip", "--no-nodejs-test-skip"], "target_field_name": null, - "typ": "file_option", - "unscoped_cmd_line_args": ["--config"], + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false } ] } }, - "PANTS_PYLINT_CONFIG_DISCOVERY": { + "PANTS_NODEJS_URL_PLATFORM_MAPPING": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]pylint-config-discovery", - "config_key": "config_discovery", - "default": true, + "comma_separated_display_args": "--nodejs-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "url_platform_mapping", + "default": { + "linux_arm64": "linux-arm64", + "linux_x86_64": "linux-x64", + "macos_arm64": "darwin-arm64", + "macos_x86_64": "darwin-x64" + }, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]pylint-config-discovery"], - "env_var": "PANTS_PYLINT_CONFIG_DISCOVERY", + "display_args": [ + "--nodejs-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_NODEJS_URL_PLATFORM_MAPPING", "fromfile": false, - "help": "If true, Pants will include any relevant config files during runs (`.pylintrc`, `pylintrc`, `pyproject.toml`, and `setup.cfg`).\n\nUse `[pylint].config` instead if your config is in a non-standard location.", + "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--pylint-config-discovery", - "--no-pylint-config-discovery" - ], + "scoped_cmd_line_args": ["--nodejs-url-platform-mapping"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], + "typ": "dict", + "unscoped_cmd_line_args": ["--url-platform-mapping"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": {} }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": true + "value": { + "linux_arm64": "linux-arm64", + "linux_x86_64": "linux-x64", + "macos_arm64": "darwin-arm64", + "macos_x86_64": "darwin-x64" + } } ] } }, - "PANTS_PYLINT_CONSOLE_SCRIPT": { + "PANTS_NODEJS_URL_TEMPLATE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pylint-console-script=", - "config_key": "console_script", - "default": "pylint", + "comma_separated_display_args": "--nodejs-url-template=", + "config_key": "url_template", + "default": "https://nodejs.org/dist/{version}/node-{version}-{platform}.tar", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pylint-console-script="], - "env_var": "PANTS_PYLINT_CONSOLE_SCRIPT", + "display_args": ["--nodejs-url-template="], + "env_var": "PANTS_NODEJS_URL_TEMPLATE", "fromfile": false, - "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", + "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pylint-console-script"], + "scoped_cmd_line_args": ["--nodejs-url-template"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--console-script"], + "unscoped_cmd_line_args": ["--url-template"], "value_history": { "ranked_values": [ { @@ -15201,85 +15315,64 @@ { "details": null, "rank": "HARDCODED", - "value": "pylint" + "value": "https://nodejs.org/dist/{version}/node-{version}-{platform}.tar" } ] } }, - "PANTS_PYLINT_ENTRY_POINT": { + "PANTS_NODEJS_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pylint-entry-point=", - "config_key": "entry_point", - "default": null, + "comma_separated_display_args": "--nodejs-version=", + "config_key": "version", + "default": "v16.15.0", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pylint-entry-point="], - "env_var": "PANTS_PYLINT_ENTRY_POINT", + "display_args": ["--nodejs-version="], + "env_var": "PANTS_NODEJS_VERSION", "fromfile": false, - "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", + "help": "Use this version of nodejs.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pylint-entry-point"], + "scoped_cmd_line_args": ["--nodejs-version"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--entry-point"], + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "v16.15.0" } ] } }, - "PANTS_PYLINT_INSTALL_FROM_RESOLVE": { + "PANTS_OPENAPI_GENERATOR_ARTIFACTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pylint-install-from-resolve=", - "config_key": "install_from_resolve", - "default": null, + "comma_separated_display_args": "--openapi-generator-artifacts=\"['', '', ...]\"", + "config_key": "artifacts", + "default": ["org.openapitools:openapi-generator-cli:{version}"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pylint-install-from-resolve="], - "env_var": "PANTS_PYLINT_INSTALL_FROM_RESOLVE", - "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `pylint` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--pylint-install-from-resolve"], - "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--install-from-resolve"], - "value_history": { - "ranked_values": [ - { - "details": null, - "rank": "NONE", - "value": null - } - ] - } - }, - "PANTS_PYLINT_REQUIREMENTS": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--pylint-requirements=\"['', '', ...]\"", - "config_key": "requirements", - "default": [], - "deprecated_message": null, - "deprecation_active": false, - "display_args": ["--pylint-requirements=\"['', '', ...]\""], - "env_var": "PANTS_PYLINT_REQUIREMENTS", + "display_args": [ + "--openapi-generator-artifacts=\"['', '', ...]\"" + ], + "env_var": "PANTS_OPENAPI_GENERATOR_ARTIFACTS", "fromfile": false, - "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "help": "Artifact requirements for this tool using specified as either the address of a `jvm_artifact` target or, alternatively, as a colon-separated Maven coordinates (e.g., `group:name:version`). For Maven coordinates, the string `{version}` version will be substituted with the value of the `[openapi-generator].version` option.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pylint-requirements"], + "scoped_cmd_line_args": ["--openapi-generator-artifacts"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--requirements"], + "unscoped_cmd_line_args": ["--artifacts"], "value_history": { "ranked_values": [ { @@ -15290,64 +15383,31 @@ { "details": "", "rank": "HARDCODED", - "value": [] - } - ] - } - }, - "PANTS_PYLINT_SKIP": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]pylint-skip", - "config_key": "skip", - "default": false, - "deprecated_message": null, - "deprecation_active": false, - "display_args": ["--[no-]pylint-skip"], - "env_var": "PANTS_PYLINT_SKIP", - "fromfile": false, - "help": "If true, don't use Pylint when running `scie-pants-linux-x86_64 lint`.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--pylint-skip", "--no-pylint-skip"], - "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], - "value_history": { - "ranked_values": [ - { - "details": null, - "rank": "NONE", - "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": false + "value": ["org.openapitools:openapi-generator-cli:{version}"] } ] } }, - "PANTS_PYLINT_SOURCE_PLUGINS": { + "PANTS_OPENAPI_GENERATOR_JVM_OPTIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pylint-source-plugins=\"[, , ...]\"", - "config_key": "source_plugins", + "comma_separated_display_args": "--openapi-generator-jvm-options=\"['', '', ...]\"", + "config_key": "jvm_options", "default": [], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--pylint-source-plugins=\"[, , ...]\"" + "--openapi-generator-jvm-options=\"['', '', ...]\"" ], - "env_var": "PANTS_PYLINT_SOURCE_PLUGINS", + "env_var": "PANTS_OPENAPI_GENERATOR_JVM_OPTIONS", "fromfile": false, - "help": "An optional list of `python_sources` target addresses to load first-party plugins.\n\nYou must set the plugin's parent directory as a source root. For example, if your plugin is at `build-support/pylint/custom_plugin.py`, add `'build-support/pylint'` to `[source].root_patterns` in `pants.toml`. This is necessary for Pants to know how to tell Pylint to discover your plugin. See https://www.pantsbuild.org/v2.18/docs/source-roots\n\nYou must also set `load-plugins=$module_name` in your Pylint config file.\n\nWhile your plugin's code can depend on other first-party code and third-party requirements, all first-party dependencies of the plugin must live in the same directory or a subdirectory.\n\nTo instead load third-party plugins, add them to a custom resolve alongside pylint itself, as described in https://www.pantsbuild.org/v2.18/docs/python-lockfiles#lockfiles-for-tools.", + "help": "List of JVM options to pass to `openapi-generator` JVM processes.\n\nOptions set here will be added to those set in `[jvm].global_options`. Please check the documentation for the `jvm` subsystem to see what values are accepted here.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pylint-source-plugins"], + "scoped_cmd_line_args": ["--openapi-generator-jvm-options"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--source-plugins"], + "unscoped_cmd_line_args": ["--jvm-options"], "value_history": { "ranked_values": [ { @@ -15363,57 +15423,57 @@ ] } }, - "PANTS_PYOXIDIZER_ARGS": { + "PANTS_OPENAPI_GENERATOR_LOCKFILE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pyoxidizer-args=\"[, , ...]\"", - "config_key": "args", - "default": [], + "comma_separated_display_args": "--openapi-generator-lockfile=", + "config_key": "lockfile", + "default": "", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pyoxidizer-args=\"[, , ...]\""], - "env_var": "PANTS_PYOXIDIZER_ARGS", + "display_args": ["--openapi-generator-lockfile="], + "env_var": "PANTS_OPENAPI_GENERATOR_LOCKFILE", "fromfile": false, - "help": "Arguments to pass directly to PyOxidizer, e.g. `--pyoxidizer-args='--release'`.", + "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/openapi/subsystems/openapi_generator.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=openapi-generator`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pyoxidizer-args"], + "scoped_cmd_line_args": ["--openapi-generator-lockfile"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "typ": "str", + "unscoped_cmd_line_args": ["--lockfile"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": "" } ] } }, - "PANTS_PYOXIDIZER_CONSOLE_SCRIPT": { + "PANTS_OPENAPI_GENERATOR_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pyoxidizer-console-script=", - "config_key": "console_script", - "default": "pyoxidizer", + "comma_separated_display_args": "--openapi-generator-version=", + "config_key": "version", + "default": "5.4.0", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pyoxidizer-console-script="], - "env_var": "PANTS_PYOXIDIZER_CONSOLE_SCRIPT", + "display_args": ["--openapi-generator-version="], + "env_var": "PANTS_OPENAPI_GENERATOR_VERSION", "fromfile": false, - "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", + "help": "Version string for the tool. This is available for substitution in the `[openapi-generator].artifacts` option by including the string `{version}`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pyoxidizer-console-script"], + "scoped_cmd_line_args": ["--openapi-generator-version"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--console-script"], + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { @@ -15424,87 +15484,100 @@ { "details": null, "rank": "HARDCODED", - "value": "pyoxidizer" + "value": "5.4.0" } ] } }, - "PANTS_PYOXIDIZER_ENTRY_POINT": { + "PANTS_OPENAPI_TAILOR_TARGETS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pyoxidizer-entry-point=", - "config_key": "entry_point", - "default": null, + "comma_separated_display_args": "--[no-]openapi-tailor-targets", + "config_key": "tailor_targets", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pyoxidizer-entry-point="], - "env_var": "PANTS_PYOXIDIZER_ENTRY_POINT", + "display_args": ["--[no-]openapi-tailor-targets"], + "env_var": "PANTS_OPENAPI_TAILOR_TARGETS", "fromfile": false, - "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", + "help": "If true, add `openapi_documents` and `openapi_sources` targets with the `tailor` goal.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pyoxidizer-entry-point"], + "scoped_cmd_line_args": [ + "--openapi-tailor-targets", + "--no-openapi-tailor-targets" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--entry-point"], + "typ": "bool", + "unscoped_cmd_line_args": ["--tailor-targets", "--no-tailor-targets"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true } ] } }, - "PANTS_PYOXIDIZER_INSTALL_FROM_RESOLVE": { + "PANTS_PANTSD": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pyoxidizer-install-from-resolve=", - "config_key": "install_from_resolve", - "default": null, + "comma_separated_display_args": "--[no-]pantsd", + "config_key": "pantsd", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pyoxidizer-install-from-resolve="], - "env_var": "PANTS_PYOXIDIZER_INSTALL_FROM_RESOLVE", + "display_args": ["--[no-]pantsd"], + "env_var": "PANTS_PANTSD", "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `pyoxidizer` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "help": "Enables use of the Pants daemon (pantsd). pantsd can significantly improve runtime performance by lowering per-run startup cost, and by memoizing filesystem operations and rule execution.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pyoxidizer-install-from-resolve"], + "scoped_cmd_line_args": ["--pantsd", "--no-pantsd"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--install-from-resolve"], + "typ": "bool", + "unscoped_cmd_line_args": ["--pantsd", "--no-pantsd"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true } ] } }, - "PANTS_PYOXIDIZER_INTERPRETER_CONSTRAINTS": { + "PANTS_PANTSD_INVALIDATION_GLOBS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pyoxidizer-interpreter-constraints=\"['', '', ...]\"", - "config_key": "interpreter_constraints", - "default": ["CPython>=3.8,<4"], + "comma_separated_display_args": "--pantsd-invalidation-globs=\"['', '', ...]\"", + "config_key": "pantsd_invalidation_globs", + "default": [], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--pyoxidizer-interpreter-constraints=\"['', '', ...]\"" + "--pantsd-invalidation-globs=\"['', '', ...]\"" ], - "env_var": "PANTS_PYOXIDIZER_INTERPRETER_CONSTRAINTS", + "env_var": "PANTS_PANTSD_INVALIDATION_GLOBS", "fromfile": false, - "help": "Python interpreter constraints for this tool.", + "help": "Filesystem events matching any of these globs will trigger a daemon restart. Pants's own code, plugins, and `--pants-config-files` are inherently invalidated.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pyoxidizer-interpreter-constraints"], + "scoped_cmd_line_args": ["--pantsd-invalidation-globs"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--interpreter-constraints"], + "unscoped_cmd_line_args": ["--pantsd-invalidation-globs"], "value_history": { "ranked_values": [ { @@ -15515,129 +15588,128 @@ { "details": "", "rank": "HARDCODED", - "value": ["CPython>=3.8,<4"] + "value": [] } ] } }, - "PANTS_PYOXIDIZER_REQUIREMENTS": { + "PANTS_PANTSD_MAX_MEMORY_USAGE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pyoxidizer-requirements=\"['', '', ...]\"", - "config_key": "requirements", - "default": [], + "comma_separated_display_args": "--pantsd-max-memory-usage=", + "config_key": "pantsd_max_memory_usage", + "default": "4GiB", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pyoxidizer-requirements=\"['', '', ...]\""], - "env_var": "PANTS_PYOXIDIZER_REQUIREMENTS", + "display_args": ["--pantsd-max-memory-usage="], + "env_var": "PANTS_PANTSD_MAX_MEMORY_USAGE", "fromfile": false, - "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "help": "The maximum memory usage of the pantsd process.\n\nWhen the maximum memory is exceeded, the daemon will restart gracefully, although all previous in-memory caching will be lost. Setting too low means that you may miss out on some caching, whereas setting too high may over-consume resources and may result in the operating system killing Pantsd due to memory overconsumption (e.g. via the OOM killer).\n\nYou can suffix with `GiB`, `MiB`, `KiB`, or `B` to indicate the unit, e.g. `2GiB` or `2.12GiB`. A bare number will be in bytes.\n\nThere is at most one pantsd process per workspace.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pyoxidizer-requirements"], + "scoped_cmd_line_args": ["--pantsd-max-memory-usage"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--requirements"], + "typ": "memory_size", + "unscoped_cmd_line_args": ["--pantsd-max-memory-usage"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": 4294967296 } ] } }, - "PANTS_PYTEST_ARGS": { + "PANTS_PANTSD_PAILGUN_PORT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pytest-args=\"[, , ...]\", ... -- [ [ [...]]]", - "config_key": "args", - "default": [], + "comma_separated_display_args": "--pantsd-pailgun-port=", + "config_key": "pantsd_pailgun_port", + "default": 0, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--pytest-args=\"[, , ...]\"", - "... -- [ [ [...]]]" - ], - "env_var": "PANTS_PYTEST_ARGS", + "display_args": ["--pantsd-pailgun-port="], + "env_var": "PANTS_PANTSD_PAILGUN_PORT", "fromfile": false, - "help": "Arguments to pass directly to Pytest, e.g. `--pytest-args='-k test_foo --quiet'`.", + "help": "The port to bind the Pants nailgun server to. Defaults to a random port.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pytest-args"], + "scoped_cmd_line_args": ["--pantsd-pailgun-port"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "typ": "int", + "unscoped_cmd_line_args": ["--pantsd-pailgun-port"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": 0 } ] } }, - "PANTS_PYTEST_CONFIG": { + "PANTS_PANTSD_TIMEOUT_WHEN_MULTIPLE_INVOCATIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pytest-config=", - "config_key": "config", - "default": null, + "comma_separated_display_args": "--pantsd-timeout-when-multiple-invocations=", + "config_key": "pantsd_timeout_when_multiple_invocations", + "default": 60.0, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pytest-config="], - "env_var": "PANTS_PYTEST_CONFIG", + "display_args": ["--pantsd-timeout-when-multiple-invocations="], + "env_var": "PANTS_PANTSD_TIMEOUT_WHEN_MULTIPLE_INVOCATIONS", "fromfile": false, - "help": "Path to a config file understood by Pytest (https://docs.pytest.org/en/latest/reference/customize.html#configuration-file-formats). Setting this option will disable `[pytest].config_discovery`. Use this option if the config is located in a non-standard location.", + "help": "The maximum amount of time to wait for the invocation to start until raising a timeout exception. Because pantsd currently does not support parallel runs, any prior running Pants command must be finished for the current one to start. To never timeout, use the value -1.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pytest-config"], + "scoped_cmd_line_args": ["--pantsd-timeout-when-multiple-invocations"], "target_field_name": null, - "typ": "file_option", - "unscoped_cmd_line_args": ["--config"], + "typ": "float", + "unscoped_cmd_line_args": ["--pantsd-timeout-when-multiple-invocations"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": 60.0 } ] } }, - "PANTS_PYTEST_CONFIG_DISCOVERY": { + "PANTS_PANTSRC": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]pytest-config-discovery", - "config_key": "config_discovery", + "comma_separated_display_args": "--[no-]pantsrc", + "config_key": "pantsrc", "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]pytest-config-discovery"], - "env_var": "PANTS_PYTEST_CONFIG_DISCOVERY", + "display_args": ["--[no-]pantsrc"], + "env_var": "PANTS_PANTSRC", "fromfile": false, - "help": "If true, Pants will include all relevant Pytest config files (e.g. `pytest.ini`) during runs. See https://docs.pytest.org/en/stable/customize.html#finding-the-rootdir for where config files should be located for Pytest to discover them.\n\nUse `[pytest].config` instead if your config is in a non-standard location.", + "help": "Use pantsrc files located at the paths specified in the global option `pantsrc_files`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--pytest-config-discovery", - "--no-pytest-config-discovery" - ], + "scoped_cmd_line_args": ["--pantsrc", "--no-pantsrc"], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], + "unscoped_cmd_line_args": ["--pantsrc", "--no-pantsrc"], "value_history": { "ranked_values": [ { @@ -15653,57 +15725,57 @@ ] } }, - "PANTS_PYTEST_CONSOLE_SCRIPT": { + "PANTS_PANTSRC_FILES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pytest-console-script=", - "config_key": "console_script", - "default": "pytest", + "comma_separated_display_args": "--pantsrc-files=\"[, , ...]\"", + "config_key": "pantsrc_files", + "default": ["/etc/pantsrc", "~/.pants.rc", ".pants.rc"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pytest-console-script="], - "env_var": "PANTS_PYTEST_CONSOLE_SCRIPT", + "display_args": ["--pantsrc-files=\"[, , ...]\""], + "env_var": "PANTS_PANTSRC_FILES", "fromfile": false, - "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", + "help": "Override config with values from these files, using syntax matching that of `--pants-config-files`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pytest-console-script"], + "scoped_cmd_line_args": ["--pantsrc-files"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--console-script"], + "typ": "list", + "unscoped_cmd_line_args": ["--pantsrc-files"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "pytest" + "value": ["/etc/pantsrc", "~/.pants.rc", ".pants.rc"] } ] } }, - "PANTS_PYTEST_ENTRY_POINT": { + "PANTS_PATHS_FROM": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pytest-entry-point=", - "config_key": "entry_point", + "comma_separated_display_args": "--paths-from=", + "config_key": "from", "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pytest-entry-point="], - "env_var": "PANTS_PYTEST_ENTRY_POINT", + "display_args": ["--paths-from="], + "env_var": "PANTS_PATHS_FROM", "fromfile": false, - "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", + "help": "The path starting address", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pytest-entry-point"], + "scoped_cmd_line_args": ["--paths-from"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--entry-point"], + "unscoped_cmd_line_args": ["--from"], "value_history": { "ranked_values": [ { @@ -15714,24 +15786,24 @@ ] } }, - "PANTS_PYTEST_EXECUTION_SLOT_VAR": { + "PANTS_PATHS_OUTPUT_FILE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pytest-execution-slot-var=", - "config_key": "execution_slot_var", + "comma_separated_display_args": "--paths-output-file=", + "config_key": "output_file", "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pytest-execution-slot-var="], - "env_var": "PANTS_PYTEST_EXECUTION_SLOT_VAR", + "display_args": ["--paths-output-file="], + "env_var": "PANTS_PATHS_OUTPUT_FILE", "fromfile": false, - "help": "If a non-empty string, the process execution slot id (an integer) will be exposed to tests under this environment variable name.", + "help": "Output the goal's stdout to this file. If unspecified, outputs to stdout.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pytest-execution-slot-var"], + "scoped_cmd_line_args": ["--paths-output-file"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--execution-slot-var"], + "unscoped_cmd_line_args": ["--output-file"], "value_history": { "ranked_values": [ { @@ -15742,24 +15814,24 @@ ] } }, - "PANTS_PYTEST_INSTALL_FROM_RESOLVE": { + "PANTS_PATHS_TO": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pytest-install-from-resolve=", - "config_key": "install_from_resolve", + "comma_separated_display_args": "--paths-to=", + "config_key": "to", "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pytest-install-from-resolve="], - "env_var": "PANTS_PYTEST_INSTALL_FROM_RESOLVE", + "display_args": ["--paths-to="], + "env_var": "PANTS_PATHS_TO", "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `pytest` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "help": "The path end address", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pytest-install-from-resolve"], + "scoped_cmd_line_args": ["--paths-to"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--install-from-resolve"], + "unscoped_cmd_line_args": ["--to"], "value_history": { "ranked_values": [ { @@ -15770,24 +15842,27 @@ ] } }, - "PANTS_PYTEST_JUNIT_FAMILY": { + "PANTS_PEEK_EXCLUDE_DEFAULTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pytest-junit-family=", - "config_key": "junit_family", - "default": "xunit2", + "comma_separated_display_args": "--[no-]peek-exclude-defaults", + "config_key": "exclude_defaults", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pytest-junit-family="], - "env_var": "PANTS_PYTEST_JUNIT_FAMILY", + "display_args": ["--[no-]peek-exclude-defaults"], + "env_var": "PANTS_PEEK_EXCLUDE_DEFAULTS", "fromfile": false, - "help": "The format of generated junit XML files. See https://docs.pytest.org/en/latest/reference.html#confval-junit_family.", + "help": "Whether to leave off values that match the target-defined default values.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pytest-junit-family"], + "scoped_cmd_line_args": [ + "--peek-exclude-defaults", + "--no-peek-exclude-defaults" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--junit-family"], + "typ": "bool", + "unscoped_cmd_line_args": ["--exclude-defaults", "--no-exclude-defaults"], "value_history": { "ranked_values": [ { @@ -15798,98 +15873,99 @@ { "details": null, "rank": "HARDCODED", - "value": "xunit2" + "value": false } ] } }, - "PANTS_PYTEST_REQUIREMENTS": { + "PANTS_PEEK_INCLUDE_DEP_RULES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pytest-requirements=\"['', '', ...]\"", - "config_key": "requirements", - "default": [], + "comma_separated_display_args": "--[no-]peek-include-dep-rules", + "config_key": "include_dep_rules", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pytest-requirements=\"['', '', ...]\""], - "env_var": "PANTS_PYTEST_REQUIREMENTS", + "display_args": ["--[no-]peek-include-dep-rules"], + "env_var": "PANTS_PEEK_INCLUDE_DEP_RULES", "fromfile": false, - "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "help": "Whether to include `_dependencies_rules`, `_dependents_rules` and `_applicable_dep_rules` that apply to the target and its dependencies.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pytest-requirements"], + "scoped_cmd_line_args": [ + "--peek-include-dep-rules", + "--no-peek-include-dep-rules" + ], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--requirements"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--include-dep-rules", + "--no-include-dep-rules" + ], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": false } ] } }, - "PANTS_PYTEST_SKIP": { + "PANTS_PEEK_OUTPUT_FILE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]pytest-skip", - "config_key": "skip", - "default": false, + "comma_separated_display_args": "--peek-output-file=", + "config_key": "output_file", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]pytest-skip"], - "env_var": "PANTS_PYTEST_SKIP", + "display_args": ["--peek-output-file="], + "env_var": "PANTS_PEEK_OUTPUT_FILE", "fromfile": false, - "help": "If true, don't use Pytest when running `scie-pants-linux-x86_64 test`.", + "help": "Output the goal's stdout to this file. If unspecified, outputs to stdout.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pytest-skip", "--no-pytest-skip"], + "scoped_cmd_line_args": ["--peek-output-file"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "typ": "str", + "unscoped_cmd_line_args": ["--output-file"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": false } ] } }, - "PANTS_PYTEST_XDIST_ENABLED": { + "PANTS_PEX_BINARY_DEFAULTS_EMIT_WARNINGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]pytest-xdist-enabled", - "config_key": "xdist_enabled", - "default": false, + "comma_separated_display_args": "--[no-]pex-binary-defaults-emit-warnings", + "config_key": "emit_warnings", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]pytest-xdist-enabled"], - "env_var": "PANTS_PYTEST_XDIST_ENABLED", + "display_args": ["--[no-]pex-binary-defaults-emit-warnings"], + "env_var": "PANTS_PEX_BINARY_DEFAULTS_EMIT_WARNINGS", "fromfile": false, - "help": "If true, Pants will use `pytest-xdist` (https://pytest-xdist.readthedocs.io/en/latest/) to parallelize tests within each `python_test` target.\n\nNOTE: Enabling `pytest-xdist` can cause high-level scoped fixtures (for example `session`) to execute more than once. See the `pytest-xdist` docs for more info: https://pypi.org/project/pytest-xdist/#making-session-scoped-fixtures-execute-only-once", + "help": "Whether built PEX binaries should emit PEX warnings at runtime by default.\n\nCan be overridden by specifying the `emit_warnings` parameter of individual `pex_binary` targets", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--pytest-xdist-enabled", - "--no-pytest-xdist-enabled" + "--pex-binary-defaults-emit-warnings", + "--no-pex-binary-defaults-emit-warnings" ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--xdist-enabled", "--no-xdist-enabled"], + "unscoped_cmd_line_args": ["--emit-warnings", "--no-emit-warnings"], "value_history": { "ranked_values": [ { @@ -15900,211 +15976,176 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": true } ] } }, - "PANTS_PYTHONPATH": { + "PANTS_PEX_BINARY_DEFAULTS_RESOLVE_LOCAL_PLATFORMS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pythonpath=\"['', '', ...]\"", - "config_key": "pythonpath", - "default": [], + "comma_separated_display_args": "--[no-]pex-binary-defaults-resolve-local-platforms", + "config_key": "resolve_local_platforms", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pythonpath=\"['', '', ...]\""], - "env_var": "PANTS_PYTHONPATH", + "display_args": ["--[no-]pex-binary-defaults-resolve-local-platforms"], + "env_var": "PANTS_PEX_BINARY_DEFAULTS_RESOLVE_LOCAL_PLATFORMS", "fromfile": false, - "help": "Add these directories to PYTHONPATH to search for plugins. This does not impact the PYTHONPATH used by Pants when running your Python code.", + "help": "For each of the `platforms` specified for a `pex_binary` target, attempt to find a local interpreter that matches.\n\nIf a matching interpreter is found, use the interpreter to resolve distributions and build any that are only available in source distribution form. If no matching interpreter is found (or if this option is `False`), resolve for the platform by accepting only pre-built binary distributions (wheels).", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pythonpath"], + "scoped_cmd_line_args": [ + "--pex-binary-defaults-resolve-local-platforms", + "--no-pex-binary-defaults-resolve-local-platforms" + ], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--pythonpath"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--resolve-local-platforms", + "--no-resolve-local-platforms" + ], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": false } ] } }, - "PANTS_PYTHON_BOOTSTRAP_INTERNAL_PYTHON_BUILD_STANDALONE_INFO": { + "PANTS_PEX_CLI_KNOWN_VERSIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--python-bootstrap-internal-python-build-standalone-info=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "internal_python_build_standalone_info", - "default": { - "linux_arm64": [ - "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.9.16+20230116-aarch64-unknown-linux-gnu-install_only.tar.gz", - "1ba520c0db431c84305677f56eb9a4254f5097430ed443e92fc8617f8fba973d", - 23873387 - ], - "linux_x86_64": [ - "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.9.16+20230116-x86_64-unknown-linux-gnu-install_only.tar.gz", - "7ba397787932393e65fc2fb9fcfabf54f2bb6751d5da2b45913cb25b2d493758", - 26129729 - ], - "macos_arm64": [ - "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.9.16+20230116-aarch64-apple-darwin-install_only.tar.gz", - "d732d212d42315ac27c6da3e0b69636737a8d72086c980daf844344c010cab80", - 17084463 - ], - "macos_x86_64": [ - "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.9.16+20230116-x86_64-apple-darwin-install_only.tar.gz", - "3948384af5e8d4ee7e5ccc648322b99c1c5cf4979954ed5e6b3382c69d6db71e", - 17059474 - ] - }, + "comma_separated_display_args": "--pex-cli-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", + "default": [ + "v2.1.137|macos_arm64|faad51a6a108fba9d40b2a10e82a2646fccbaf8c3d9be47818f4bffae02d94b8|4098329", + "v2.1.137|macos_x86_64|faad51a6a108fba9d40b2a10e82a2646fccbaf8c3d9be47818f4bffae02d94b8|4098329", + "v2.1.137|linux_x86_64|faad51a6a108fba9d40b2a10e82a2646fccbaf8c3d9be47818f4bffae02d94b8|4098329", + "v2.1.137|linux_arm64|faad51a6a108fba9d40b2a10e82a2646fccbaf8c3d9be47818f4bffae02d94b8|4098329" + ], "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--python-bootstrap-internal-python-build-standalone-info=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_PYTHON_BOOTSTRAP_INTERNAL_PYTHON_BUILD_STANDALONE_INFO", + "display_args": ["--pex-cli-known-versions=\"['', '', ...]\""], + "env_var": "PANTS_PEX_CLI_KNOWN_VERSIONS", "fromfile": false, - "help": "A map from platform to the information needed to download Python Build Standalone.\n\nPython Build Standalone is used to run Python-implemented Pants tools/scripts in docker environments (so that Python doesn't need to be installed).\n\nThe version of Python provided should match the default value's version, which is the highest Python Major/Minor version compatible with the Pants package's interpreter constraints. Additionally, the downloaded file should be extractable by `tar` using `-xvf` (most likely a `.tar.gz` file).\n\nThe schema is `: (, , )` for each possible platform.", + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--python-bootstrap-internal-python-build-standalone-info" - ], + "scoped_cmd_line_args": ["--pex-cli-known-versions"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--internal-python-build-standalone-info"], + "typ": "list", + "unscoped_cmd_line_args": ["--known-versions"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": {} + "value": [] }, { "details": "", "rank": "HARDCODED", - "value": { - "linux_arm64": [ - "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.9.16+20230116-aarch64-unknown-linux-gnu-install_only.tar.gz", - "1ba520c0db431c84305677f56eb9a4254f5097430ed443e92fc8617f8fba973d", - 23873387 - ], - "linux_x86_64": [ - "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.9.16+20230116-x86_64-unknown-linux-gnu-install_only.tar.gz", - "7ba397787932393e65fc2fb9fcfabf54f2bb6751d5da2b45913cb25b2d493758", - 26129729 - ], - "macos_arm64": [ - "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.9.16+20230116-aarch64-apple-darwin-install_only.tar.gz", - "d732d212d42315ac27c6da3e0b69636737a8d72086c980daf844344c010cab80", - 17084463 - ], - "macos_x86_64": [ - "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.9.16+20230116-x86_64-apple-darwin-install_only.tar.gz", - "3948384af5e8d4ee7e5ccc648322b99c1c5cf4979954ed5e6b3382c69d6db71e", - 17059474 - ] - } + "value": [ + "v2.1.137|macos_arm64|faad51a6a108fba9d40b2a10e82a2646fccbaf8c3d9be47818f4bffae02d94b8|4098329", + "v2.1.137|macos_x86_64|faad51a6a108fba9d40b2a10e82a2646fccbaf8c3d9be47818f4bffae02d94b8|4098329", + "v2.1.137|linux_x86_64|faad51a6a108fba9d40b2a10e82a2646fccbaf8c3d9be47818f4bffae02d94b8|4098329", + "v2.1.137|linux_arm64|faad51a6a108fba9d40b2a10e82a2646fccbaf8c3d9be47818f4bffae02d94b8|4098329" + ] } ] } }, - "PANTS_PYTHON_BOOTSTRAP_NAMES": { + "PANTS_PEX_CLI_URL_PLATFORM_MAPPING": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--python-bootstrap-names=\"[, , ...]\"", - "config_key": "names", - "default": ["python", "python3"], + "comma_separated_display_args": "--pex-cli-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "url_platform_mapping", + "default": {}, "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--python-bootstrap-names=\"[, , ...]\"" + "--pex-cli-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" ], - "env_var": "PANTS_PYTHON_BOOTSTRAP_NAMES", + "env_var": "PANTS_PEX_CLI_URL_PLATFORM_MAPPING", "fromfile": false, - "help": "The names of Python binaries to search for. See the `--search-path` option to influence where interpreters are searched for.\n\nThis does not impact which Python interpreter is used to run your code, only what is used to run internal tools.", + "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--python-bootstrap-names"], - "target_field_name": "python_bootstrap_names", - "typ": "list", - "unscoped_cmd_line_args": ["--names"], + "scoped_cmd_line_args": ["--pex-cli-url-platform-mapping"], + "target_field_name": null, + "typ": "dict", + "unscoped_cmd_line_args": ["--url-platform-mapping"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": [] - }, - { - "details": "", - "rank": "HARDCODED", - "value": ["python", "python3"] + "value": {} } ] } }, - "PANTS_PYTHON_BOOTSTRAP_SEARCH_PATH": { + "PANTS_PEX_CLI_URL_TEMPLATE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--python-bootstrap-search-path=\"[, , ...]\"", - "config_key": "search_path", - "default": ["", ""], + "comma_separated_display_args": "--pex-cli-url-template=", + "config_key": "url_template", + "default": "https://github.com/pantsbuild/pex/releases/download/{version}/pex", "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--python-bootstrap-search-path=\"[, , ...]\"" - ], - "env_var": "PANTS_PYTHON_BOOTSTRAP_SEARCH_PATH", + "display_args": ["--pex-cli-url-template="], + "env_var": "PANTS_PEX_CLI_URL_TEMPLATE", "fromfile": false, - "help": "A list of paths to search for Python interpreters.\n\nWhich interpreters are actually used from these paths is context-specific: the Python backend selects interpreters using options on the `python` subsystem, in particular, the `[python].interpreter_constraints` option.\n\nYou can specify absolute paths to interpreter binaries and/or to directories containing interpreter binaries. The order of entries does not matter.\n\nThe following special strings are supported:\n\nFor all runtime environment types:\n\n* ``, the contents of the PATH env var\n\nWhen the environment is a `local_environment` target:\n\n* ``, all Python versions currently configured by ASDF `(asdf shell, ${HOME}/.tool-versions)`, with a fallback to all installed versions\n* ``, the ASDF interpreter with the version in `BUILD_ROOT/.tool-versions`\n* ``, all Python versions under `$(pyenv root)/versions`\n* ``, the Pyenv interpreter with the version in `BUILD_ROOT/.python-version`\n* ``, paths in the `PEX_PYTHON_PATH` variable in `/etc/pexrc` or `~/.pexrc`", + "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--python-bootstrap-search-path"], - "target_field_name": "python_bootstrap_search_path", - "typ": "list", - "unscoped_cmd_line_args": ["--search-path"], + "scoped_cmd_line_args": ["--pex-cli-url-template"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--url-template"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": ["", ""] + "value": "https://github.com/pantsbuild/pex/releases/download/{version}/pex" } ] } }, - "PANTS_PYTHON_DEFAULT_RESOLVE": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--python-default-resolve=", - "config_key": "default_resolve", - "default": "python-default", + "PANTS_PEX_CLI_USE_UNSUPPORTED_VERSION": { + "choices": ["error", "warning"], + "comma_separated_choices": "error, warning", + "comma_separated_display_args": "--pex-cli-use-unsupported-version=", + "config_key": "use_unsupported_version", + "default": "error", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--python-default-resolve="], - "env_var": "PANTS_PYTHON_DEFAULT_RESOLVE", + "display_args": [ + "--pex-cli-use-unsupported-version=" + ], + "env_var": "PANTS_PEX_CLI_USE_UNSUPPORTED_VERSION", "fromfile": false, - "help": "The default value used for the `resolve` field.\n\nThe name must be defined as a resolve in `[python].resolves`.", + "help": "\nWhat action to take in case the requested version of pex is not supported.\n\nSupported pex versions: >=2.1.135,<3.0\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--python-default-resolve"], + "scoped_cmd_line_args": ["--pex-cli-use-unsupported-version"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--default-resolve"], + "typ": "UnsupportedVersionUsage", + "unscoped_cmd_line_args": ["--use-unsupported-version"], "value_history": { "ranked_values": [ { @@ -16115,35 +16156,29 @@ { "details": null, "rank": "HARDCODED", - "value": "python-default" + "value": "error" } ] } }, - "PANTS_PYTHON_DEFAULT_RUN_GOAL_USE_SANDBOX": { + "PANTS_PEX_CLI_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]python-default-run-goal-use-sandbox", - "config_key": "default_run_goal_use_sandbox", - "default": true, + "comma_separated_display_args": "--pex-cli-version=", + "config_key": "version", + "default": "v2.1.137", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]python-default-run-goal-use-sandbox"], - "env_var": "PANTS_PYTHON_DEFAULT_RUN_GOAL_USE_SANDBOX", + "display_args": ["--pex-cli-version="], + "env_var": "PANTS_PEX_CLI_VERSION", "fromfile": false, - "help": "The default value used for the `run_goal_use_sandbox` field of Python targets. See the relevant field for more details.", + "help": "Use this version of pex.\n\nSupported pex versions: >=2.1.135,<3.0", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--python-default-run-goal-use-sandbox", - "--no-python-default-run-goal-use-sandbox" - ], + "scoped_cmd_line_args": ["--pex-cli-version"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--default-run-goal-use-sandbox", - "--no-default-run-goal-use-sandbox" - ], + "typ": "str", + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { @@ -16154,69 +16189,69 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": "v2.1.137" } ] } }, - "PANTS_PYTHON_DUMP_SOURCE_ANALYSIS_ANALYSIS_FLAVOR": { - "choices": ["raw_dependency_inference", "dependency_inference"], - "comma_separated_choices": "raw_dependency_inference, dependency_inference", - "comma_separated_display_args": "--python-dump-source-analysis-analysis-flavor=", - "config_key": "analysis_flavor", - "default": "dependency_inference", + "PANTS_PEX_EXECUTABLE_SEARCH_PATHS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pex-executable-search-paths=\"[, , ...]\"", + "config_key": "executable_search_paths", + "default": [""], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--python-dump-source-analysis-analysis-flavor=" + "--pex-executable-search-paths=\"[, , ...]\"" ], - "env_var": "PANTS_PYTHON_DUMP_SOURCE_ANALYSIS_ANALYSIS_FLAVOR", + "env_var": "PANTS_PEX_EXECUTABLE_SEARCH_PATHS", "fromfile": false, - "help": "The type of information that should be returned.\n\n* `dependency_inference`: The results of dependency inference, for every detected import in every file.\n\n* `raw_dependency_inference`: The raw intermediate results of the dependency inference process,\nat every stage they're available. Potentially useful for debugging the dependency inference process.", + "help": "The PATH value that will be used by the PEX subprocess and any subprocesses it spawns.\n\nThe special string `\"\"` will expand to the contents of the PATH env var.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--python-dump-source-analysis-analysis-flavor"], - "target_field_name": null, - "typ": "AnalysisFlavor", - "unscoped_cmd_line_args": ["--analysis-flavor"], + "scoped_cmd_line_args": ["--pex-executable-search-paths"], + "target_field_name": "pex_executable_search_paths", + "typ": "list", + "unscoped_cmd_line_args": ["--executable-search-paths"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "dependency_inference" + "value": [""] } ] } }, - "PANTS_PYTHON_ENABLE_LOCKFILE_TARGETS": { + "PANTS_PEX_VENV_USE_SYMLINKS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]python-enable-lockfile-targets", - "config_key": "enable_lockfile_targets", - "default": true, + "comma_separated_display_args": "--[no-]pex-venv-use-symlinks", + "config_key": "venv_use_symlinks", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]python-enable-lockfile-targets"], - "env_var": "PANTS_PYTHON_ENABLE_LOCKFILE_TARGETS", + "display_args": ["--[no-]pex-venv-use-symlinks"], + "env_var": "PANTS_PEX_VENV_USE_SYMLINKS", "fromfile": false, - "help": "Create targets for all Python lockfiles defined in `[python].resolves`.\n\nThe lockfile targets will then be used as dependencies to the `python_requirement` targets that use them, invalidating source targets per resolve when the lockfile changes.\n\nIf another targets address is in conflict with the created lockfile target, it will shadow the lockfile target and it will not be available as a dependency for any `python_requirement` targets.", + "help": "When possible, use venvs whose site-packages directories are populated with symlinks.\n\nEnabling this can save space in the `--named-caches-dir` directory and lead to slightly faster execution times for Pants Python goals. Some distributions do not work with symlinked venvs though, so you may not be able to enable this optimization as a result.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--python-enable-lockfile-targets", - "--no-python-enable-lockfile-targets" + "--pex-venv-use-symlinks", + "--no-pex-venv-use-symlinks" ], "target_field_name": null, "typ": "bool", "unscoped_cmd_line_args": [ - "--enable-lockfile-targets", - "--no-enable-lockfile-targets" + "--venv-use-symlinks", + "--no-venv-use-symlinks" ], "value_history": { "ranked_values": [ @@ -16228,32 +16263,29 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": false } ] } }, - "PANTS_PYTHON_ENABLE_RESOLVES": { + "PANTS_PEX_VERBOSITY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]python-enable-resolves", - "config_key": "enable_resolves", - "default": false, + "comma_separated_display_args": "--pex-verbosity=", + "config_key": "verbosity", + "default": 0, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]python-enable-resolves"], - "env_var": "PANTS_PYTHON_ENABLE_RESOLVES", + "display_args": ["--pex-verbosity="], + "env_var": "PANTS_PEX_VERBOSITY", "fromfile": false, - "help": "Set to true to enable lockfiles for user code. See `[python].resolves` for an explanation of this feature.\n\nThis option is mutually exclusive with `[python].requirement_constraints`. We strongly recommend using this option because it:\n\n 1. Uses `--hash` to validate that all downloaded files are expected, which reduces the risk of supply chain attacks.\n 2. Enforces that all transitive dependencies are in the lockfile, whereas constraints allow you to leave off dependencies. This ensures your build is more stable and reduces the risk of supply chain attacks.\n 3. Allows you to have multiple lockfiles in your repository.", + "help": "Set the verbosity level of PEX logging, from 0 (no logging) up to 9 (max logging).", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--python-enable-resolves", - "--no-python-enable-resolves" - ], + "scoped_cmd_line_args": ["--pex-verbosity"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--enable-resolves", "--no-enable-resolves"], + "typ": "int", + "unscoped_cmd_line_args": ["--verbosity"], "value_history": { "ranked_values": [ { @@ -16264,100 +16296,96 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": 0 } ] } }, - "PANTS_PYTHON_INFER_AMBIGUITY_RESOLUTION": { - "choices": ["none", "by_source_root"], - "comma_separated_choices": "none, by_source_root", - "comma_separated_display_args": "--python-infer-ambiguity-resolution=", - "config_key": "ambiguity_resolution", - "default": "none", + "PANTS_PHYSICAL_WORKDIR_BASE": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pants-physical-workdir-base=", + "config_key": "pants_physical_workdir_base", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--python-infer-ambiguity-resolution=" - ], - "env_var": "PANTS_PYTHON_INFER_AMBIGUITY_RESOLUTION", + "display_args": ["--pants-physical-workdir-base="], + "env_var": "PANTS_PHYSICAL_WORKDIR_BASE", "fromfile": false, - "help": "When multiple sources provide the same symbol, how to choose the provider to use.\n\n`none`: Do not attempt to resolve this ambiguity. No dependency will be inferred, and warnings will be logged.\n\n`by_source_root`: Choose the provider with the closest common ancestor to the consumer's source root. If the provider is under the same source root then this will be the source root itself. This is useful when multiple projects in different source roots provide the same symbols (because of repeated first-party module paths or overlapping requirements.txt) and you want to resolve the ambiguity locally in each project.", + "help": "When set, a base directory in which to store `--pants-workdir` contents. If this option is a set, the workdir will be created as symlink into a per-workspace subdirectory.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--python-infer-ambiguity-resolution"], + "scoped_cmd_line_args": ["--pants-physical-workdir-base"], "target_field_name": null, - "typ": "AmbiguityResolution", - "unscoped_cmd_line_args": ["--ambiguity-resolution"], + "typ": "str", + "unscoped_cmd_line_args": ["--pants-physical-workdir-base"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": "none" } ] } }, - "PANTS_PYTHON_INFER_ASSETS": { + "PANTS_PLUGINS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]python-infer-assets", - "config_key": "assets", - "default": false, + "comma_separated_display_args": "--plugins=\"['', '', ...]\"", + "config_key": "plugins", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]python-infer-assets"], - "env_var": "PANTS_PYTHON_INFER_ASSETS", + "display_args": ["--plugins=\"['', '', ...]\""], + "env_var": "PANTS_PLUGINS", "fromfile": false, - "help": "Infer a target's asset dependencies based on strings that look like Posix filepaths, such as those given to `open` or `pkgutil.get_data`.\n\nTo ignore a false positive, you can either put `# pants: no-infer-dep` on the line of the string or put `!{bad_address}` in the `dependencies` field of your target.", + "help": "Allow backends to be loaded from these plugins (usually released through PyPI). The default backends for each plugin will be loaded automatically. Other backends in a plugin can be loaded by listing them in `backend_packages` in the `[GLOBAL]` scope.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--python-infer-assets", - "--no-python-infer-assets" - ], + "scoped_cmd_line_args": ["--plugins"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--assets", "--no-assets"], + "typ": "list", + "unscoped_cmd_line_args": ["--plugins"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": [] } ] } }, - "PANTS_PYTHON_INFER_ASSETS_MIN_SLASHES": { + "PANTS_PLUGINS_FORCE_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--python-infer-assets-min-slashes=", - "config_key": "assets_min_slashes", - "default": 1, + "comma_separated_display_args": "--[no-]plugins-force-resolve", + "config_key": "plugins_force_resolve", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--python-infer-assets-min-slashes="], - "env_var": "PANTS_PYTHON_INFER_ASSETS_MIN_SLASHES", + "display_args": ["--[no-]plugins-force-resolve"], + "env_var": "PANTS_PLUGINS_FORCE_RESOLVE", "fromfile": false, - "help": "If `--assets` is True, treat valid-looking strings with at least this many forward slash characters as potential assets. E.g. `'data/databases/prod.db'` will be treated as a potential candidate if this option is set to 2 but not to 3.", + "help": "Re-resolve plugins, even if previously resolved.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--python-infer-assets-min-slashes"], + "scoped_cmd_line_args": [ + "--plugins-force-resolve", + "--no-plugins-force-resolve" + ], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--assets-min-slashes"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--plugins-force-resolve", + "--no-plugins-force-resolve" + ], "value_history": { "ranked_values": [ { @@ -16368,32 +16396,29 @@ { "details": null, "rank": "HARDCODED", - "value": 1 + "value": false } ] } }, - "PANTS_PYTHON_INFER_CONFTESTS": { + "PANTS_PREAMBLE_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]python-infer-conftests", - "config_key": "conftests", - "default": true, + "comma_separated_display_args": "--[no-]preamble-skip", + "config_key": "skip", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]python-infer-conftests"], - "env_var": "PANTS_PYTHON_INFER_CONFTESTS", + "display_args": ["--[no-]preamble-skip"], + "env_var": "PANTS_PREAMBLE_SKIP", "fromfile": false, - "help": "Infer a test target's dependencies on any `conftest.py` files in the current directory and ancestor directories.", + "help": "If true, don't use preamble when running `pants fmt`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--python-infer-conftests", - "--no-python-infer-conftests" - ], + "scoped_cmd_line_args": ["--preamble-skip", "--no-preamble-skip"], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--conftests", "--no-conftests"], + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -16404,67 +16429,64 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": false } ] } }, - "PANTS_PYTHON_INFER_ENTRY_POINTS": { + "PANTS_PREAMBLE_TEMPLATE_BY_GLOBS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]python-infer-entry-points", - "config_key": "entry_points", - "default": true, + "comma_separated_display_args": "--preamble-template-by-globs=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "template_by_globs", + "default": {}, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]python-infer-entry-points"], - "env_var": "PANTS_PYTHON_INFER_ENTRY_POINTS", - "fromfile": false, - "help": "Infer dependencies on targets' entry points, e.g. `pex_binary`'s `entry_point` field, `python_aws_lambda_function`'s `handler` field and `python_distribution`'s `entry_points` field.", + "display_args": [ + "--preamble-template-by-globs=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_PREAMBLE_TEMPLATE_BY_GLOBS", + "fromfile": true, + "help": "Which preamble template to use based on the path globs (relative to the build root).\n\nExample:\n\n {\n '*.rs': '// Copyright (c) $year\\n// Line 2\\n'\n '*.py:!__init__.py': '# Copyright (c) $year\\n# Line 2\\n',\n }\n\nIt might be helpful to load this config from a JSON or YAML file. To do that, set `[preamble].config = '@path/to/config.yaml'`, for example.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--python-infer-entry-points", - "--no-python-infer-entry-points" - ], + "scoped_cmd_line_args": ["--preamble-template-by-globs"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--entry-points", "--no-entry-points"], + "typ": "dict", + "unscoped_cmd_line_args": ["--template-by-globs"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": {} }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": true + "value": {} } ] } }, - "PANTS_PYTHON_INFER_IGNORED_UNOWNED_IMPORTS": { + "PANTS_PRETTIER_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--python-infer-ignored-unowned-imports=\"['', '', ...]\"", - "config_key": "ignored_unowned_imports", + "comma_separated_display_args": "--prettier-args=\"[, , ...]\"", + "config_key": "args", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--python-infer-ignored-unowned-imports=\"['', '', ...]\"" - ], - "env_var": "PANTS_PYTHON_INFER_IGNORED_UNOWNED_IMPORTS", + "display_args": ["--prettier-args=\"[, , ...]\""], + "env_var": "PANTS_PRETTIER_ARGS", "fromfile": false, - "help": "Unowned imports that should be ignored.\n\nIf there are any unowned import statements and adding the `# pants: no-infer-dep` to the lines of the import is impractical, you can instead provide a list of imports that Pants should ignore. You can declare a specific import or a path to a package if you would like any of the package imports to be ignored.\n\nFor example, you could ignore all the following imports of the code\n\n import src.generated.app\n from src.generated.app import load\n from src.generated.app import start\n from src.generated.client import connect\n\nby setting `ignored-unowned-imports=[\"src.generated.app\", \"src.generated.client.connect\"]`.", + "help": "Arguments to pass directly to Prettier, e.g. `--prettier-args='--version'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--python-infer-ignored-unowned-imports"], + "scoped_cmd_line_args": ["--prettier-args"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--ignored-unowned-imports"], + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { @@ -16480,60 +16502,52 @@ ] } }, - "PANTS_PYTHON_INFER_IMPORTS": { + "PANTS_PRETTIER_INSTALL_FROM_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]python-infer-imports", - "config_key": "imports", - "default": true, + "comma_separated_display_args": "--prettier-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]python-infer-imports"], - "env_var": "PANTS_PYTHON_INFER_IMPORTS", + "display_args": ["--prettier-install-from-resolve="], + "env_var": "PANTS_PRETTIER_INSTALL_FROM_RESOLVE", "fromfile": false, - "help": "Infer a target's imported dependencies by parsing import statements from sources.\n\nTo ignore a false positive, you can either put `# pants: no-infer-dep` on the line of the import or put `!{bad_address}` in the `dependencies` field of your target.", + "help": "If specified, install the tool using the lockfile for this named resolve, instead of the version configured in this subsystem.\n\nIf unspecified, the tool will use the default configured package manager [nodejs].package_manager`, and install the tool without a lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--python-infer-imports", - "--no-python-infer-imports" - ], + "scoped_cmd_line_args": ["--prettier-install-from-resolve"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--imports", "--no-imports"], + "typ": "str", + "unscoped_cmd_line_args": ["--install-from-resolve"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": true } ] } }, - "PANTS_PYTHON_INFER_INIT_FILES": { - "choices": ["always", "content_only", "never"], - "comma_separated_choices": "always, content_only, never", - "comma_separated_display_args": "--python-infer-init-files=", - "config_key": "init_files", - "default": "content_only", + "PANTS_PRETTIER_SKIP": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]prettier-skip", + "config_key": "skip", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--python-infer-init-files="], - "env_var": "PANTS_PYTHON_INFER_INIT_FILES", + "display_args": ["--[no-]prettier-skip"], + "env_var": "PANTS_PRETTIER_SKIP", "fromfile": false, - "help": "Infer a target's dependencies on any `__init__.py` files in the packages it is located in (recursively upward in the directory structure).\n\nEven if this is set to `never` or `content_only`, Pants will still always include any ancestor `__init__.py` files in the sandbox. Only, they will not be \"proper\" dependencies, e.g. they will not show up in `scie-pants-linux-x86_64 dependencies` and their own dependencies will not be used.\n\nBy default, Pants only adds a \"proper\" dependency if there is content in the `__init__.py` file. This makes sure that dependencies are added when likely necessary to build, while also avoiding adding unnecessary dependencies. While accurate, those unnecessary dependencies can complicate setting metadata like the `interpreter_constraints` and `resolve` fields.", + "help": "If true, don't use Prettier when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--python-infer-init-files"], + "scoped_cmd_line_args": ["--prettier-skip", "--no-prettier-skip"], "target_field_name": null, - "typ": "InitFilesInference", - "unscoped_cmd_line_args": ["--init-files"], + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -16544,32 +16558,29 @@ { "details": null, "rank": "HARDCODED", - "value": "content_only" + "value": false } ] } }, - "PANTS_PYTHON_INFER_STRING_IMPORTS": { + "PANTS_PRETTIER_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]python-infer-string-imports", - "config_key": "string_imports", - "default": false, + "comma_separated_display_args": "--prettier-version=", + "config_key": "version", + "default": "prettier@2.6.2", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]python-infer-string-imports"], - "env_var": "PANTS_PYTHON_INFER_STRING_IMPORTS", + "display_args": ["--prettier-version="], + "env_var": "PANTS_PRETTIER_VERSION", "fromfile": false, - "help": "Infer a target's dependencies based on strings that look like dynamic dependencies, such as Django settings files expressing dependencies as strings or pytest plugins listed in the `pytest_plugins` variable in a test module or a conftest file.\n\nTo ignore a false positive, you can either put `# pants: no-infer-dep` on the line of the string or put `!{bad_address}` in the `dependencies` field of your target.", + "help": "Version string for the tool in the form package@version (e.g. prettier@2.6.2)", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--python-infer-string-imports", - "--no-python-infer-string-imports" - ], + "scoped_cmd_line_args": ["--prettier-version"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--string-imports", "--no-string-imports"], + "typ": "str", + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { @@ -16580,29 +16591,29 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": "prettier@2.6.2" } ] } }, - "PANTS_PYTHON_INFER_STRING_IMPORTS_MIN_DOTS": { + "PANTS_PRINT_STACKTRACE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--python-infer-string-imports-min-dots=", - "config_key": "string_imports_min_dots", - "default": 2, + "comma_separated_display_args": "--[no-]print-stacktrace", + "config_key": "print_stacktrace", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--python-infer-string-imports-min-dots="], - "env_var": "PANTS_PYTHON_INFER_STRING_IMPORTS_MIN_DOTS", + "display_args": ["--[no-]print-stacktrace"], + "env_var": "PANTS_PRINT_STACKTRACE", "fromfile": false, - "help": "If `--string-imports` is True, treat valid-looking strings with at least this many dots in them as potential dynamic dependencies. E.g., `'foo.bar.Baz'` will be treated as a potential dependency if this option is set to 2 but not if set to 3.", + "help": "Print the full exception stack trace for any errors.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--python-infer-string-imports-min-dots"], + "scoped_cmd_line_args": ["--print-stacktrace", "--no-print-stacktrace"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--string-imports-min-dots"], + "typ": "bool", + "unscoped_cmd_line_args": ["--print-stacktrace", "--no-print-stacktrace"], "value_history": { "ranked_values": [ { @@ -16613,31 +16624,29 @@ { "details": null, "rank": "HARDCODED", - "value": 2 + "value": false } ] } }, - "PANTS_PYTHON_INFER_UNOWNED_DEPENDENCY_BEHAVIOR": { - "choices": ["error", "warning", "ignore"], - "comma_separated_choices": "error, warning, ignore", - "comma_separated_display_args": "--python-infer-unowned-dependency-behavior=", - "config_key": "unowned_dependency_behavior", - "default": "warning", - "deprecated_message": null, - "deprecation_active": false, - "display_args": [ - "--python-infer-unowned-dependency-behavior=" - ], - "env_var": "PANTS_PYTHON_INFER_UNOWNED_DEPENDENCY_BEHAVIOR", + "PANTS_PROCESS_CLEANUP": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]process-cleanup", + "config_key": "process_cleanup", + "default": true, + "deprecated_message": "Deprecated, is scheduled to be removed in version: 3.0.0.dev0.", + "deprecation_active": true, + "display_args": ["--[no-]process-cleanup"], + "env_var": "PANTS_PROCESS_CLEANUP", "fromfile": false, - "help": "How to handle imports that don't have an inferrable owner.\n\nUsually when an import cannot be inferred, it represents an issue like Pants not being properly configured, e.g. targets not set up. Often, missing dependencies will result in confusing runtime errors like `ModuleNotFoundError`, so this option can be helpful to error more eagerly.\n\nTo ignore any false positives, either add `# pants: no-infer-dep` to the line of the import or put the import inside a `try: except ImportError:` block.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--python-infer-unowned-dependency-behavior"], + "help": "If false, Pants will not clean up local directories used as chroots for running processes. Pants will log their location so that you can inspect the chroot, and run the `__run.sh` script to recreate the process using the same argv and environment variables used by Pants. This option is useful for debugging.", + "removal_hint": "Use the `keep_sandboxes` option instead.", + "removal_version": "3.0.0.dev0", + "scoped_cmd_line_args": ["--process-cleanup", "--no-process-cleanup"], "target_field_name": null, - "typ": "UnownedDependencyUsage", - "unscoped_cmd_line_args": ["--unowned-dependency-behavior"], + "typ": "bool", + "unscoped_cmd_line_args": ["--process-cleanup", "--no-process-cleanup"], "value_history": { "ranked_values": [ { @@ -16648,32 +16657,59 @@ { "details": null, "rank": "HARDCODED", - "value": "warning" + "value": true } ] } }, - "PANTS_PYTHON_INFER_USE_RUST_PARSER": { + "PANTS_PROCESS_EXECUTION_CACHE_NAMESPACE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]python-infer-use-rust-parser", - "config_key": "use_rust_parser", - "default": true, + "comma_separated_display_args": "--process-execution-cache-namespace=", + "config_key": "process_execution_cache_namespace", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]python-infer-use-rust-parser"], - "env_var": "PANTS_PYTHON_INFER_USE_RUST_PARSER", + "display_args": ["--process-execution-cache-namespace="], + "env_var": "PANTS_PROCESS_EXECUTION_CACHE_NAMESPACE", "fromfile": false, - "help": "Use the new Rust-based, multithreaded, in-process dependency parser.\n\nPants 2.17 introduced a new paradigm to dependency parsing for Python by leveraging a Rust-based parser that's called in the same process as Pants itself, instead of farming out to one-python-process-per-file.\n\nAs a result of the switch, cold-cache performance improved by a factor of about 12x, while hot-cache had no difference. Additionally, Pants can now infer dependencies from Python scripts with syntax errors.\n\nAfter leaving this defaulted to disabled for a release cycle, Pants 2.18 started defaulting to enabling this.\n\nIf you think the new behaviour is causing problems, it is recommended that you run `scie-pants-linux-x86_64 peek :: > before.json` and then `scie-pants-linux-x86_64 --python-infer-use-rust-parser=False peek :: > after.json` and compare the two results.\n\nIf you think there is a bug and need to disable it, please file an issue: https://github.com/pantsbuild/pants/issues/new/choose.", + "help": "The cache namespace for process execution. Change this value to invalidate every artifact's execution, or to prevent process cache entries from being (re)used for different usecases or users.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--python-infer-use-rust-parser", - "--no-python-infer-use-rust-parser" - ], + "scoped_cmd_line_args": ["--process-execution-cache-namespace"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--use-rust-parser", "--no-use-rust-parser"], + "typ": "str", + "unscoped_cmd_line_args": ["--process-execution-cache-namespace"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + "PANTS_PROCESS_EXECUTION_GRACEFUL_SHUTDOWN_TIMEOUT": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--process-execution-graceful-shutdown-timeout=", + "config_key": "process_execution_graceful_shutdown_timeout", + "default": 3, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--process-execution-graceful-shutdown-timeout="], + "env_var": "PANTS_PROCESS_EXECUTION_GRACEFUL_SHUTDOWN_TIMEOUT", + "fromfile": false, + "help": "The time in seconds to wait when gracefully shutting down an interactive process (such as one opened using `pants run`) before killing it.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--process-execution-graceful-shutdown-timeout"], + "target_field_name": null, + "typ": "int", + "unscoped_cmd_line_args": [ + "--process-execution-graceful-shutdown-timeout" + ], "value_history": { "ranked_values": [ { @@ -16684,121 +16720,101 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": 3 } ] } }, - "PANTS_PYTHON_INTERPRETER_CONSTRAINTS": { + "PANTS_PROCESS_EXECUTION_LOCAL_ENABLE_NAILGUN": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--python-interpreter-constraints=\"[, , ...]\"", - "config_key": "interpreter_constraints", - "default": [], + "comma_separated_display_args": "--[no-]process-execution-local-enable-nailgun", + "config_key": "process_execution_local_enable_nailgun", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--python-interpreter-constraints=\"[, , ...]\"" - ], - "env_var": "PANTS_PYTHON_INTERPRETER_CONSTRAINTS", + "display_args": ["--[no-]process-execution-local-enable-nailgun"], + "env_var": "PANTS_PROCESS_EXECUTION_LOCAL_ENABLE_NAILGUN", "fromfile": false, - "help": "The Python interpreters your codebase is compatible with.\n\nThese constraints are used as the default value for the `interpreter_constraints` field of Python targets.\n\nSpecify with requirement syntax, e.g. `'CPython>=2.7,<3'` (A CPython interpreter with version >=2.7 AND version <3) or `'PyPy'` (A pypy interpreter of any version). Multiple constraint strings will be ORed together.", + "help": "Whether or not to use nailgun to run JVM requests that are marked as supporting nailgun.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--python-interpreter-constraints"], + "scoped_cmd_line_args": [ + "--process-execution-local-enable-nailgun", + "--no-process-execution-local-enable-nailgun" + ], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--interpreter-constraints"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--process-execution-local-enable-nailgun", + "--no-process-execution-local-enable-nailgun" + ], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": true } ] } }, - "PANTS_PYTHON_INTERPRETER_VERSIONS_UNIVERSE": { + "PANTS_PROCESS_EXECUTION_LOCAL_PARALLELISM": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--python-interpreter-versions-universe=\"['', '', ...]\"", - "config_key": "interpreter_versions_universe", - "default": [ - "2.7", - "3.5", - "3.6", - "3.7", - "3.8", - "3.9", - "3.10", - "3.11", - "3.12" - ], + "comma_separated_display_args": "--process-execution-local-parallelism=", + "config_key": "process_execution_local_parallelism", + "default": "#cores", "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--python-interpreter-versions-universe=\"['', '', ...]\"" - ], - "env_var": "PANTS_PYTHON_INTERPRETER_VERSIONS_UNIVERSE", + "display_args": ["--process-execution-local-parallelism="], + "env_var": "PANTS_PROCESS_EXECUTION_LOCAL_PARALLELISM", "fromfile": false, - "help": "All known Python major/minor interpreter versions that may be used by either your code or tools used by your code.\n\nThis is used by Pants to robustly handle interpreter constraints, such as knowing when generating lockfiles which Python versions to check if your code is using.\n\nThis does not control which interpreter your code will use. Instead, to set your interpreter constraints, update `[python].interpreter_constraints`, the `interpreter_constraints` field, and relevant tool options like `[isort].interpreter_constraints` to tell Pants which interpreters your code actually uses. See https://www.pantsbuild.org/v2.18/docs/python-interpreter-compatibility.\n\nAll elements must be the minor and major Python version, e.g. `'2.7'` or `'3.10'`. Do not include the patch version.", + "help": "Number of concurrent processes that may be executed locally.\n\nThis value is independent of the number of threads that may be used to execute the logic in `@rules` (controlled by `--rule-threads-core`).", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--python-interpreter-versions-universe"], + "scoped_cmd_line_args": ["--process-execution-local-parallelism"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--interpreter-versions-universe"], + "typ": "int", + "unscoped_cmd_line_args": ["--process-execution-local-parallelism"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [ - "2.7", - "3.5", - "3.6", - "3.7", - "3.8", - "3.9", - "3.10", - "3.11", - "3.12" - ] + "value": 4 } ] } }, - "PANTS_PYTHON_INVALID_LOCKFILE_BEHAVIOR": { - "choices": ["error", "ignore", "warn"], - "comma_separated_choices": "error, ignore, warn", - "comma_separated_display_args": "--python-invalid-lockfile-behavior=", - "config_key": "invalid_lockfile_behavior", - "default": "error", + "PANTS_PROCESS_EXECUTION_REMOTE_PARALLELISM": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--process-execution-remote-parallelism=", + "config_key": "process_execution_remote_parallelism", + "default": 128, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--python-invalid-lockfile-behavior=" - ], - "env_var": "PANTS_PYTHON_INVALID_LOCKFILE_BEHAVIOR", + "display_args": ["--process-execution-remote-parallelism="], + "env_var": "PANTS_PROCESS_EXECUTION_REMOTE_PARALLELISM", "fromfile": false, - "help": "The behavior when a lockfile has requirements or interpreter constraints that are not compatible with what the current build is using.\n\nWe recommend keeping the default of `error` for CI builds.\n\nNote that `warn` will still expect a Pants lockfile header, it only won't error if the lockfile is stale and should be regenerated.\n\nUse `ignore` to avoid needing a lockfile header at all, e.g. if you are manually managing lockfiles rather than using the `generate-lockfiles` goal.", + "help": "Number of concurrent processes that may be executed remotely.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--python-invalid-lockfile-behavior"], + "scoped_cmd_line_args": ["--process-execution-remote-parallelism"], "target_field_name": null, - "typ": "InvalidLockfileBehavior", - "unscoped_cmd_line_args": ["--invalid-lockfile-behavior"], + "typ": "int", + "unscoped_cmd_line_args": ["--process-execution-remote-parallelism"], "value_history": { "ranked_values": [ { @@ -16809,35 +16825,29 @@ { "details": null, "rank": "HARDCODED", - "value": "error" + "value": 128 } ] } }, - "PANTS_PYTHON_MACOS_BIG_SUR_COMPATIBILITY": { + "PANTS_PROCESS_PER_CHILD_MEMORY_USAGE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]python-macos-big-sur-compatibility", - "config_key": "macos_big_sur_compatibility", - "default": false, + "comma_separated_display_args": "--process-per-child-memory-usage=", + "config_key": "process_per_child_memory_usage", + "default": "512MiB", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]python-macos-big-sur-compatibility"], - "env_var": "PANTS_PYTHON_MACOS_BIG_SUR_COMPATIBILITY", + "display_args": ["--process-per-child-memory-usage="], + "env_var": "PANTS_PROCESS_PER_CHILD_MEMORY_USAGE", "fromfile": false, - "help": "If set, and if running on macOS Big Sur, use `macosx_10_16` as the platform when building wheels. Otherwise, the default of `macosx_11_0` will be used. This may be required for `pip` to be able to install the resulting distribution on Big Sur.", + "help": "The default memory usage for a single \"pooled\" child process.\n\nCheck the documentation for the `--process-total-child-memory-usage` for advice on how to choose an appropriate value for this option.\n\nYou can suffix with `GiB`, `MiB`, `KiB`, or `B` to indicate the unit, e.g. `2GiB` or `2.12GiB`. A bare number will be in bytes.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--python-macos-big-sur-compatibility", - "--no-python-macos-big-sur-compatibility" - ], + "scoped_cmd_line_args": ["--process-per-child-memory-usage"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--macos-big-sur-compatibility", - "--no-macos-big-sur-compatibility" - ], + "typ": "memory_size", + "unscoped_cmd_line_args": ["--process-per-child-memory-usage"], "value_history": { "ranked_values": [ { @@ -16848,66 +16858,64 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": 536870912 } ] } }, - "PANTS_PYTHON_NATIVE_CODE_CPP_FLAGS": { + "PANTS_PROCESS_TOTAL_CHILD_MEMORY_USAGE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--python-native-code-cpp-flags=\"['', '', ...]\"", - "config_key": "cpp_flags", - "default": [""], + "comma_separated_display_args": "--process-total-child-memory-usage=", + "config_key": "process_total_child_memory_usage", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--python-native-code-cpp-flags=\"['', '', ...]\"" - ], - "env_var": "PANTS_PYTHON_NATIVE_CODE_CPP_FLAGS", + "display_args": ["--process-total-child-memory-usage="], + "env_var": "PANTS_PROCESS_TOTAL_CHILD_MEMORY_USAGE", "fromfile": false, - "help": "Override the `CPPFLAGS` environment variable for any forked subprocesses. Use the value `['']` to inherit the value of the `CPPFLAGS` environment variable from your runtime environment target.", + "help": "The maximum memory usage for all \"pooled\" child processes.\n\nWhen set, this value participates in precomputing the pool size of child processes used by Pants (pooling is currently used only for the JVM). When not set, Pants will default to spawning `2 * --process-execution-local-parallelism` pooled processes.\n\nA high value would result in a high number of child processes spawned, potentially overconsuming your resources and triggering the OS' OOM killer. A low value would mean a low number of child processes launched and therefore less parallelism for the tasks that need those processes.\n\nIf setting this value, consider also adjusting the value of the `--process-per-child-memory-usage` option.\n\nYou can suffix with `GiB`, `MiB`, `KiB`, or `B` to indicate the unit, e.g. `2GiB` or `2.12GiB`. A bare number will be in bytes.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--python-native-code-cpp-flags"], - "target_field_name": "python_native_code_cpp_flags", - "typ": "list", - "unscoped_cmd_line_args": ["--cpp-flags"], + "scoped_cmd_line_args": ["--process-total-child-memory-usage"], + "target_field_name": null, + "typ": "memory_size", + "unscoped_cmd_line_args": ["--process-total-child-memory-usage"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] - }, - { - "details": "", - "rank": "HARDCODED", - "value": [""] + "value": null } ] } }, - "PANTS_PYTHON_NATIVE_CODE_LD_FLAGS": { + "PANTS_PROTOBUF_JAVA_GRPC_ARTIFACTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--python-native-code-ld-flags=\"['', '', ...]\"", - "config_key": "ld_flags", - "default": [""], + "comma_separated_display_args": "--protobuf-java-grpc-artifacts=\"['', '', ...]\"", + "config_key": "artifacts", + "default": [ + "io.grpc:protoc-gen-grpc-java:exe:linux-aarch_64:{version}", + "io.grpc:protoc-gen-grpc-java:exe:linux-x86_64:{version}", + "io.grpc:protoc-gen-grpc-java:exe:osx-aarch_64:{version}", + "io.grpc:protoc-gen-grpc-java:exe:osx-x86_64:{version}" + ], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--python-native-code-ld-flags=\"['', '', ...]\"" + "--protobuf-java-grpc-artifacts=\"['', '', ...]\"" ], - "env_var": "PANTS_PYTHON_NATIVE_CODE_LD_FLAGS", + "env_var": "PANTS_PROTOBUF_JAVA_GRPC_ARTIFACTS", "fromfile": false, - "help": "Override the `LDFLAGS` environment variable for any forked subprocesses. Use the value `['']` to inherit the value of the `LDFLAGS` environment variable from your runtime environment target.", + "help": "Artifact requirements for this tool using specified as either the address of a `jvm_artifact` target or, alternatively, as a colon-separated Maven coordinates (e.g., `group:name:version`). For Maven coordinates, the string `{version}` version will be substituted with the value of the `[protobuf-java-grpc].version` option.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--python-native-code-ld-flags"], - "target_field_name": "python_native_code_ld_flags", + "scoped_cmd_line_args": ["--protobuf-java-grpc-artifacts"], + "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--ld-flags"], + "unscoped_cmd_line_args": ["--artifacts"], "value_history": { "ranked_values": [ { @@ -16918,79 +16926,69 @@ { "details": "", "rank": "HARDCODED", - "value": [""] + "value": [ + "io.grpc:protoc-gen-grpc-java:exe:linux-aarch_64:{version}", + "io.grpc:protoc-gen-grpc-java:exe:linux-x86_64:{version}", + "io.grpc:protoc-gen-grpc-java:exe:osx-aarch_64:{version}", + "io.grpc:protoc-gen-grpc-java:exe:osx-x86_64:{version}" + ] } ] } }, - "PANTS_PYTHON_PIP_VERSION": { - "choices": [ - "20.3.4-patched", - "22.2.2", - "22.3", - "22.3.1", - "23.0", - "23.0.1", - "23.1", - "23.1.1", - "23.1.2", - "latest" - ], - "comma_separated_choices": "20.3.4-patched, 22.2.2, 22.3, 22.3.1, 23.0, 23.0.1, 23.1, 23.1.1, 23.1.2, latest", - "comma_separated_display_args": "--python-pip-version=", - "config_key": "pip_version", - "default": "23.1.2", + "PANTS_PROTOBUF_JAVA_GRPC_JVM_OPTIONS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--protobuf-java-grpc-jvm-options=\"['', '', ...]\"", + "config_key": "jvm_options", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--python-pip-version="], - "env_var": "PANTS_PYTHON_PIP_VERSION", + "display_args": [ + "--protobuf-java-grpc-jvm-options=\"['', '', ...]\"" + ], + "env_var": "PANTS_PROTOBUF_JAVA_GRPC_JVM_OPTIONS", "fromfile": false, - "help": "Use this version of Pip for resolving requirements and generating lockfiles.\n\nN.B.: The `latest` value selects the latest of the listed choices which is not necessarily the latest Pip version released on PyPI.", + "help": "List of JVM options to pass to `protobuf-java-grpc` JVM processes.\n\nOptions set here will be added to those set in `[jvm].global_options`. Please check the documentation for the `jvm` subsystem to see what values are accepted here.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--python-pip-version"], + "scoped_cmd_line_args": ["--protobuf-java-grpc-jvm-options"], "target_field_name": null, - "typ": "PipVersion", - "unscoped_cmd_line_args": ["--pip-version"], + "typ": "list", + "unscoped_cmd_line_args": ["--jvm-options"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "23.1.2" + "value": [] } ] } }, - "PANTS_PYTHON_PROTOBUF_INFER_RUNTIME_DEPENDENCY": { + "PANTS_PROTOBUF_JAVA_GRPC_LOCKFILE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]python-protobuf-infer-runtime-dependency", - "config_key": "infer_runtime_dependency", - "default": true, + "comma_separated_display_args": "--protobuf-java-grpc-lockfile=", + "config_key": "lockfile", + "default": "", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]python-protobuf-infer-runtime-dependency"], - "env_var": "PANTS_PYTHON_PROTOBUF_INFER_RUNTIME_DEPENDENCY", + "display_args": ["--protobuf-java-grpc-lockfile="], + "env_var": "PANTS_PROTOBUF_JAVA_GRPC_LOCKFILE", "fromfile": false, - "help": "If True, will add a dependency on a `python_requirement` target exposing the `protobuf` module (usually from the `protobuf` requirement). If the `protobuf_source` target sets `grpc=True`, will also add a dependency on the `python_requirement` target exposing the `grpcio` module.\n\nIf `[python].enable_resolves` is set, Pants will only infer dependencies on `python_requirement` targets that use the same resolve as the particular `protobuf_source` / `protobuf_sources` target uses, which is set via its `python_resolve` field.\n\nUnless this option is disabled, Pants will error if no relevant target is found or if more than one is found which causes ambiguity.", + "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/codegen/protobuf/java/grpc-java.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=protobuf-java-grpc`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--python-protobuf-infer-runtime-dependency", - "--no-python-protobuf-infer-runtime-dependency" - ], + "scoped_cmd_line_args": ["--protobuf-java-grpc-lockfile"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--infer-runtime-dependency", - "--no-infer-runtime-dependency" - ], + "typ": "str", + "unscoped_cmd_line_args": ["--lockfile"], "value_history": { "ranked_values": [ { @@ -17001,32 +16999,29 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": "" } ] } }, - "PANTS_PYTHON_PROTOBUF_MYPY_PLUGIN": { + "PANTS_PROTOBUF_JAVA_GRPC_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]python-protobuf-mypy-plugin", - "config_key": "mypy_plugin", - "default": false, + "comma_separated_display_args": "--protobuf-java-grpc-version=", + "config_key": "version", + "default": "1.48.0", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]python-protobuf-mypy-plugin"], - "env_var": "PANTS_PYTHON_PROTOBUF_MYPY_PLUGIN", + "display_args": ["--protobuf-java-grpc-version="], + "env_var": "PANTS_PROTOBUF_JAVA_GRPC_VERSION", "fromfile": false, - "help": "Use the `mypy-protobuf` plugin (https://github.com/dropbox/mypy-protobuf) to also generate `.pyi` type stubs.", + "help": "Version string for the tool. This is available for substitution in the `[protobuf-java-grpc].artifacts` option by including the string `{version}`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--python-protobuf-mypy-plugin", - "--no-python-protobuf-mypy-plugin" - ], + "scoped_cmd_line_args": ["--protobuf-java-grpc-version"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--mypy-plugin", "--no-mypy-plugin"], + "typ": "str", + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { @@ -17037,32 +17032,35 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": "1.48.0" } ] } }, - "PANTS_PYTHON_REPL_HISTORY": { + "PANTS_PROTOC_DEPENDENCY_INFERENCE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]python-repl-history", - "config_key": "repl_history", + "comma_separated_display_args": "--[no-]protoc-dependency-inference", + "config_key": "dependency_inference", "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]python-repl-history"], - "env_var": "PANTS_PYTHON_REPL_HISTORY", + "display_args": ["--[no-]protoc-dependency-inference"], + "env_var": "PANTS_PROTOC_DEPENDENCY_INFERENCE", "fromfile": false, - "help": "Whether to use the standard Python command history file when running a repl.", + "help": "Infer Protobuf dependencies on other Protobuf files by analyzing import statements.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--python-repl-history", - "--no-python-repl-history" + "--protoc-dependency-inference", + "--no-protoc-dependency-inference" ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--repl-history", "--no-repl-history"], + "unscoped_cmd_line_args": [ + "--dependency-inference", + "--no-dependency-inference" + ], "value_history": { "ranked_values": [ { @@ -17078,24 +17076,29 @@ ] } }, - "PANTS_PYTHON_REPOS_FIND_LINKS": { + "PANTS_PROTOC_KNOWN_VERSIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--python-repos-find-links=\"['', '', ...]\"", - "config_key": "find_links", - "default": [], + "comma_separated_display_args": "--protoc-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", + "default": [ + "3.20.1|linux_arm64 |8a5a51876259f934cd2acc2bc59dba0e9a51bd631a5c37a4b9081d6e4dbc7591|1804837", + "3.20.1|linux_x86_64|3a0e900f9556fbcac4c3a913a00d07680f0fdf6b990a341462d822247b265562|1714731", + "3.20.1|macos_arm64 |b362acae78542872bb6aac8dba73aaf0dc6e94991b8b0a065d6c3e703fec2a8b|2708249", + "3.20.1|macos_x86_64|b4f36b18202d54d343a66eebc9f8ae60809a2a96cc2d1b378137550bbe4cf33c|2708249" + ], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--python-repos-find-links=\"['', '', ...]\""], - "env_var": "PANTS_PYTHON_REPOS_FIND_LINKS", + "display_args": ["--protoc-known-versions=\"['', '', ...]\""], + "env_var": "PANTS_PROTOC_KNOWN_VERSIONS", "fromfile": false, - "help": "URLs and/or file paths corresponding to pip's `--find-links` option.\n\nPer [pip's documentation](https://pip.pypa.io/en/stable/cli/pip_wheel/?highlight=find%20links#cmdoption-f), URLs should be to HTML files with links to `.whl` and/or sdist files. Local paths must be absolute, and can either be to an HTML file with links or to a directory with `.whl` and/or sdist files, e.g. `file:///Users/pantsbuild/prebuilt_wheels`.\n\nFor local paths, you may want to use the option `[python-repos].path_mappings`.", + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--python-repos-find-links"], + "scoped_cmd_line_args": ["--protoc-known-versions"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--find-links"], + "unscoped_cmd_line_args": ["--known-versions"], "value_history": { "ranked_values": [ { @@ -17106,158 +17109,180 @@ { "details": "", "rank": "HARDCODED", - "value": [] + "value": [ + "3.20.1|linux_arm64 |8a5a51876259f934cd2acc2bc59dba0e9a51bd631a5c37a4b9081d6e4dbc7591|1804837", + "3.20.1|linux_x86_64|3a0e900f9556fbcac4c3a913a00d07680f0fdf6b990a341462d822247b265562|1714731", + "3.20.1|macos_arm64 |b362acae78542872bb6aac8dba73aaf0dc6e94991b8b0a065d6c3e703fec2a8b|2708249", + "3.20.1|macos_x86_64|b4f36b18202d54d343a66eebc9f8ae60809a2a96cc2d1b378137550bbe4cf33c|2708249" + ] } ] } }, - "PANTS_PYTHON_REPOS_INDEXES": { + "PANTS_PROTOC_TAILOR": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--python-repos-indexes=\"['', '', ...]\"", - "config_key": "indexes", - "default": ["https://pypi.org/simple/"], + "comma_separated_display_args": "--[no-]protoc-tailor", + "config_key": "tailor", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--python-repos-indexes=\"['', '', ...]\""], - "env_var": "PANTS_PYTHON_REPOS_INDEXES", + "display_args": ["--[no-]protoc-tailor"], + "env_var": "PANTS_PROTOC_TAILOR", "fromfile": false, - "help": "URLs of [PEP-503 compatible](https://peps.python.org/pep-0503/) code repository indexes to look for requirements.\n\nIf set to an empty list, then Pex will use no indexes (meaning it will not use PyPI).", + "help": "If true, add `protobuf_sources` targets with the `tailor` goal.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--python-repos-indexes"], + "scoped_cmd_line_args": ["--protoc-tailor", "--no-protoc-tailor"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--indexes"], + "typ": "bool", + "unscoped_cmd_line_args": ["--tailor", "--no-tailor"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": ["https://pypi.org/simple/"] + "value": true } ] } }, - "PANTS_PYTHON_REPOS_PATH_MAPPINGS": { + "PANTS_PROTOC_URL_PLATFORM_MAPPING": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--python-repos-path-mappings=\"['', '', ...]\"", - "config_key": "path_mappings", - "default": [], + "comma_separated_display_args": "--protoc-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "url_platform_mapping", + "default": { + "linux_arm64": "linux-aarch_64", + "linux_x86_64": "linux-x86_64", + "macos_arm64": "osx-aarch_64", + "macos_x86_64": "osx-x86_64" + }, "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--python-repos-path-mappings=\"['', '', ...]\"" + "--protoc-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" ], - "env_var": "PANTS_PYTHON_REPOS_PATH_MAPPINGS", + "env_var": "PANTS_PROTOC_URL_PLATFORM_MAPPING", "fromfile": false, - "help": "Mappings to facilitate using local Python requirements when the absolute file paths are different on different users' machines. For example, the path `file:///Users/pantsbuild/prebuilt_wheels/django-3.1.1-py3-none-any.whl` could become `file://${WHEELS_DIR}/django-3.1.1-py3-none-any.whl`, where each user can configure what `WHEELS_DIR` points to on their machine.\n\nExpects values in the form `NAME|PATH`, e.g. `WHEELS_DIR|/Users/pantsbuild/prebuilt_wheels`. You can specify multiple entries in the list.\n\nThis feature is intended to be used with `[python-repos].find_links`, rather than PEP 440 direct reference requirements (see https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#local-requirements. `[python-repos].find_links` must be configured to a valid absolute path for the current machine.\n\nTip: you can avoid each user needing to manually configure this option and `[python-repos].find_links` by using a common file location, along with Pants's interpolation support (https://www.pantsbuild.org/v2.18/docs/options#config-file-interpolation. For example, in `pants.toml`, you could set both options to `%(buildroot)s/python_wheels` to point to the directory `python_wheels` in the root of your repository; or, use the path `%(env.HOME)s/pants_wheels` for the path `~/pants_wheels`. If you are not able to use a common path like this, then we recommend setting that each user set these options via a `.pants.rc` file (https://www.pantsbuild.org/v2.18/docs/options#pantsrc-file.\n\nNote: Only takes effect if using Pex lockfiles, i.e. using the `generate-lockfiles` goal.", + "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--python-repos-path-mappings"], + "scoped_cmd_line_args": ["--protoc-url-platform-mapping"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--path-mappings"], + "typ": "dict", + "unscoped_cmd_line_args": ["--url-platform-mapping"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": [] + "value": {} }, { "details": "", "rank": "HARDCODED", - "value": [] + "value": { + "linux_arm64": "linux-aarch_64", + "linux_x86_64": "linux-x86_64", + "macos_arm64": "osx-aarch_64", + "macos_x86_64": "osx-x86_64" + } } ] } }, - "PANTS_PYTHON_REPOS_REPOS": { + "PANTS_PROTOC_URL_TEMPLATE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--python-repos-repos=\"['', '', ...]\"", - "config_key": "repos", - "default": [], - "deprecated_message": "Deprecated, is scheduled to be removed in version: 3.0.0.dev0.", - "deprecation_active": true, - "display_args": ["--python-repos-repos=\"['', '', ...]\""], - "env_var": "PANTS_PYTHON_REPOS_REPOS", + "comma_separated_display_args": "--protoc-url-template=", + "config_key": "url_template", + "default": "https://github.com/protocolbuffers/protobuf/releases/download/v{version}/protoc-{version}-{platform}.zip", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--protoc-url-template="], + "env_var": "PANTS_PROTOC_URL_TEMPLATE", "fromfile": false, - "help": "URLs of code repositories to look for requirements. In Pip and Pex, this option corresponds to the `--find-links` option.", - "removal_hint": "A deprecated alias for `[python-repos].find_links`.", - "removal_version": "3.0.0.dev0", - "scoped_cmd_line_args": ["--python-repos-repos"], + "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--protoc-url-template"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--repos"], + "typ": "str", + "unscoped_cmd_line_args": ["--url-template"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": "https://github.com/protocolbuffers/protobuf/releases/download/v{version}/protoc-{version}-{platform}.zip" } ] } }, - "PANTS_PYTHON_REQUIREMENT_CONSTRAINTS": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--python-requirement-constraints=", - "config_key": "requirement_constraints", - "default": null, - "deprecated_message": "Deprecated, is scheduled to be removed in version: 3.0.0.dev0.", - "deprecation_active": true, - "display_args": ["--python-requirement-constraints="], - "env_var": "PANTS_PYTHON_REQUIREMENT_CONSTRAINTS", + "PANTS_PROTOC_USE_UNSUPPORTED_VERSION": { + "choices": ["error", "warning"], + "comma_separated_choices": "error, warning", + "comma_separated_display_args": "--protoc-use-unsupported-version=", + "config_key": "use_unsupported_version", + "default": "error", + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--protoc-use-unsupported-version=" + ], + "env_var": "PANTS_PROTOC_USE_UNSUPPORTED_VERSION", "fromfile": false, - "help": "When resolving third-party requirements for your own code (vs. tools you run), use this constraints file to determine which versions to use.\n\nMutually exclusive with `[python].enable_resolves`, which we generally recommend as an improvement over constraints file.\n\nSee https://pip.pypa.io/en/stable/user_guide/#constraints-files for more information on the format of constraint files and how constraints are applied in Pex and pip.\n\nThis only applies when resolving user requirements, rather than tools you run like Black and Pytest. To constrain tools, set `[tool].lockfile`, e.g. `[black].lockfile`.", - "removal_hint": "We encourage instead migrating to `[python].enable_resolves` and `[python].resolves`, which is an improvement over this option. The `[python].resolves` feature ensures that your lockfiles are fully comprehensive, i.e. include all transitive dependencies; uses hashes for better supply chain security; and supports advanced features like VCS and local requirements, along with options `[python].resolves_to_only_binary`.\n\nTo migrate, stop setting `[python].requirement_constraints` and `[python].resolve_all_constraints`, and instead set `[python].enable_resolves` to `true`. Then, run `scie-pants-linux-x86_64 generate-lockfiles`.", - "removal_version": "3.0.0.dev0", - "scoped_cmd_line_args": ["--python-requirement-constraints"], + "help": "\nWhat action to take in case the requested version of protoc is not supported.\n\nSupported protoc versions: unspecified\n", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--protoc-use-unsupported-version"], "target_field_name": null, - "typ": "file_option", - "unscoped_cmd_line_args": ["--requirement-constraints"], + "typ": "UnsupportedVersionUsage", + "unscoped_cmd_line_args": ["--use-unsupported-version"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "error" } ] } }, - "PANTS_PYTHON_RESOLVER_MANYLINUX": { + "PANTS_PROTOC_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--python-resolver-manylinux=", - "config_key": "resolver_manylinux", - "default": "manylinux2014", + "comma_separated_display_args": "--protoc-version=", + "config_key": "version", + "default": "3.20.1", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--python-resolver-manylinux="], - "env_var": "PANTS_PYTHON_RESOLVER_MANYLINUX", + "display_args": ["--protoc-version="], + "env_var": "PANTS_PROTOC_VERSION", "fromfile": false, - "help": "Whether to allow resolution of manylinux wheels when resolving requirements for foreign linux platforms. The value should be a manylinux platform upper bound, e.g. `'manylinux2010'`, or else the string `'no'` to disallow.", + "help": "Use this version of protoc.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--python-resolver-manylinux"], + "scoped_cmd_line_args": ["--protoc-version"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--resolver-manylinux"], + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { @@ -17268,74 +17293,121 @@ { "details": null, "rank": "HARDCODED", - "value": "manylinux2014" + "value": "3.20.1" } ] } }, - "PANTS_PYTHON_RESOLVES": { + "PANTS_PUBLISH_OUTPUT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--python-resolves=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "resolves", - "default": { - "python-default": "3rdparty/python/default.lock" - }, + "comma_separated_display_args": "--publish-output=", + "config_key": "output", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--python-resolves=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_PYTHON_RESOLVES", + "display_args": ["--publish-output="], + "env_var": "PANTS_PUBLISH_OUTPUT", "fromfile": false, - "help": "A mapping of logical names to lockfile paths used in your project.\n\nMany organizations only need a single resolve for their whole project, which is a good default and often the simplest thing to do. However, you may need multiple resolves, such as if you use two conflicting versions of a requirement in your repository.\n\nIf you only need a single resolve, run `scie-pants-linux-x86_64 generate-lockfiles` to generate the lockfile.\n\nIf you need multiple resolves:\n\n 1. Via this option, define multiple resolve names and their lockfile paths. The names should be meaningful to your repository, such as `data-science` or `pants-plugins`.\n 2. Set the default with `[python].default_resolve`.\n 3. Update your `python_requirement` targets with the `resolve` field to declare which resolve they should be available in. They default to `[python].default_resolve`, so you only need to update targets that you want in non-default resolves. (Often you'll set this via the `python_requirements` or `poetry_requirements` target generators)\n 4. Run `scie-pants-linux-x86_64 generate-lockfiles` to generate the lockfiles. If the results aren't what you'd expect, adjust the prior step.\n 5. Update any targets like `python_source` / `python_sources`, `python_test` / `python_tests`, and `pex_binary` which need to set a non-default resolve with the `resolve` field.\n\nIf a target can work with multiple resolves, you can either use the `parametrize` mechanism or manually create a distinct target per resolve. See https://www.pantsbuild.org/v2.18/docs/targets for information about `parametrize`.\n\nFor example:\n\n python_sources(\n resolve=parametrize(\"data-science\", \"web-app\"),\n )\n\nYou can name the lockfile paths what you would like; Pants does not expect a certain file extension or location.\n\nOnly applies if `[python].enable_resolves` is true.", + "help": "Filename for JSON structured publish information.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--python-resolves"], + "scoped_cmd_line_args": ["--publish-output"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--resolves"], + "typ": "str", + "unscoped_cmd_line_args": ["--output"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + "PANTS_PYDOCSTYLE_ARGS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pydocstyle-args=\"[, , ...]\"", + "config_key": "args", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--pydocstyle-args=\"[, , ...]\""], + "env_var": "PANTS_PYDOCSTYLE_ARGS", + "fromfile": false, + "help": "Arguments to pass directly to Pydocstyle, e.g. `--pydocstyle-args='--select=D101,D102'`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--pydocstyle-args"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": {} + "value": [] }, { "details": "", "rank": "HARDCODED", - "value": { - "python-default": "3rdparty/python/default.lock" - } + "value": [] } ] } }, - "PANTS_PYTHON_RESOLVES_GENERATE_LOCKFILES": { + "PANTS_PYDOCSTYLE_CONFIG": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]python-resolves-generate-lockfiles", - "config_key": "resolves_generate_lockfiles", + "comma_separated_display_args": "--pydocstyle-config=", + "config_key": "config", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--pydocstyle-config="], + "env_var": "PANTS_PYDOCSTYLE_CONFIG", + "fromfile": false, + "help": "Path to a Pydocstyle config file (http://www.pydocstyle.org/en/stable/usage.html#configuration-files).", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--pydocstyle-config"], + "target_field_name": null, + "typ": "file_option", + "unscoped_cmd_line_args": ["--config"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + "PANTS_PYDOCSTYLE_CONFIG_DISCOVERY": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]pydocstyle-config-discovery", + "config_key": "config_discovery", "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]python-resolves-generate-lockfiles"], - "env_var": "PANTS_PYTHON_RESOLVES_GENERATE_LOCKFILES", + "display_args": ["--[no-]pydocstyle-config-discovery"], + "env_var": "PANTS_PYDOCSTYLE_CONFIG_DISCOVERY", "fromfile": false, - "help": "If False, Pants will not attempt to generate lockfiles for `[python].resolves` when running the `generate-lockfiles` goal.\n\nThis is intended to allow you to manually generate lockfiles for your own code, rather than using Pex lockfiles. For example, when adopting Pants in a project already using Poetry, you can use `poetry export --dev` to create a requirements.txt-style lockfile understood by Pants, then point `[python].resolves` to the file.\n\nIf you set this to False, Pants will not attempt to validate the metadata headers for your user lockfiles. This is useful so that you can keep `[python].invalid_lockfile_behavior` to `error` or `warn` if you'd like so that tool lockfiles continue to be validated, while user lockfiles are skipped.\n\nWarning: it will likely be slower to install manually generated user lockfiles than Pex ones because Pants cannot as efficiently extract the subset of requirements used for a particular task. See the option `[python].run_against_entire_lockfile`.", + "help": "If true, Pants will include any relevant config files during runs (`setup.cfg`, `tox.ini`, `.pydocstyle`, `.pydocstyle.ini`, `.pydocstylerc`, `.pydocstylerc.ini`, and `pyproject.toml`) searching for the configuration file in this particular order.\n\nPlease note that even though `pydocstyle` keeps looking for a configuration file up the directory tree until one is found, Pants will only search for the config files in the repository root (from where you would normally run the `` command).\n\nUse `[pydocstyle].config` instead if your config is in a non-standard location.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--python-resolves-generate-lockfiles", - "--no-python-resolves-generate-lockfiles" + "--pydocstyle-config-discovery", + "--no-pydocstyle-config-discovery" ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": [ - "--resolves-generate-lockfiles", - "--no-resolves-generate-lockfiles" - ], + "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], "value_history": { "ranked_values": [ { @@ -17351,209 +17423,181 @@ ] } }, - "PANTS_PYTHON_RESOLVES_TO_CONSTRAINTS_FILE": { + "PANTS_PYDOCSTYLE_CONSOLE_SCRIPT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--python-resolves-to-constraints-file=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "resolves_to_constraints_file", - "default": {}, + "comma_separated_display_args": "--pydocstyle-console-script=", + "config_key": "console_script", + "default": "pydocstyle", "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--python-resolves-to-constraints-file=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_PYTHON_RESOLVES_TO_CONSTRAINTS_FILE", + "display_args": ["--pydocstyle-console-script="], + "env_var": "PANTS_PYDOCSTYLE_CONSOLE_SCRIPT", "fromfile": false, - "help": "When generating a resolve's lockfile, use a constraints file to pin the version of certain requirements. This is particularly useful to pin the versions of transitive dependencies of your direct requirements.\n\nSee https://pip.pypa.io/en/stable/user_guide/#constraints-files for more information on the format of constraint files and how constraints are applied in Pex and pip.\n\nExpects a dictionary of resolve names from `[python].resolves` and Python tools (e.g. `black` and `pytest`) to file paths for constraints files. For example, `{'data-science': '3rdparty/data-science-constraints.txt'}`. If a resolve is not set in the dictionary, it will not use a constraints file.\n\nYou can use the key `__default__` to set a default value for all resolves.", + "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--python-resolves-to-constraints-file"], + "scoped_cmd_line_args": ["--pydocstyle-console-script"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--resolves-to-constraints-file"], + "typ": "str", + "unscoped_cmd_line_args": ["--console-script"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": {} + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": {} + "value": "pydocstyle" } ] } }, - "PANTS_PYTHON_RESOLVES_TO_INTERPRETER_CONSTRAINTS": { + "PANTS_PYDOCSTYLE_ENTRY_POINT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--python-resolves-to-interpreter-constraints=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "resolves_to_interpreter_constraints", - "default": {}, + "comma_separated_display_args": "--pydocstyle-entry-point=", + "config_key": "entry_point", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--python-resolves-to-interpreter-constraints=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_PYTHON_RESOLVES_TO_INTERPRETER_CONSTRAINTS", + "display_args": ["--pydocstyle-entry-point="], + "env_var": "PANTS_PYDOCSTYLE_ENTRY_POINT", "fromfile": false, - "help": "Override the interpreter constraints to use when generating a resolve's lockfile with the `generate-lockfiles` goal.\n\nBy default, each resolve from `[python].resolves` will use your global interpreter constraints set in `[python].interpreter_constraints`. With this option, you can override each resolve to use certain interpreter constraints, such as `{'data-science': ['==3.8.*']}`.\n\nWarning: this does NOT impact the interpreter constraints used by targets within the resolve, which is instead set by the option `[python].interpreter_constraints` and the `interpreter_constraints` field. It only impacts how the lockfile is generated.\n\nPants will validate that the interpreter constraints of your code using a resolve are compatible with that resolve's own constraints. For example, if your code is set to use `['==3.9.*']` via the `interpreter_constraints` field, but it's using a resolve whose interpreter constraints are set to `['==3.7.*']`, then Pants will error explaining the incompatibility.\n\nThe keys must be defined as resolves in `[python].resolves`.", + "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--python-resolves-to-interpreter-constraints"], + "scoped_cmd_line_args": ["--pydocstyle-entry-point"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--resolves-to-interpreter-constraints"], + "typ": "str", + "unscoped_cmd_line_args": ["--entry-point"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": {} - }, - { - "details": "", - "rank": "HARDCODED", - "value": {} + "value": null } ] } }, - "PANTS_PYTHON_RESOLVES_TO_NO_BINARY": { + "PANTS_PYDOCSTYLE_INSTALL_FROM_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--python-resolves-to-no-binary=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "resolves_to_no_binary", - "default": {}, + "comma_separated_display_args": "--pydocstyle-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--python-resolves-to-no-binary=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_PYTHON_RESOLVES_TO_NO_BINARY", + "display_args": ["--pydocstyle-install-from-resolve="], + "env_var": "PANTS_PYDOCSTYLE_INSTALL_FROM_RESOLVE", "fromfile": false, - "help": "When generating a resolve's lockfile, do not use binary packages (i.e. wheels) for these 3rdparty project names.\n\nExpects a dictionary of resolve names from `[python].resolves` and Python tools (e.g. `black` and `pytest`) to lists of project names. For example, `{'data-science': ['requests', 'numpy']}`. If a resolve is not set in the dictionary, it will have no restrictions on binary packages.\n\nYou can use the key `__default__` to set a default value for all resolves.\n\nFor each resolve, you can also use the value `:all:` to disable all binary packages: `{'data-science': [':all:']}`.\n\nNote that some packages are tricky to compile and may fail to install when this option is used on them. See https://pip.pypa.io/en/stable/cli/pip_install/#install-no-binary for details.", + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `pydocstyle` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--python-resolves-to-no-binary"], + "scoped_cmd_line_args": ["--pydocstyle-install-from-resolve"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--resolves-to-no-binary"], + "typ": "str", + "unscoped_cmd_line_args": ["--install-from-resolve"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": {} - }, - { - "details": "", - "rank": "HARDCODED", - "value": {} + "value": null } ] } }, - "PANTS_PYTHON_RESOLVES_TO_ONLY_BINARY": { + "PANTS_PYDOCSTYLE_INTERPRETER_CONSTRAINTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--python-resolves-to-only-binary=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "resolves_to_only_binary", - "default": {}, + "comma_separated_display_args": "--pydocstyle-interpreter-constraints=\"['', '', ...]\"", + "config_key": "interpreter_constraints", + "default": ["CPython>=3.7,<4"], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--python-resolves-to-only-binary=\"{'key1': val1, 'key2': val2, ...}\"" + "--pydocstyle-interpreter-constraints=\"['', '', ...]\"" ], - "env_var": "PANTS_PYTHON_RESOLVES_TO_ONLY_BINARY", + "env_var": "PANTS_PYDOCSTYLE_INTERPRETER_CONSTRAINTS", "fromfile": false, - "help": "When generating a resolve's lockfile, do not use source packages (i.e. sdists) for these 3rdparty project names, e.g `['django', 'requests']`.\n\nExpects a dictionary of resolve names from `[python].resolves` and Python tools (e.g. `black` and `pytest`) to lists of project names. For example, `{'data-science': ['requests', 'numpy']}`. If a resolve is not set in the dictionary, it will have no restrictions on source packages.\n\nYou can use the key `__default__` to set a default value for all resolves.\n\nFor each resolve you can use the value `:all:` to disable all source packages: `{'data-science': [':all:']}`.\n\nPackages without binary distributions will fail to install when this option is used on them. See https://pip.pypa.io/en/stable/cli/pip_install/#install-only-binary for details.", + "help": "Python interpreter constraints for this tool.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--python-resolves-to-only-binary"], + "scoped_cmd_line_args": ["--pydocstyle-interpreter-constraints"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--resolves-to-only-binary"], + "typ": "list", + "unscoped_cmd_line_args": ["--interpreter-constraints"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": {} + "value": [] }, { "details": "", "rank": "HARDCODED", - "value": {} + "value": ["CPython>=3.7,<4"] } ] } }, - "PANTS_PYTHON_RESOLVE_ALL_CONSTRAINTS": { + "PANTS_PYDOCSTYLE_REQUIREMENTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]python-resolve-all-constraints", - "config_key": "resolve_all_constraints", - "default": true, - "deprecated_message": "Deprecated, is scheduled to be removed in version: 3.0.0.dev0.", - "deprecation_active": true, - "display_args": ["--[no-]python-resolve-all-constraints"], - "env_var": "PANTS_PYTHON_RESOLVE_ALL_CONSTRAINTS", + "comma_separated_display_args": "--pydocstyle-requirements=\"['', '', ...]\"", + "config_key": "requirements", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--pydocstyle-requirements=\"['', '', ...]\""], + "env_var": "PANTS_PYDOCSTYLE_REQUIREMENTS", "fromfile": false, - "help": "(Only relevant when using `[python].requirement_constraints.`) If enabled, when resolving requirements, Pants will first resolve your entire constraints file as a single global resolve. Then, if the code uses a subset of your constraints file, Pants will extract the relevant requirements from that global resolve so that only what's actually needed gets used. If disabled, Pants will not use a global resolve and will resolve each subset of your requirements independently.\n\nUsually this option should be enabled because it can result in far fewer resolves.", - "removal_hint": "We encourage instead migrating to `[python].enable_resolves` and `[python].resolves`, which is an improvement over this option. The `[python].resolves` feature ensures that your lockfiles are fully comprehensive, i.e. include all transitive dependencies; uses hashes for better supply chain security; and supports advanced features like VCS and local requirements, along with options `[python].resolves_to_only_binary`.\n\nTo migrate, stop setting `[python].requirement_constraints` and `[python].resolve_all_constraints`, and instead set `[python].enable_resolves` to `true`. Then, run `scie-pants-linux-x86_64 generate-lockfiles`.", - "removal_version": "3.0.0.dev0", - "scoped_cmd_line_args": [ - "--python-resolve-all-constraints", - "--no-python-resolve-all-constraints" - ], + "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--pydocstyle-requirements"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--resolve-all-constraints", - "--no-resolve-all-constraints" - ], + "typ": "list", + "unscoped_cmd_line_args": ["--requirements"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": true + "value": [] } ] } }, - "PANTS_PYTHON_RUN_AGAINST_ENTIRE_LOCKFILE": { + "PANTS_PYDOCSTYLE_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]python-run-against-entire-lockfile", - "config_key": "run_against_entire_lockfile", + "comma_separated_display_args": "--[no-]pydocstyle-skip", + "config_key": "skip", "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]python-run-against-entire-lockfile"], - "env_var": "PANTS_PYTHON_RUN_AGAINST_ENTIRE_LOCKFILE", + "display_args": ["--[no-]pydocstyle-skip"], + "env_var": "PANTS_PYDOCSTYLE_SKIP", "fromfile": false, - "help": "If enabled, when running binaries, tests, and repls, Pants will use the entire lockfile file instead of just the relevant subset.\n\nIf you are using Pex lockfiles, we generally do not recommend this. You will already get similar performance benefits to this option, without the downsides.\n\nOtherwise, this option can improve performance and reduce cache size. But it has two consequences: 1) All cached test results will be invalidated if any requirement in the lockfile\n changes, rather than just those that depend on the changed requirement.\n2) Requirements unneeded by a test/run/repl will be present on the sys.path, which\n might in rare cases cause their behavior to change.\n\nThis option does not affect packaging deployable artifacts, such as PEX files, wheels and cloud functions, which will still use just the exact subset of requirements needed.", + "help": "If true, don't use Pydocstyle when running `pants lint`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--python-run-against-entire-lockfile", - "--no-python-run-against-entire-lockfile" - ], + "scoped_cmd_line_args": ["--pydocstyle-skip", "--no-pydocstyle-skip"], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": [ - "--run-against-entire-lockfile", - "--no-run-against-entire-lockfile" - ], + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -17569,147 +17613,136 @@ ] } }, - "PANTS_PYTHON_TAILOR_IGNORE_EMPTY_INIT_FILES": { + "PANTS_PYENV_PYTHON_PROVIDER_INSTALLATION_EXTRA_ENV_VARS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]python-tailor-ignore-empty-init-files", - "config_key": "tailor_ignore_empty_init_files", - "default": true, + "comma_separated_display_args": "--pyenv-python-provider-installation-extra-env-vars=\"['', '', ...]\"", + "config_key": "installation_extra_env_vars", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]python-tailor-ignore-empty-init-files"], - "env_var": "PANTS_PYTHON_TAILOR_IGNORE_EMPTY_INIT_FILES", + "display_args": [ + "--pyenv-python-provider-installation-extra-env-vars=\"['', '', ...]\"" + ], + "env_var": "PANTS_PYENV_PYTHON_PROVIDER_INSTALLATION_EXTRA_ENV_VARS", "fromfile": false, - "help": "If true, don't add `python_sources` targets for `__init__.py` files that are both empty and where there are no other Python files in the directory.\n\nEmpty and solitary `__init__.py` files usually exist as import scaffolding rather than true library code, so it can be noisy to add BUILD files.\n\nEven if this option is set to true, Pants will still ensure the empty `__init__.py` files are included in the sandbox when running processes.\n\nIf you set to false, you may also want to set `[python-infer].init_files = \"always\"`.", + "help": "Additional environment variables to include when running `pyenv install`.\n\nEntries are strings in the form `ENV_VAR=value` to use explicitly; or just `ENV_VAR` to copy the value of a variable in Pants's own environment.\n\nThis is especially useful if you want to use an optimized Python (E.g. setting `PYTHON_CONFIGURE_OPTS='--enable-optimizations --with-lto'` and `PYTHON_CFLAGS='-march=native -mtune=native'`) or need custom compiler flags.\n\nNote that changes to this option result in a different fingerprint for the installed Python, and therefore will cause a full re-install if changed.\n\nSee https://github.com/pyenv/pyenv/blob/master/plugins/python-build/README.md#special-environment-variables for supported env vars.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--python-tailor-ignore-empty-init-files", - "--no-python-tailor-ignore-empty-init-files" - ], - "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--tailor-ignore-empty-init-files", - "--no-tailor-ignore-empty-init-files" + "--pyenv-python-provider-installation-extra-env-vars" ], + "target_field_name": "pyenv_python_provider_installation_extra_env_vars", + "typ": "list", + "unscoped_cmd_line_args": ["--installation-extra-env-vars"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": true + "value": [] } ] } }, - "PANTS_PYTHON_TAILOR_PEX_BINARY_TARGETS": { + "PANTS_PYENV_PYTHON_PROVIDER_KNOWN_VERSIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]python-tailor-pex-binary-targets", - "config_key": "tailor_pex_binary_targets", - "default": false, + "comma_separated_display_args": "--pyenv-python-provider-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", + "default": [ + "2.3.13|macos_arm64|9105de5e5cf8dc0eca2a520ed04493d183128d46a2cfb402d4cc271af1bf144b|749323", + "2.3.13|macos_x86_64|9105de5e5cf8dc0eca2a520ed04493d183128d46a2cfb402d4cc271af1bf144b|749323", + "2.3.13|linux_x86_64|9105de5e5cf8dc0eca2a520ed04493d183128d46a2cfb402d4cc271af1bf144b|749323", + "2.3.13|linux_arm64|9105de5e5cf8dc0eca2a520ed04493d183128d46a2cfb402d4cc271af1bf144b|749323" + ], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]python-tailor-pex-binary-targets"], - "env_var": "PANTS_PYTHON_TAILOR_PEX_BINARY_TARGETS", + "display_args": [ + "--pyenv-python-provider-known-versions=\"['', '', ...]\"" + ], + "env_var": "PANTS_PYENV_PYTHON_PROVIDER_KNOWN_VERSIONS", "fromfile": false, - "help": "If true, add `pex_binary` targets for Python files named `__main__.py` or with a `__main__` clause with the `tailor` goal.", + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--python-tailor-pex-binary-targets", - "--no-python-tailor-pex-binary-targets" - ], + "scoped_cmd_line_args": ["--pyenv-python-provider-known-versions"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--tailor-pex-binary-targets", - "--no-tailor-pex-binary-targets" - ], + "typ": "list", + "unscoped_cmd_line_args": ["--known-versions"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": [ + "2.3.13|macos_arm64|9105de5e5cf8dc0eca2a520ed04493d183128d46a2cfb402d4cc271af1bf144b|749323", + "2.3.13|macos_x86_64|9105de5e5cf8dc0eca2a520ed04493d183128d46a2cfb402d4cc271af1bf144b|749323", + "2.3.13|linux_x86_64|9105de5e5cf8dc0eca2a520ed04493d183128d46a2cfb402d4cc271af1bf144b|749323", + "2.3.13|linux_arm64|9105de5e5cf8dc0eca2a520ed04493d183128d46a2cfb402d4cc271af1bf144b|749323" + ] } ] } }, - "PANTS_PYTHON_TAILOR_PY_TYPED_TARGETS": { + "PANTS_PYENV_PYTHON_PROVIDER_URL_PLATFORM_MAPPING": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]python-tailor-py-typed-targets", - "config_key": "tailor_py_typed_targets", - "default": true, + "comma_separated_display_args": "--pyenv-python-provider-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "url_platform_mapping", + "default": {}, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]python-tailor-py-typed-targets"], - "env_var": "PANTS_PYTHON_TAILOR_PY_TYPED_TARGETS", + "display_args": [ + "--pyenv-python-provider-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_PYENV_PYTHON_PROVIDER_URL_PLATFORM_MAPPING", "fromfile": false, - "help": "If true, add `resource` targets for marker files named `py.typed` with the `tailor` goal.", + "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--python-tailor-py-typed-targets", - "--no-python-tailor-py-typed-targets" - ], + "scoped_cmd_line_args": ["--pyenv-python-provider-url-platform-mapping"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--tailor-py-typed-targets", - "--no-tailor-py-typed-targets" - ], + "typ": "dict", + "unscoped_cmd_line_args": ["--url-platform-mapping"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": true + "value": {} } ] } }, - "PANTS_PYTHON_TAILOR_REQUIREMENTS_TARGETS": { + "PANTS_PYENV_PYTHON_PROVIDER_URL_TEMPLATE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]python-tailor-requirements-targets", - "config_key": "tailor_requirements_targets", - "default": true, + "comma_separated_display_args": "--pyenv-python-provider-url-template=", + "config_key": "url_template", + "default": "https://github.com/pyenv/pyenv/archive/refs/tags/v{version}.tar.gz", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]python-tailor-requirements-targets"], - "env_var": "PANTS_PYTHON_TAILOR_REQUIREMENTS_TARGETS", + "display_args": ["--pyenv-python-provider-url-template="], + "env_var": "PANTS_PYENV_PYTHON_PROVIDER_URL_TEMPLATE", "fromfile": false, - "help": "If true, add `python_requirements`, `poetry_requirements`, and `pipenv_requirements` target generators with the `tailor` goal.\n\n`python_requirements` targets are added for any file that matches the pattern `*requirements*.txt`. You will need to manually add `python_requirements` for different file names like `reqs.txt`.\n\n`poetry_requirements` targets are added for `pyproject.toml` files with `[tool.poetry` in them.", + "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--python-tailor-requirements-targets", - "--no-python-tailor-requirements-targets" - ], + "scoped_cmd_line_args": ["--pyenv-python-provider-url-template"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--tailor-requirements-targets", - "--no-tailor-requirements-targets" - ], + "typ": "str", + "unscoped_cmd_line_args": ["--url-template"], "value_history": { "ranked_values": [ { @@ -17720,35 +17753,33 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": "https://github.com/pyenv/pyenv/archive/refs/tags/v{version}.tar.gz" } ] } }, - "PANTS_PYTHON_TAILOR_SOURCE_TARGETS": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]python-tailor-source-targets", - "config_key": "tailor_source_targets", - "default": true, + "PANTS_PYENV_PYTHON_PROVIDER_USE_UNSUPPORTED_VERSION": { + "choices": ["error", "warning"], + "comma_separated_choices": "error, warning", + "comma_separated_display_args": "--pyenv-python-provider-use-unsupported-version=", + "config_key": "use_unsupported_version", + "default": "error", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]python-tailor-source-targets"], - "env_var": "PANTS_PYTHON_TAILOR_SOURCE_TARGETS", + "display_args": [ + "--pyenv-python-provider-use-unsupported-version=" + ], + "env_var": "PANTS_PYENV_PYTHON_PROVIDER_USE_UNSUPPORTED_VERSION", "fromfile": false, - "help": "If true, add `python_sources`, `python_tests`, and `python_test_utils` targets with the `tailor` goal.", + "help": "\nWhat action to take in case the requested version of pyenv is not supported.\n\nSupported pyenv versions: unspecified\n", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--python-tailor-source-targets", - "--no-python-tailor-source-targets" + "--pyenv-python-provider-use-unsupported-version" ], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--tailor-source-targets", - "--no-tailor-source-targets" - ], + "typ": "UnsupportedVersionUsage", + "unscoped_cmd_line_args": ["--use-unsupported-version"], "value_history": { "ranked_values": [ { @@ -17759,35 +17790,29 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": "error" } ] } }, - "PANTS_PYTHON_THRIFT_INFER_RUNTIME_DEPENDENCY": { + "PANTS_PYENV_PYTHON_PROVIDER_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]python-thrift-infer-runtime-dependency", - "config_key": "infer_runtime_dependency", - "default": true, + "comma_separated_display_args": "--pyenv-python-provider-version=", + "config_key": "version", + "default": "2.3.13", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]python-thrift-infer-runtime-dependency"], - "env_var": "PANTS_PYTHON_THRIFT_INFER_RUNTIME_DEPENDENCY", + "display_args": ["--pyenv-python-provider-version="], + "env_var": "PANTS_PYENV_PYTHON_PROVIDER_VERSION", "fromfile": false, - "help": "If True, will add a dependency on a `python_requirement` target exposing the `thrift` module (usually from the `thrift` requirement).\n\nIf `[python].enable_resolves` is set, Pants will only infer dependencies on `python_requirement` targets that use the same resolve as the particular `thrift_source` / `thrift_source` target uses, which is set via its `python_resolve` field.\n\nUnless this option is disabled, Pants will error if no relevant target is found or more than one is found which causes ambiguity.", + "help": "Use this version of pyenv.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--python-thrift-infer-runtime-dependency", - "--no-python-thrift-infer-runtime-dependency" - ], + "scoped_cmd_line_args": ["--pyenv-python-provider-version"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--infer-runtime-dependency", - "--no-infer-runtime-dependency" - ], + "typ": "str", + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { @@ -17798,29 +17823,29 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": "2.3.13" } ] } }, - "PANTS_PYTHON_THRIFT_OPTIONS": { + "PANTS_PYLINT_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--python-thrift-options=\"['', '', ...]\"", - "config_key": "options", + "comma_separated_display_args": "--pylint-args=\"[, , ...]\"", + "config_key": "args", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--python-thrift-options=\"['', '', ...]\""], - "env_var": "PANTS_PYTHON_THRIFT_OPTIONS", + "display_args": ["--pylint-args=\"[, , ...]\""], + "env_var": "PANTS_PYLINT_ARGS", "fromfile": false, - "help": "Code generation options specific to the Python code generator to pass to the Apache `thift` binary via the `-gen py` argument. See `thrift -help` for supported values.", + "help": "Arguments to pass directly to Pylint, e.g. `--pylint-args='--ignore=foo.py,bar.py --disable=C0330,W0311'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--python-thrift-options"], + "scoped_cmd_line_args": ["--pylint-args"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--options"], + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { @@ -17836,82 +17861,85 @@ ] } }, - "PANTS_PYTYPE_ARGS": { + "PANTS_PYLINT_CONFIG": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pytype-args=\"[, , ...]\"", - "config_key": "args", - "default": [], + "comma_separated_display_args": "--pylint-config=", + "config_key": "config", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pytype-args=\"[, , ...]\""], - "env_var": "PANTS_PYTYPE_ARGS", + "display_args": ["--pylint-config="], + "env_var": "PANTS_PYLINT_CONFIG", "fromfile": false, - "help": "Arguments to pass directly to Pytype, e.g. `--pytype-args='--version'`.", + "help": "Path to a config file understood by Pylint (http://pylint.pycqa.org/en/latest/user_guide/run.html#command-line-options).\n\nSetting this option will disable `[pylint].config_discovery`. Use this option if the config is located in a non-standard location.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pytype-args"], + "scoped_cmd_line_args": ["--pylint-config"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "typ": "file_option", + "unscoped_cmd_line_args": ["--config"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] - }, - { - "details": "", - "rank": "HARDCODED", - "value": [] + "value": null } ] } }, - "PANTS_PYTYPE_CONFIG": { + "PANTS_PYLINT_CONFIG_DISCOVERY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pytype-config=", - "config_key": "config", - "default": null, + "comma_separated_display_args": "--[no-]pylint-config-discovery", + "config_key": "config_discovery", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pytype-config="], - "env_var": "PANTS_PYTYPE_CONFIG", + "display_args": ["--[no-]pylint-config-discovery"], + "env_var": "PANTS_PYLINT_CONFIG_DISCOVERY", "fromfile": false, - "help": "Path to an toml config file understood by Pytype (https://github.com/google/pytype#config-file).", + "help": "If true, Pants will include any relevant config files during runs (`.pylintrc`, `pylintrc`, `pyproject.toml`, and `setup.cfg`).\n\nUse `[pylint].config` instead if your config is in a non-standard location.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pytype-config"], + "scoped_cmd_line_args": [ + "--pylint-config-discovery", + "--no-pylint-config-discovery" + ], "target_field_name": null, - "typ": "file_option", - "unscoped_cmd_line_args": ["--config"], + "typ": "bool", + "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true } ] } }, - "PANTS_PYTYPE_CONSOLE_SCRIPT": { + "PANTS_PYLINT_CONSOLE_SCRIPT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pytype-console-script=", + "comma_separated_display_args": "--pylint-console-script=", "config_key": "console_script", - "default": "pytype", + "default": "pylint", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pytype-console-script="], - "env_var": "PANTS_PYTYPE_CONSOLE_SCRIPT", + "display_args": ["--pylint-console-script="], + "env_var": "PANTS_PYLINT_CONSOLE_SCRIPT", "fromfile": false, "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pytype-console-script"], + "scoped_cmd_line_args": ["--pylint-console-script"], "target_field_name": null, "typ": "str", "unscoped_cmd_line_args": ["--console-script"], @@ -17925,26 +17953,26 @@ { "details": null, "rank": "HARDCODED", - "value": "pytype" + "value": "pylint" } ] } }, - "PANTS_PYTYPE_ENTRY_POINT": { + "PANTS_PYLINT_ENTRY_POINT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pytype-entry-point=", + "comma_separated_display_args": "--pylint-entry-point=", "config_key": "entry_point", "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pytype-entry-point="], - "env_var": "PANTS_PYTYPE_ENTRY_POINT", + "display_args": ["--pylint-entry-point="], + "env_var": "PANTS_PYLINT_ENTRY_POINT", "fromfile": false, "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pytype-entry-point"], + "scoped_cmd_line_args": ["--pylint-entry-point"], "target_field_name": null, "typ": "str", "unscoped_cmd_line_args": ["--entry-point"], @@ -17958,21 +17986,21 @@ ] } }, - "PANTS_PYTYPE_INSTALL_FROM_RESOLVE": { + "PANTS_PYLINT_INSTALL_FROM_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pytype-install-from-resolve=", + "comma_separated_display_args": "--pylint-install-from-resolve=", "config_key": "install_from_resolve", "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pytype-install-from-resolve="], - "env_var": "PANTS_PYTYPE_INSTALL_FROM_RESOLVE", + "display_args": ["--pylint-install-from-resolve="], + "env_var": "PANTS_PYLINT_INSTALL_FROM_RESOLVE", "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `pytype` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `pylint` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pytype-install-from-resolve"], + "scoped_cmd_line_args": ["--pylint-install-from-resolve"], "target_field_name": null, "typ": "str", "unscoped_cmd_line_args": ["--install-from-resolve"], @@ -17986,26 +18014,24 @@ ] } }, - "PANTS_PYTYPE_INTERPRETER_CONSTRAINTS": { + "PANTS_PYLINT_REQUIREMENTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pytype-interpreter-constraints=\"['', '', ...]\"", - "config_key": "interpreter_constraints", - "default": ["CPython>=3.7,<3.10"], + "comma_separated_display_args": "--pylint-requirements=\"['', '', ...]\"", + "config_key": "requirements", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--pytype-interpreter-constraints=\"['', '', ...]\"" - ], - "env_var": "PANTS_PYTYPE_INTERPRETER_CONSTRAINTS", + "display_args": ["--pylint-requirements=\"['', '', ...]\""], + "env_var": "PANTS_PYLINT_REQUIREMENTS", "fromfile": false, - "help": "Python interpreter constraints for this tool.", + "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pytype-interpreter-constraints"], + "scoped_cmd_line_args": ["--pylint-requirements"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--interpreter-constraints"], + "unscoped_cmd_line_args": ["--requirements"], "value_history": { "ranked_values": [ { @@ -18016,92 +18042,94 @@ { "details": "", "rank": "HARDCODED", - "value": ["CPython>=3.7,<3.10"] + "value": [] } ] } }, - "PANTS_PYTYPE_REQUIREMENTS": { + "PANTS_PYLINT_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pytype-requirements=\"['', '', ...]\"", - "config_key": "requirements", - "default": [], + "comma_separated_display_args": "--[no-]pylint-skip", + "config_key": "skip", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pytype-requirements=\"['', '', ...]\""], - "env_var": "PANTS_PYTYPE_REQUIREMENTS", + "display_args": ["--[no-]pylint-skip"], + "env_var": "PANTS_PYLINT_SKIP", "fromfile": false, - "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "help": "If true, don't use Pylint when running `pants lint`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pytype-requirements"], + "scoped_cmd_line_args": ["--pylint-skip", "--no-pylint-skip"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--requirements"], + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": false } ] } }, - "PANTS_PYTYPE_SKIP": { + "PANTS_PYLINT_SOURCE_PLUGINS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]pytype-skip", - "config_key": "skip", - "default": false, + "comma_separated_display_args": "--pylint-source-plugins=\"[, , ...]\"", + "config_key": "source_plugins", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]pytype-skip"], - "env_var": "PANTS_PYTYPE_SKIP", + "display_args": [ + "--pylint-source-plugins=\"[, , ...]\"" + ], + "env_var": "PANTS_PYLINT_SOURCE_PLUGINS", "fromfile": false, - "help": "If true, don't use Pytype when running `scie-pants-linux-x86_64 check`.", + "help": "An optional list of `python_sources` target addresses to load first-party plugins.\n\nYou must set the plugin's parent directory as a source root. For example, if your plugin is at `build-support/pylint/custom_plugin.py`, add `'build-support/pylint'` to `[source].root_patterns` in `pants.toml`. This is necessary for Pants to know how to tell Pylint to discover your plugin. See https://www.pantsbuild.org/v2.18/docs/source-roots\n\nYou must also set `load-plugins=$module_name` in your Pylint config file.\n\nWhile your plugin's code can depend on other first-party code and third-party requirements, all first-party dependencies of the plugin must live in the same directory or a subdirectory.\n\nTo instead load third-party plugins, add them to a custom resolve alongside pylint itself, as described in https://www.pantsbuild.org/v2.18/docs/python-lockfiles#lockfiles-for-tools.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pytype-skip", "--no-pytype-skip"], + "scoped_cmd_line_args": ["--pylint-source-plugins"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "typ": "list", + "unscoped_cmd_line_args": ["--source-plugins"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": [] } ] } }, - "PANTS_PYUPGRADE_ARGS": { + "PANTS_PYOXIDIZER_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pyupgrade-args=\"[, , ...]\"", + "comma_separated_display_args": "--pyoxidizer-args=\"[, , ...]\"", "config_key": "args", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pyupgrade-args=\"[, , ...]\""], - "env_var": "PANTS_PYUPGRADE_ARGS", + "display_args": ["--pyoxidizer-args=\"[, , ...]\""], + "env_var": "PANTS_PYOXIDIZER_ARGS", "fromfile": false, - "help": "Arguments to pass directly to pyupgrade, e.g. `--pyupgrade-args='--py39-plus --keep-runtime-typing'`.", + "help": "Arguments to pass directly to PyOxidizer, e.g. `--pyoxidizer-args='--release'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pyupgrade-args"], + "scoped_cmd_line_args": ["--pyoxidizer-args"], "target_field_name": null, "typ": "list", "unscoped_cmd_line_args": ["--args"], @@ -18120,21 +18148,21 @@ ] } }, - "PANTS_PYUPGRADE_CONSOLE_SCRIPT": { + "PANTS_PYOXIDIZER_CONSOLE_SCRIPT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pyupgrade-console-script=", + "comma_separated_display_args": "--pyoxidizer-console-script=", "config_key": "console_script", - "default": "pyupgrade", + "default": "pyoxidizer", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pyupgrade-console-script="], - "env_var": "PANTS_PYUPGRADE_CONSOLE_SCRIPT", + "display_args": ["--pyoxidizer-console-script="], + "env_var": "PANTS_PYOXIDIZER_CONSOLE_SCRIPT", "fromfile": false, "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pyupgrade-console-script"], + "scoped_cmd_line_args": ["--pyoxidizer-console-script"], "target_field_name": null, "typ": "str", "unscoped_cmd_line_args": ["--console-script"], @@ -18148,26 +18176,26 @@ { "details": null, "rank": "HARDCODED", - "value": "pyupgrade" + "value": "pyoxidizer" } ] } }, - "PANTS_PYUPGRADE_ENTRY_POINT": { + "PANTS_PYOXIDIZER_ENTRY_POINT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pyupgrade-entry-point=", + "comma_separated_display_args": "--pyoxidizer-entry-point=", "config_key": "entry_point", "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pyupgrade-entry-point="], - "env_var": "PANTS_PYUPGRADE_ENTRY_POINT", + "display_args": ["--pyoxidizer-entry-point="], + "env_var": "PANTS_PYOXIDIZER_ENTRY_POINT", "fromfile": false, "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pyupgrade-entry-point"], + "scoped_cmd_line_args": ["--pyoxidizer-entry-point"], "target_field_name": null, "typ": "str", "unscoped_cmd_line_args": ["--entry-point"], @@ -18181,21 +18209,21 @@ ] } }, - "PANTS_PYUPGRADE_INSTALL_FROM_RESOLVE": { + "PANTS_PYOXIDIZER_INSTALL_FROM_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pyupgrade-install-from-resolve=", + "comma_separated_display_args": "--pyoxidizer-install-from-resolve=", "config_key": "install_from_resolve", "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pyupgrade-install-from-resolve="], - "env_var": "PANTS_PYUPGRADE_INSTALL_FROM_RESOLVE", + "display_args": ["--pyoxidizer-install-from-resolve="], + "env_var": "PANTS_PYOXIDIZER_INSTALL_FROM_RESOLVE", "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `pyupgrade` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `pyoxidizer` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pyupgrade-install-from-resolve"], + "scoped_cmd_line_args": ["--pyoxidizer-install-from-resolve"], "target_field_name": null, "typ": "str", "unscoped_cmd_line_args": ["--install-from-resolve"], @@ -18209,23 +18237,23 @@ ] } }, - "PANTS_PYUPGRADE_INTERPRETER_CONSTRAINTS": { + "PANTS_PYOXIDIZER_INTERPRETER_CONSTRAINTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pyupgrade-interpreter-constraints=\"['', '', ...]\"", + "comma_separated_display_args": "--pyoxidizer-interpreter-constraints=\"['', '', ...]\"", "config_key": "interpreter_constraints", - "default": ["CPython>=3.7,<4"], + "default": ["CPython>=3.8,<4"], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--pyupgrade-interpreter-constraints=\"['', '', ...]\"" + "--pyoxidizer-interpreter-constraints=\"['', '', ...]\"" ], - "env_var": "PANTS_PYUPGRADE_INTERPRETER_CONSTRAINTS", + "env_var": "PANTS_PYOXIDIZER_INTERPRETER_CONSTRAINTS", "fromfile": false, "help": "Python interpreter constraints for this tool.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pyupgrade-interpreter-constraints"], + "scoped_cmd_line_args": ["--pyoxidizer-interpreter-constraints"], "target_field_name": null, "typ": "list", "unscoped_cmd_line_args": ["--interpreter-constraints"], @@ -18239,26 +18267,26 @@ { "details": "", "rank": "HARDCODED", - "value": ["CPython>=3.7,<4"] + "value": ["CPython>=3.8,<4"] } ] } }, - "PANTS_PYUPGRADE_REQUIREMENTS": { + "PANTS_PYOXIDIZER_REQUIREMENTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pyupgrade-requirements=\"['', '', ...]\"", + "comma_separated_display_args": "--pyoxidizer-requirements=\"['', '', ...]\"", "config_key": "requirements", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pyupgrade-requirements=\"['', '', ...]\""], - "env_var": "PANTS_PYUPGRADE_REQUIREMENTS", + "display_args": ["--pyoxidizer-requirements=\"['', '', ...]\""], + "env_var": "PANTS_PYOXIDIZER_REQUIREMENTS", "fromfile": false, "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pyupgrade-requirements"], + "scoped_cmd_line_args": ["--pyoxidizer-requirements"], "target_field_name": null, "typ": "list", "unscoped_cmd_line_args": ["--requirements"], @@ -18277,57 +18305,57 @@ ] } }, - "PANTS_PYUPGRADE_SKIP": { + "PANTS_PYRIGHT_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]pyupgrade-skip", - "config_key": "skip", - "default": false, + "comma_separated_display_args": "--pyright-args=\"[, , ...]\"", + "config_key": "args", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]pyupgrade-skip"], - "env_var": "PANTS_PYUPGRADE_SKIP", + "display_args": ["--pyright-args=\"[, , ...]\""], + "env_var": "PANTS_PYRIGHT_ARGS", "fromfile": false, - "help": "If true, don't use pyupgrade when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "Arguments to pass directly to Pyright, e.g. `--pyright-args='--version'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pyupgrade-skip", "--no-pyupgrade-skip"], + "scoped_cmd_line_args": ["--pyright-args"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "typ": "list", + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": [] } ] } }, - "PANTS_PY_CONSTRAINTS_OUTPUT_FILE": { + "PANTS_PYRIGHT_INSTALL_FROM_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--py-constraints-output-file=", - "config_key": "output_file", + "comma_separated_display_args": "--pyright-install-from-resolve=", + "config_key": "install_from_resolve", "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--py-constraints-output-file="], - "env_var": "PANTS_PY_CONSTRAINTS_OUTPUT_FILE", + "display_args": ["--pyright-install-from-resolve="], + "env_var": "PANTS_PYRIGHT_INSTALL_FROM_RESOLVE", "fromfile": false, - "help": "Output the goal's stdout to this file. If unspecified, outputs to stdout.", + "help": "If specified, install the tool using the lockfile for this named resolve, instead of the version configured in this subsystem.\n\nIf unspecified, the tool will use the default configured package manager [nodejs].package_manager`, and install the tool without a lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--py-constraints-output-file"], + "scoped_cmd_line_args": ["--pyright-install-from-resolve"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--output-file"], + "unscoped_cmd_line_args": ["--install-from-resolve"], "value_history": { "ranked_values": [ { @@ -18338,95 +18366,92 @@ ] } }, - "PANTS_PY_CONSTRAINTS_SUMMARY": { + "PANTS_PYRIGHT_INTERPRETER_CONSTRAINTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]py-constraints-summary", - "config_key": "summary", - "default": false, + "comma_separated_display_args": "--pyright-interpreter-constraints=\"['', '', ...]\"", + "config_key": "interpreter_constraints", + "default": ["CPython>=3.7,<4"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]py-constraints-summary"], - "env_var": "PANTS_PY_CONSTRAINTS_SUMMARY", + "display_args": [ + "--pyright-interpreter-constraints=\"['', '', ...]\"" + ], + "env_var": "PANTS_PYRIGHT_INTERPRETER_CONSTRAINTS", "fromfile": false, - "help": "Output a CSV summary of interpreter constraints for your whole repository. The headers are `Target`, `Constraints`, `Transitive Constraints`, `# Dependencies`, and `# Dependents`.\n\nThis information can be useful when prioritizing a migration from one Python version to another (e.g. to Python 3). Use `# Dependencies` and `# Dependents` to help prioritize which targets are easiest to port (low # dependencies) and highest impact to port (high # dependents).\n\nUse a tool like Pandas or Excel to process the CSV. Use the option `--py-constraints-output-file=summary.csv` to write directly to a file.", + "help": "Python interpreter constraints for Pyright (which is, itself, a NodeJS tool).", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--py-constraints-summary", - "--no-py-constraints-summary" - ], + "scoped_cmd_line_args": ["--pyright-interpreter-constraints"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--summary", "--no-summary"], + "typ": "list", + "unscoped_cmd_line_args": ["--interpreter-constraints"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": ["CPython>=3.7,<4"] } ] } }, - "PANTS_REGEX_LINT_CONFIG": { + "PANTS_PYRIGHT_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--regex-lint-config=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "config", - "default": {}, + "comma_separated_display_args": "--[no-]pyright-skip", + "config_key": "skip", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--regex-lint-config=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_REGEX_LINT_CONFIG", - "fromfile": true, - "help": "Config schema is as follows:\n\n ```\n {\n 'required_matches': {\n 'path_pattern1': [content_pattern1, content_pattern2],\n 'path_pattern2': [content_pattern1, content_pattern3],\n ...\n },\n 'path_patterns': [\n {\n 'name': path_pattern1',\n 'pattern': ,\n 'inverted': True|False (defaults to False),\n 'content_encoding': (defaults to utf8)\n },\n ...\n ],\n 'content_patterns': [\n {\n 'name': 'content_pattern1',\n 'pattern': ,\n 'inverted': True|False (defaults to False)\n }\n ...\n ]\n }\n ```\n\nMeaning: if a file matches some path pattern, its content must match all the corresponding content patterns.\n\nIt's often helpful to load this config from a JSON or YAML file. To do that, set `[regex-lint].config = '@path/to/config.yaml'`, for example.", + "display_args": ["--[no-]pyright-skip"], + "env_var": "PANTS_PYRIGHT_SKIP", + "fromfile": false, + "help": "If true, don't use Pyright when running `pants check`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--regex-lint-config"], + "scoped_cmd_line_args": ["--pyright-skip", "--no-pyright-skip"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--config"], + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": {} + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": {} + "value": false } ] } }, - "PANTS_REGEX_LINT_DETAIL_LEVEL": { - "choices": ["none", "summary", "nonmatching", "names", "all"], - "comma_separated_choices": "none, summary, nonmatching, names, all", - "comma_separated_display_args": "--regex-lint-detail-level=", - "config_key": "detail_level", - "default": "nonmatching", + "PANTS_PYRIGHT_VERSION": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pyright-version=", + "config_key": "version", + "default": "pyright@1.1.316", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--regex-lint-detail-level="], - "env_var": "PANTS_REGEX_LINT_DETAIL_LEVEL", + "display_args": ["--pyright-version="], + "env_var": "PANTS_PYRIGHT_VERSION", "fromfile": false, - "help": "How much detail to include in the result.", + "help": "Version string for the tool in the form package@version (e.g. prettier@2.6.2)", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--regex-lint-detail-level"], + "scoped_cmd_line_args": ["--pyright-version"], "target_field_name": null, - "typ": "DetailLevel", - "unscoped_cmd_line_args": ["--detail-level"], + "typ": "str", + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { @@ -18437,98 +18462,96 @@ { "details": null, "rank": "HARDCODED", - "value": "nonmatching" + "value": "pyright@1.1.316" } ] } }, - "PANTS_REGEX_LINT_SKIP": { + "PANTS_PYTEST_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]regex-lint-skip", - "config_key": "skip", - "default": false, + "comma_separated_display_args": "--pytest-args=\"[, , ...]\", ... -- [ [ [...]]]", + "config_key": "args", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]regex-lint-skip"], - "env_var": "PANTS_REGEX_LINT_SKIP", + "display_args": [ + "--pytest-args=\"[, , ...]\"", + "... -- [ [ [...]]]" + ], + "env_var": "PANTS_PYTEST_ARGS", "fromfile": false, - "help": "If true, don't use regex-lint when running `scie-pants-linux-x86_64 lint`.", + "help": "Arguments to pass directly to Pytest, e.g. `--pytest-args='-k test_foo --quiet'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--regex-lint-skip", "--no-regex-lint-skip"], + "scoped_cmd_line_args": ["--pytest-args"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "typ": "list", + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": [] } ] } }, - "PANTS_REMOTE_CACHE_READ": { + "PANTS_PYTEST_CONFIG": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]remote-cache-read", - "config_key": "remote_cache_read", - "default": false, + "comma_separated_display_args": "--pytest-config=", + "config_key": "config", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]remote-cache-read"], - "env_var": "PANTS_REMOTE_CACHE_READ", + "display_args": ["--pytest-config="], + "env_var": "PANTS_PYTEST_CONFIG", "fromfile": false, - "help": "Whether to enable reading from a remote cache.\n\nThis cannot be used at the same time as `[GLOBAL].remote_execution`.", + "help": "Path to a config file understood by Pytest (https://docs.pytest.org/en/latest/reference/customize.html#configuration-file-formats). Setting this option will disable `[pytest].config_discovery`. Use this option if the config is located in a non-standard location.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-cache-read", "--no-remote-cache-read"], + "scoped_cmd_line_args": ["--pytest-config"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--remote-cache-read", - "--no-remote-cache-read" - ], + "typ": "file_option", + "unscoped_cmd_line_args": ["--config"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": false } ] } }, - "PANTS_REMOTE_CACHE_READ_TIMEOUT_MILLIS": { + "PANTS_PYTEST_CONFIG_DISCOVERY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-cache-read-timeout-millis=", - "config_key": "remote_cache_read_timeout_millis", - "default": 1500, - "deprecated_message": "Deprecated, is scheduled to be removed in version: 2.19.0.dev0.", - "deprecation_active": true, - "display_args": ["--remote-cache-read-timeout-millis="], - "env_var": "PANTS_REMOTE_CACHE_READ_TIMEOUT_MILLIS", + "comma_separated_display_args": "--[no-]pytest-config-discovery", + "config_key": "config_discovery", + "default": true, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]pytest-config-discovery"], + "env_var": "PANTS_PYTEST_CONFIG_DISCOVERY", "fromfile": false, - "help": "Timeout value for remote cache lookups in milliseconds.", - "removal_hint": "Use the `remote_cache_rpc_timeout_millis` option instead.", - "removal_version": "2.19.0.dev0", - "scoped_cmd_line_args": ["--remote-cache-read-timeout-millis"], + "help": "If true, Pants will include all relevant Pytest config files (e.g. `pytest.ini`) during runs. See https://docs.pytest.org/en/stable/customize.html#finding-the-rootdir for where config files should be located for Pytest to discover them.\n\nUse `[pytest].config` instead if your config is in a non-standard location.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--pytest-config-discovery", + "--no-pytest-config-discovery" + ], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--remote-cache-read-timeout-millis"], + "typ": "bool", + "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], "value_history": { "ranked_values": [ { @@ -18539,29 +18562,29 @@ { "details": null, "rank": "HARDCODED", - "value": 1500 + "value": true } ] } }, - "PANTS_REMOTE_CACHE_RPC_CONCURRENCY": { + "PANTS_PYTEST_CONSOLE_SCRIPT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-cache-rpc-concurrency=", - "config_key": "remote_cache_rpc_concurrency", - "default": 128, + "comma_separated_display_args": "--pytest-console-script=", + "config_key": "console_script", + "default": "pytest", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-cache-rpc-concurrency="], - "env_var": "PANTS_REMOTE_CACHE_RPC_CONCURRENCY", + "display_args": ["--pytest-console-script="], + "env_var": "PANTS_PYTEST_CONSOLE_SCRIPT", "fromfile": false, - "help": "The number of concurrent requests allowed to the remote cache service.", + "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-cache-rpc-concurrency"], + "scoped_cmd_line_args": ["--pytest-console-script"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--remote-cache-rpc-concurrency"], + "typ": "str", + "unscoped_cmd_line_args": ["--console-script"], "value_history": { "ranked_values": [ { @@ -18572,218 +18595,215 @@ { "details": null, "rank": "HARDCODED", - "value": 128 + "value": "pytest" } ] } }, - "PANTS_REMOTE_CACHE_RPC_TIMEOUT_MILLIS": { + "PANTS_PYTEST_ENTRY_POINT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-cache-rpc-timeout-millis=", - "config_key": "remote_cache_rpc_timeout_millis", - "default": 1500, + "comma_separated_display_args": "--pytest-entry-point=", + "config_key": "entry_point", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-cache-rpc-timeout-millis="], - "env_var": "PANTS_REMOTE_CACHE_RPC_TIMEOUT_MILLIS", + "display_args": ["--pytest-entry-point="], + "env_var": "PANTS_PYTEST_ENTRY_POINT", "fromfile": false, - "help": "Timeout value for remote cache RPCs in milliseconds.", + "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-cache-rpc-timeout-millis"], + "scoped_cmd_line_args": ["--pytest-entry-point"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--remote-cache-rpc-timeout-millis"], - "value_history": { + "typ": "str", + "unscoped_cmd_line_args": ["--entry-point"], + "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": 1500 } ] } }, - "PANTS_REMOTE_CACHE_WARNINGS": { - "choices": ["ignore", "first_only", "backoff"], - "comma_separated_choices": "ignore, first_only, backoff", - "comma_separated_display_args": "--remote-cache-warnings=", - "config_key": "remote_cache_warnings", - "default": "backoff", + "PANTS_PYTEST_EXECUTION_SLOT_VAR": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pytest-execution-slot-var=", + "config_key": "execution_slot_var", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-cache-warnings="], - "env_var": "PANTS_REMOTE_CACHE_WARNINGS", + "display_args": ["--pytest-execution-slot-var="], + "env_var": "PANTS_PYTEST_EXECUTION_SLOT_VAR", "fromfile": false, - "help": "How frequently to log remote cache failures at the `warn` log level.\n\nAll errors not logged at the `warn` level will instead be logged at the `debug` level.", + "help": "If a non-empty string, the process execution slot id (an integer) will be exposed to tests under this environment variable name.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-cache-warnings"], + "scoped_cmd_line_args": ["--pytest-execution-slot-var"], "target_field_name": null, - "typ": "RemoteCacheWarningsBehavior", - "unscoped_cmd_line_args": ["--remote-cache-warnings"], + "typ": "str", + "unscoped_cmd_line_args": ["--execution-slot-var"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": "backoff" } ] } }, - "PANTS_REMOTE_CACHE_WRITE": { + "PANTS_PYTEST_INSTALL_FROM_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]remote-cache-write", - "config_key": "remote_cache_write", - "default": false, + "comma_separated_display_args": "--pytest-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]remote-cache-write"], - "env_var": "PANTS_REMOTE_CACHE_WRITE", + "display_args": ["--pytest-install-from-resolve="], + "env_var": "PANTS_PYTEST_INSTALL_FROM_RESOLVE", "fromfile": false, - "help": "Whether to enable writing results to a remote cache.\n\nThis cannot be used at the same time as `[GLOBAL].remote_execution`.", + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `pytest` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--remote-cache-write", - "--no-remote-cache-write" - ], + "scoped_cmd_line_args": ["--pytest-install-from-resolve"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--remote-cache-write", - "--no-remote-cache-write" - ], + "typ": "str", + "unscoped_cmd_line_args": ["--install-from-resolve"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": false } ] } }, - "PANTS_REMOTE_CA_CERTS_PATH": { + "PANTS_PYTEST_JUNIT_FAMILY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-ca-certs-path=", - "config_key": "remote_ca_certs_path", - "default": null, + "comma_separated_display_args": "--pytest-junit-family=", + "config_key": "junit_family", + "default": "xunit2", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-ca-certs-path="], - "env_var": "PANTS_REMOTE_CA_CERTS_PATH", + "display_args": ["--pytest-junit-family="], + "env_var": "PANTS_PYTEST_JUNIT_FAMILY", "fromfile": false, - "help": "Path to a PEM file containing CA certificates used for verifying secure connections to `[GLOBAL].remote_execution_address` and `[GLOBAL].remote_store_address`.\n\nIf unspecified, Pants will attempt to auto-discover root CA certificates when TLS is enabled with remote execution and caching.", + "help": "The format of generated junit XML files. See https://docs.pytest.org/en/latest/reference.html#confval-junit_family.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-ca-certs-path"], + "scoped_cmd_line_args": ["--pytest-junit-family"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--remote-ca-certs-path"], + "unscoped_cmd_line_args": ["--junit-family"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "xunit2" } ] } }, - "PANTS_REMOTE_CLIENT_CERTS_PATH": { + "PANTS_PYTEST_REQUIREMENTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-client-certs-path=", - "config_key": "remote_client_certs_path", - "default": null, + "comma_separated_display_args": "--pytest-requirements=\"['', '', ...]\"", + "config_key": "requirements", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-client-certs-path="], - "env_var": "PANTS_REMOTE_CLIENT_CERTS_PATH", + "display_args": ["--pytest-requirements=\"['', '', ...]\""], + "env_var": "PANTS_PYTEST_REQUIREMENTS", "fromfile": false, - "help": "Path to a PEM file containing client certificates used for verifying secure connections to `[GLOBAL].remote_execution_address` and `[GLOBAL].remote_store_address` when using client authentication (mTLS).\n\nIf unspecified, will use regular TLS. Requires `remote_client_key_path` to also be specified.", + "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-client-certs-path"], + "scoped_cmd_line_args": ["--pytest-requirements"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--remote-client-certs-path"], + "typ": "list", + "unscoped_cmd_line_args": ["--requirements"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] } ] } }, - "PANTS_REMOTE_CLIENT_KEY_PATH": { + "PANTS_PYTEST_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-client-key-path=", - "config_key": "remote_client_key_path", - "default": null, + "comma_separated_display_args": "--[no-]pytest-skip", + "config_key": "skip", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-client-key-path="], - "env_var": "PANTS_REMOTE_CLIENT_KEY_PATH", + "display_args": ["--[no-]pytest-skip"], + "env_var": "PANTS_PYTEST_SKIP", "fromfile": false, - "help": "Path to a PEM file containing a private key used for verifying secure connections to `[GLOBAL].remote_execution_address` and `[GLOBAL].remote_store_address` when using client authentication (mTLS).\n\nIf unspecified, will use regular TLS. Requires `remote_client_certs_path` to also be specified.", + "help": "If true, don't use Pytest when running `pants test`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-client-key-path"], + "scoped_cmd_line_args": ["--pytest-skip", "--no-pytest-skip"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--remote-client-key-path"], + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false } ] } }, - "PANTS_REMOTE_EXECUTION": { + "PANTS_PYTEST_XDIST_ENABLED": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]remote-execution", - "config_key": "remote_execution", + "comma_separated_display_args": "--[no-]pytest-xdist-enabled", + "config_key": "xdist_enabled", "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]remote-execution"], - "env_var": "PANTS_REMOTE_EXECUTION", + "display_args": ["--[no-]pytest-xdist-enabled"], + "env_var": "PANTS_PYTEST_XDIST_ENABLED", "fromfile": false, - "help": "Enables remote workers for increased parallelism. (Alpha)\n\nAlternatively, you can use `[GLOBAL].remote_cache_read` and `[GLOBAL].remote_cache_write` to still run everything locally, but to use a remote cache.", + "help": "If true, Pants will use `pytest-xdist` (https://pytest-xdist.readthedocs.io/en/latest/) to parallelize tests within each `python_test` target.\n\nNOTE: Enabling `pytest-xdist` can cause high-level scoped fixtures (for example `session`) to execute more than once. See the `pytest-xdist` docs for more info: https://pypi.org/project/pytest-xdist/#making-session-scoped-fixtures-execute-only-once", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-execution", "--no-remote-execution"], + "scoped_cmd_line_args": [ + "--pytest-xdist-enabled", + "--no-pytest-xdist-enabled" + ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--remote-execution", "--no-remote-execution"], + "unscoped_cmd_line_args": ["--xdist-enabled", "--no-xdist-enabled"], "value_history": { "ranked_values": [ { @@ -18799,88 +18819,138 @@ ] } }, - "PANTS_REMOTE_EXECUTION_ADDRESS": { + "PANTS_PYTHONPATH": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-execution-address=", - "config_key": "remote_execution_address", - "default": null, + "comma_separated_display_args": "--pythonpath=\"['', '', ...]\"", + "config_key": "pythonpath", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-execution-address="], - "env_var": "PANTS_REMOTE_EXECUTION_ADDRESS", + "display_args": ["--pythonpath=\"['', '', ...]\""], + "env_var": "PANTS_PYTHONPATH", "fromfile": false, - "help": "The URI of a server used as a remote execution scheduler.\n\nFormat: `scheme://host:port`. The supported schemes are `grpc` and `grpcs`, i.e. gRPC with TLS enabled. If `grpc` is used, TLS will be disabled.\n\nYou must also set `[GLOBAL].remote_store_address`, which will often be the same value.", + "help": "Add these directories to PYTHONPATH to search for plugins. This does not impact the PYTHONPATH used by Pants when running your Python code.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-execution-address"], + "scoped_cmd_line_args": ["--pythonpath"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--remote-execution-address"], + "typ": "list", + "unscoped_cmd_line_args": ["--pythonpath"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] } ] } }, - "PANTS_REMOTE_EXECUTION_APPEND_ONLY_CACHES_BASE_PATH": { + "PANTS_PYTHON_BOOTSTRAP_INTERNAL_PYTHON_BUILD_STANDALONE_INFO": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-execution-append-only-caches-base-path=", - "config_key": "remote_execution_append_only_caches_base_path", - "default": null, + "comma_separated_display_args": "--python-bootstrap-internal-python-build-standalone-info=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "internal_python_build_standalone_info", + "default": { + "linux_arm64": [ + "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.9.16+20230116-aarch64-unknown-linux-gnu-install_only.tar.gz", + "1ba520c0db431c84305677f56eb9a4254f5097430ed443e92fc8617f8fba973d", + 23873387 + ], + "linux_x86_64": [ + "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.9.16+20230116-x86_64-unknown-linux-gnu-install_only.tar.gz", + "7ba397787932393e65fc2fb9fcfabf54f2bb6751d5da2b45913cb25b2d493758", + 26129729 + ], + "macos_arm64": [ + "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.9.16+20230116-aarch64-apple-darwin-install_only.tar.gz", + "d732d212d42315ac27c6da3e0b69636737a8d72086c980daf844344c010cab80", + 17084463 + ], + "macos_x86_64": [ + "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.9.16+20230116-x86_64-apple-darwin-install_only.tar.gz", + "3948384af5e8d4ee7e5ccc648322b99c1c5cf4979954ed5e6b3382c69d6db71e", + 17059474 + ] + }, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-execution-append-only-caches-base-path="], - "env_var": "PANTS_REMOTE_EXECUTION_APPEND_ONLY_CACHES_BASE_PATH", + "display_args": [ + "--python-bootstrap-internal-python-build-standalone-info=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_PYTHON_BOOTSTRAP_INTERNAL_PYTHON_BUILD_STANDALONE_INFO", "fromfile": false, - "help": "Sets the base path to use when setting up an append-only cache for a process running remotely. If this option is not set, then append-only caches will not be used with remote execution. The option should be set to the absolute path of a writable directory in the remote execution environment where Pants can create append-only caches for use with remotely executing processes.", + "help": "A map from platform to the information needed to download Python Build Standalone.\n\nPython Build Standalone is used to run Python-implemented Pants tools/scripts in docker environments (so that Python doesn't need to be installed).\n\nThe version of Python provided should match the default value's version, which is the highest Python Major/Minor version compatible with the Pants package's interpreter constraints. Additionally, the downloaded file should be extractable by `tar` using `-xvf` (most likely a `.tar.gz` file).\n\nThe schema is `: (, , )` for each possible platform.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--remote-execution-append-only-caches-base-path" + "--python-bootstrap-internal-python-build-standalone-info" ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": [ - "--remote-execution-append-only-caches-base-path" - ], + "typ": "dict", + "unscoped_cmd_line_args": ["--internal-python-build-standalone-info"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": {} + }, + { + "details": "", + "rank": "HARDCODED", + "value": { + "linux_arm64": [ + "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.9.16+20230116-aarch64-unknown-linux-gnu-install_only.tar.gz", + "1ba520c0db431c84305677f56eb9a4254f5097430ed443e92fc8617f8fba973d", + 23873387 + ], + "linux_x86_64": [ + "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.9.16+20230116-x86_64-unknown-linux-gnu-install_only.tar.gz", + "7ba397787932393e65fc2fb9fcfabf54f2bb6751d5da2b45913cb25b2d493758", + 26129729 + ], + "macos_arm64": [ + "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.9.16+20230116-aarch64-apple-darwin-install_only.tar.gz", + "d732d212d42315ac27c6da3e0b69636737a8d72086c980daf844344c010cab80", + 17084463 + ], + "macos_x86_64": [ + "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.9.16+20230116-x86_64-apple-darwin-install_only.tar.gz", + "3948384af5e8d4ee7e5ccc648322b99c1c5cf4979954ed5e6b3382c69d6db71e", + 17059474 + ] + } } ] } }, - "PANTS_REMOTE_EXECUTION_EXTRA_PLATFORM_PROPERTIES": { + "PANTS_PYTHON_BOOTSTRAP_NAMES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-execution-extra-platform-properties=\"['', '', ...]\"", - "config_key": "remote_execution_extra_platform_properties", - "default": [], + "comma_separated_display_args": "--python-bootstrap-names=\"[, , ...]\"", + "config_key": "names", + "default": ["python", "python3"], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--remote-execution-extra-platform-properties=\"['', '', ...]\"" + "--python-bootstrap-names=\"[, , ...]\"" ], - "env_var": "PANTS_REMOTE_EXECUTION_EXTRA_PLATFORM_PROPERTIES", + "env_var": "PANTS_PYTHON_BOOTSTRAP_NAMES", "fromfile": false, - "help": "Platform properties to set on remote execution requests.\n\nFormat: `property=value`. Multiple values should be specified as multiple occurrences of this flag.\n\nPants itself may add additional platform properties.\n\nIf you are using the `remote_environment` target mechanism, set this value as a field on the target instead. This option will be ignored.", + "help": "The names of Python binaries to search for. See the `--search-path` option to influence where interpreters are searched for.\n\nThis does not impact which Python interpreter is used to run your code, only what is used to run internal tools.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-execution-extra-platform-properties"], - "target_field_name": null, + "scoped_cmd_line_args": ["--python-bootstrap-names"], + "target_field_name": "python_bootstrap_names", "typ": "list", - "unscoped_cmd_line_args": [ - "--remote-execution-extra-platform-properties" - ], + "unscoped_cmd_line_args": ["--names"], "value_history": { "ranked_values": [ { @@ -18891,66 +18961,64 @@ { "details": "", "rank": "HARDCODED", - "value": [] + "value": ["python", "python3"] } ] } }, - "PANTS_REMOTE_EXECUTION_HEADERS": { + "PANTS_PYTHON_BOOTSTRAP_SEARCH_PATH": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-execution-headers=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "remote_execution_headers", - "default": "{'user-agent': 'pants/'}", + "comma_separated_display_args": "--python-bootstrap-search-path=\"[, , ...]\"", + "config_key": "search_path", + "default": ["", ""], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--remote-execution-headers=\"{'key1': val1, 'key2': val2, ...}\"" + "--python-bootstrap-search-path=\"[, , ...]\"" ], - "env_var": "PANTS_REMOTE_EXECUTION_HEADERS", + "env_var": "PANTS_PYTHON_BOOTSTRAP_SEARCH_PATH", "fromfile": false, - "help": "Headers to set on remote execution requests. Format: header=value. Pants may add additional headers.\n\nSee `[GLOBAL].remote_store_headers` as well.", + "help": "A list of paths to search for Python interpreters.\n\nWhich interpreters are actually used from these paths is context-specific: the Python backend selects interpreters using options on the `python` subsystem, in particular, the `[python].interpreter_constraints` option.\n\nYou can specify absolute paths to interpreter binaries and/or to directories containing interpreter binaries. The order of entries does not matter.\n\nThe following special strings are supported:\n\nFor all runtime environment types:\n\n* ``, the contents of the PATH env var\n\nWhen the environment is a `local_environment` target:\n\n* ``, all Python versions currently configured by ASDF `(asdf shell, ${HOME}/.tool-versions)`, with a fallback to all installed versions\n* ``, the ASDF interpreter with the version in `BUILD_ROOT/.tool-versions`\n* ``, all Python versions under `$(pyenv root)/versions`\n* ``, the Pyenv interpreter with the version in `BUILD_ROOT/.python-version`\n* ``, paths in the `PEX_PYTHON_PATH` variable in `/etc/pexrc` or `~/.pexrc`", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-execution-headers"], - "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--remote-execution-headers"], + "scoped_cmd_line_args": ["--python-bootstrap-search-path"], + "target_field_name": "python_bootstrap_search_path", + "typ": "list", + "unscoped_cmd_line_args": ["--search-path"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": {} + "value": [] }, { "details": "", "rank": "HARDCODED", - "value": { - "user-agent": "pants/2.18.0rc5" - } + "value": ["", ""] } ] } }, - "PANTS_REMOTE_EXECUTION_OVERALL_DEADLINE_SECS": { + "PANTS_PYTHON_DEFAULT_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-execution-overall-deadline-secs=", - "config_key": "remote_execution_overall_deadline_secs", - "default": 3600, + "comma_separated_display_args": "--python-default-resolve=", + "config_key": "default_resolve", + "default": "python-default", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-execution-overall-deadline-secs="], - "env_var": "PANTS_REMOTE_EXECUTION_OVERALL_DEADLINE_SECS", + "display_args": ["--python-default-resolve="], + "env_var": "PANTS_PYTHON_DEFAULT_RESOLVE", "fromfile": false, - "help": "Overall timeout in seconds for each remote execution request from time of submission", + "help": "The default value used for the `resolve` field.\n\nThe name must be defined as a resolve in `[python].resolves`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-execution-overall-deadline-secs"], + "scoped_cmd_line_args": ["--python-default-resolve"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--remote-execution-overall-deadline-secs"], + "typ": "str", + "unscoped_cmd_line_args": ["--default-resolve"], "value_history": { "ranked_values": [ { @@ -18961,29 +19029,35 @@ { "details": null, "rank": "HARDCODED", - "value": 3600 + "value": "python-default" } ] } }, - "PANTS_REMOTE_EXECUTION_RPC_CONCURRENCY": { + "PANTS_PYTHON_DEFAULT_RUN_GOAL_USE_SANDBOX": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-execution-rpc-concurrency=", - "config_key": "remote_execution_rpc_concurrency", - "default": 128, + "comma_separated_display_args": "--[no-]python-default-run-goal-use-sandbox", + "config_key": "default_run_goal_use_sandbox", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-execution-rpc-concurrency="], - "env_var": "PANTS_REMOTE_EXECUTION_RPC_CONCURRENCY", + "display_args": ["--[no-]python-default-run-goal-use-sandbox"], + "env_var": "PANTS_PYTHON_DEFAULT_RUN_GOAL_USE_SANDBOX", "fromfile": false, - "help": "The number of concurrent requests allowed to the remote execution service.", + "help": "The default value used for the `run_goal_use_sandbox` field of Python targets. See the relevant field for more details.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-execution-rpc-concurrency"], + "scoped_cmd_line_args": [ + "--python-default-run-goal-use-sandbox", + "--no-python-default-run-goal-use-sandbox" + ], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--remote-execution-rpc-concurrency"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--default-run-goal-use-sandbox", + "--no-default-run-goal-use-sandbox" + ], "value_history": { "ranked_values": [ { @@ -18994,113 +19068,141 @@ { "details": null, "rank": "HARDCODED", - "value": 128 + "value": true } ] } }, - "PANTS_REMOTE_INSTANCE_NAME": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--remote-instance-name=", - "config_key": "remote_instance_name", - "default": null, + "PANTS_PYTHON_DUMP_SOURCE_ANALYSIS_ANALYSIS_FLAVOR": { + "choices": ["raw_dependency_inference", "dependency_inference"], + "comma_separated_choices": "raw_dependency_inference, dependency_inference", + "comma_separated_display_args": "--python-dump-source-analysis-analysis-flavor=", + "config_key": "analysis_flavor", + "default": "dependency_inference", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-instance-name="], - "env_var": "PANTS_REMOTE_INSTANCE_NAME", + "display_args": [ + "--python-dump-source-analysis-analysis-flavor=" + ], + "env_var": "PANTS_PYTHON_DUMP_SOURCE_ANALYSIS_ANALYSIS_FLAVOR", "fromfile": false, - "help": "Name of the remote instance to use by remote caching and remote execution.\n\nThis is used by some remote servers for routing. Consult your remote server for whether this should be set.\n\nYou can also use a Pants plugin which provides remote authentication to dynamically set this value.", + "help": "The type of information that should be returned.\n\n* `dependency_inference`: The results of dependency inference, for every detected import in every file.\n\n* `raw_dependency_inference`: The raw intermediate results of the dependency inference process,\nat every stage they're available. Potentially useful for debugging the dependency inference process.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-instance-name"], + "scoped_cmd_line_args": ["--python-dump-source-analysis-analysis-flavor"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--remote-instance-name"], + "typ": "AnalysisFlavor", + "unscoped_cmd_line_args": ["--analysis-flavor"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "dependency_inference" } ] } }, - "PANTS_REMOTE_OAUTH_BEARER_TOKEN_PATH": { + "PANTS_PYTHON_ENABLE_LOCKFILE_TARGETS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-oauth-bearer-token-path=", - "config_key": "remote_oauth_bearer_token_path", - "default": null, + "comma_separated_display_args": "--[no-]python-enable-lockfile-targets", + "config_key": "enable_lockfile_targets", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-oauth-bearer-token-path="], - "env_var": "PANTS_REMOTE_OAUTH_BEARER_TOKEN_PATH", + "display_args": ["--[no-]python-enable-lockfile-targets"], + "env_var": "PANTS_PYTHON_ENABLE_LOCKFILE_TARGETS", "fromfile": false, - "help": "Path to a file containing an oauth token to use for gGRPC connections to `[GLOBAL].remote_execution_address` and `[GLOBAL].remote_store_address`.\n\nIf specified, Pants will add a header in the format `authorization: Bearer `. You can also manually add this header via `[GLOBAL].remote_execution_headers` and `[GLOBAL].remote_store_headers`, or use `[GLOBAL].remote_auth_plugin` to provide a plugin to dynamically set the relevant headers. Otherwise, no authorization will be performed.", + "help": "Create targets for all Python lockfiles defined in `[python].resolves`.\n\nThe lockfile targets will then be used as dependencies to the `python_requirement` targets that use them, invalidating source targets per resolve when the lockfile changes.\n\nIf another targets address is in conflict with the created lockfile target, it will shadow the lockfile target and it will not be available as a dependency for any `python_requirement` targets.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-oauth-bearer-token-path"], + "scoped_cmd_line_args": [ + "--python-enable-lockfile-targets", + "--no-python-enable-lockfile-targets" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--remote-oauth-bearer-token-path"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--enable-lockfile-targets", + "--no-enable-lockfile-targets" + ], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true } ] } }, - "PANTS_REMOTE_STORE_ADDRESS": { + "PANTS_PYTHON_ENABLE_RESOLVES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-store-address=", - "config_key": "remote_store_address", - "default": null, + "comma_separated_display_args": "--[no-]python-enable-resolves", + "config_key": "enable_resolves", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-store-address="], - "env_var": "PANTS_REMOTE_STORE_ADDRESS", + "display_args": ["--[no-]python-enable-resolves"], + "env_var": "PANTS_PYTHON_ENABLE_RESOLVES", "fromfile": false, - "help": "The URI of a server used for the remote file store.\n\nFormat: `scheme://host:port`. The supported schemes are `grpc` and `grpcs`, i.e. gRPC with TLS enabled. If `grpc` is used, TLS will be disabled.", + "help": "Set to true to enable lockfiles for user code. See `[python].resolves` for an explanation of this feature.\n\nThis option is mutually exclusive with `[python].requirement_constraints`. We strongly recommend using this option because it:\n\n 1. Uses `--hash` to validate that all downloaded files are expected, which reduces the risk of supply chain attacks.\n 2. Enforces that all transitive dependencies are in the lockfile, whereas constraints allow you to leave off dependencies. This ensures your build is more stable and reduces the risk of supply chain attacks.\n 3. Allows you to have multiple lockfiles in your repository.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-store-address"], + "scoped_cmd_line_args": [ + "--python-enable-resolves", + "--no-python-enable-resolves" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--remote-store-address"], + "typ": "bool", + "unscoped_cmd_line_args": ["--enable-resolves", "--no-enable-resolves"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false } ] } }, - "PANTS_REMOTE_STORE_BATCH_API_SIZE_LIMIT": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--remote-store-batch-api-size-limit=", - "config_key": "remote_store_batch_api_size_limit", - "default": 4194304, + "PANTS_PYTHON_INFER_AMBIGUITY_RESOLUTION": { + "choices": ["none", "by_source_root"], + "comma_separated_choices": "none, by_source_root", + "comma_separated_display_args": "--python-infer-ambiguity-resolution=", + "config_key": "ambiguity_resolution", + "default": "none", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-store-batch-api-size-limit="], - "env_var": "PANTS_REMOTE_STORE_BATCH_API_SIZE_LIMIT", + "display_args": [ + "--python-infer-ambiguity-resolution=" + ], + "env_var": "PANTS_PYTHON_INFER_AMBIGUITY_RESOLUTION", "fromfile": false, - "help": "The maximum total size of blobs allowed to be sent in a single batch API call to the remote store.", + "help": "When multiple sources provide the same symbol, how to choose the provider to use.\n\n`none`: Do not attempt to resolve this ambiguity. No dependency will be inferred, and warnings will be logged.\n\n`by_source_root`: Choose the provider with the closest common ancestor to the consumer's source root. If the provider is under the same source root then this will be the source root itself. This is useful when multiple projects in different source roots provide the same symbols (because of repeated first-party module paths or overlapping requirements.txt) and you want to resolve the ambiguity locally in each project.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-store-batch-api-size-limit"], + "scoped_cmd_line_args": ["--python-infer-ambiguity-resolution"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--remote-store-batch-api-size-limit"], + "typ": "AmbiguityResolution", + "unscoped_cmd_line_args": ["--ambiguity-resolution"], "value_history": { "ranked_values": [ { @@ -19111,29 +19213,32 @@ { "details": null, "rank": "HARDCODED", - "value": 4194304 + "value": "none" } ] } }, - "PANTS_REMOTE_STORE_CHUNK_BYTES": { + "PANTS_PYTHON_INFER_ASSETS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-store-chunk-bytes=", - "config_key": "remote_store_chunk_bytes", - "default": 1048576, + "comma_separated_display_args": "--[no-]python-infer-assets", + "config_key": "assets", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-store-chunk-bytes="], - "env_var": "PANTS_REMOTE_STORE_CHUNK_BYTES", + "display_args": ["--[no-]python-infer-assets"], + "env_var": "PANTS_PYTHON_INFER_ASSETS", "fromfile": false, - "help": "Size in bytes of chunks transferred to/from the remote file store.", + "help": "Infer a target's asset dependencies based on strings that look like Posix filepaths, such as those given to `open` or `pkgutil.get_data`.\n\nTo ignore a false positive, you can either put `# pants: no-infer-dep` on the line of the string or put `!{bad_address}` in the `dependencies` field of your target.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-store-chunk-bytes"], + "scoped_cmd_line_args": [ + "--python-infer-assets", + "--no-python-infer-assets" + ], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--remote-store-chunk-bytes"], + "typ": "bool", + "unscoped_cmd_line_args": ["--assets", "--no-assets"], "value_history": { "ranked_values": [ { @@ -19144,29 +19249,29 @@ { "details": null, "rank": "HARDCODED", - "value": 1048576 + "value": false } ] } }, - "PANTS_REMOTE_STORE_CHUNK_UPLOAD_TIMEOUT_SECONDS": { + "PANTS_PYTHON_INFER_ASSETS_MIN_SLASHES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-store-chunk-upload-timeout-seconds=", - "config_key": "remote_store_chunk_upload_timeout_seconds", - "default": 60, - "deprecated_message": "Deprecated, is scheduled to be removed in version: 2.19.0.dev0.", - "deprecation_active": true, - "display_args": ["--remote-store-chunk-upload-timeout-seconds="], - "env_var": "PANTS_REMOTE_STORE_CHUNK_UPLOAD_TIMEOUT_SECONDS", + "comma_separated_display_args": "--python-infer-assets-min-slashes=", + "config_key": "assets_min_slashes", + "default": 1, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--python-infer-assets-min-slashes="], + "env_var": "PANTS_PYTHON_INFER_ASSETS_MIN_SLASHES", "fromfile": false, - "help": "Timeout (in seconds) for uploads of individual chunks to the remote file store.", - "removal_hint": "Unused: use the `remote_store_rpc_timeout_millis` option instead.", - "removal_version": "2.19.0.dev0", - "scoped_cmd_line_args": ["--remote-store-chunk-upload-timeout-seconds"], + "help": "If `--assets` is True, treat valid-looking strings with at least this many forward slash characters as potential assets. E.g. `'data/databases/prod.db'` will be treated as a potential candidate if this option is set to 2 but not to 3.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--python-infer-assets-min-slashes"], "target_field_name": null, "typ": "int", - "unscoped_cmd_line_args": ["--remote-store-chunk-upload-timeout-seconds"], + "unscoped_cmd_line_args": ["--assets-min-slashes"], "value_history": { "ranked_values": [ { @@ -19177,66 +19282,68 @@ { "details": null, "rank": "HARDCODED", - "value": 60 + "value": 1 } ] } }, - "PANTS_REMOTE_STORE_HEADERS": { + "PANTS_PYTHON_INFER_CONFTESTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-store-headers=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "remote_store_headers", - "default": "{'user-agent': 'pants/'}", + "comma_separated_display_args": "--[no-]python-infer-conftests", + "config_key": "conftests", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--remote-store-headers=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_REMOTE_STORE_HEADERS", + "display_args": ["--[no-]python-infer-conftests"], + "env_var": "PANTS_PYTHON_INFER_CONFTESTS", "fromfile": false, - "help": "Headers to set on remote store requests.\n\nFormat: header=value. Pants may add additional headers.\n\nSee `[GLOBAL].remote_execution_headers` as well.", + "help": "Infer a test target's dependencies on any `conftest.py` files in the current directory and ancestor directories.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-store-headers"], + "scoped_cmd_line_args": [ + "--python-infer-conftests", + "--no-python-infer-conftests" + ], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--remote-store-headers"], + "typ": "bool", + "unscoped_cmd_line_args": ["--conftests", "--no-conftests"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": {} + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": { - "user-agent": "pants/2.18.0rc5" - } + "value": true } ] } }, - "PANTS_REMOTE_STORE_RPC_CONCURRENCY": { + "PANTS_PYTHON_INFER_ENTRY_POINTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-store-rpc-concurrency=", - "config_key": "remote_store_rpc_concurrency", - "default": 128, + "comma_separated_display_args": "--[no-]python-infer-entry-points", + "config_key": "entry_points", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-store-rpc-concurrency="], - "env_var": "PANTS_REMOTE_STORE_RPC_CONCURRENCY", + "display_args": ["--[no-]python-infer-entry-points"], + "env_var": "PANTS_PYTHON_INFER_ENTRY_POINTS", "fromfile": false, - "help": "The number of concurrent requests allowed to the remote store service.", + "help": "Infer dependencies on targets' entry points, e.g. `pex_binary`'s `entry_point` field, `python_aws_lambda_function`'s `handler` field and `python_distribution`'s `entry_points` field.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-store-rpc-concurrency"], + "scoped_cmd_line_args": [ + "--python-infer-entry-points", + "--no-python-infer-entry-points" + ], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--remote-store-rpc-concurrency"], + "typ": "bool", + "unscoped_cmd_line_args": ["--entry-points", "--no-entry-points"], "value_history": { "ranked_values": [ { @@ -19247,62 +19354,67 @@ { "details": null, "rank": "HARDCODED", - "value": 128 + "value": true } ] } }, - "PANTS_REMOTE_STORE_RPC_RETRIES": { + "PANTS_PYTHON_INFER_IGNORED_UNOWNED_IMPORTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-store-rpc-retries=", - "config_key": "remote_store_rpc_retries", - "default": 2, + "comma_separated_display_args": "--python-infer-ignored-unowned-imports=\"['', '', ...]\"", + "config_key": "ignored_unowned_imports", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-store-rpc-retries="], - "env_var": "PANTS_REMOTE_STORE_RPC_RETRIES", + "display_args": [ + "--python-infer-ignored-unowned-imports=\"['', '', ...]\"" + ], + "env_var": "PANTS_PYTHON_INFER_IGNORED_UNOWNED_IMPORTS", "fromfile": false, - "help": "Number of times to retry any RPC to the remote store before giving up.", + "help": "Unowned imports that should be ignored.\n\nIf there are any unowned import statements and adding the `# pants: no-infer-dep` to the lines of the import is impractical, you can instead provide a list of imports that Pants should ignore. You can declare a specific import or a path to a package if you would like any of the package imports to be ignored.\n\nFor example, you could ignore all the following imports of the code\n\n import src.generated.app\n from src.generated.app import load\n from src.generated.app import start\n from src.generated.client import connect\n\nby setting `ignored-unowned-imports=[\"src.generated.app\", \"src.generated.client.connect\"]`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-store-rpc-retries"], + "scoped_cmd_line_args": ["--python-infer-ignored-unowned-imports"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--remote-store-rpc-retries"], + "typ": "list", + "unscoped_cmd_line_args": ["--ignored-unowned-imports"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": 2 + "value": [] } ] } }, - "PANTS_REMOTE_STORE_RPC_TIMEOUT_MILLIS": { + "PANTS_PYTHON_INFER_IMPORTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-store-rpc-timeout-millis=", - "config_key": "remote_store_rpc_timeout_millis", - "default": 30000, + "comma_separated_display_args": "--[no-]python-infer-imports", + "config_key": "imports", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-store-rpc-timeout-millis="], - "env_var": "PANTS_REMOTE_STORE_RPC_TIMEOUT_MILLIS", + "display_args": ["--[no-]python-infer-imports"], + "env_var": "PANTS_PYTHON_INFER_IMPORTS", "fromfile": false, - "help": "Timeout value for remote store RPCs (not including streaming requests) in milliseconds.", + "help": "Infer a target's imported dependencies by parsing import statements from sources.\n\nTo ignore a false positive, you can either put `# pants: no-infer-dep` on the line of the import or put `!{bad_address}` in the `dependencies` field of your target.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-store-rpc-timeout-millis"], + "scoped_cmd_line_args": [ + "--python-infer-imports", + "--no-python-infer-imports" + ], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--remote-store-rpc-timeout-millis"], + "typ": "bool", + "unscoped_cmd_line_args": ["--imports", "--no-imports"], "value_history": { "ranked_values": [ { @@ -19313,29 +19425,29 @@ { "details": null, "rank": "HARDCODED", - "value": 30000 + "value": true } ] } }, - "PANTS_REPL_RESTARTABLE": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]repl-restartable", - "config_key": "restartable", - "default": false, + "PANTS_PYTHON_INFER_INIT_FILES": { + "choices": ["always", "content_only", "never"], + "comma_separated_choices": "always, content_only, never", + "comma_separated_display_args": "--python-infer-init-files=", + "config_key": "init_files", + "default": "content_only", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]repl-restartable"], - "env_var": "PANTS_REPL_RESTARTABLE", + "display_args": ["--python-infer-init-files="], + "env_var": "PANTS_PYTHON_INFER_INIT_FILES", "fromfile": false, - "help": "True if the REPL should be restarted if its inputs have changed.", + "help": "Infer a target's dependencies on any `__init__.py` files in the packages it is located in (recursively upward in the directory structure).\n\nEven if this is set to `never` or `content_only`, Pants will still always include any ancestor `__init__.py` files in the sandbox. Only, they will not be \"proper\" dependencies, e.g. they will not show up in `pants dependencies` and their own dependencies will not be used.\n\nBy default, Pants only adds a \"proper\" dependency if there is content in the `__init__.py` file. This makes sure that dependencies are added when likely necessary to build, while also avoiding adding unnecessary dependencies. While accurate, those unnecessary dependencies can complicate setting metadata like the `interpreter_constraints` and `resolve` fields.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--repl-restartable", "--no-repl-restartable"], + "scoped_cmd_line_args": ["--python-infer-init-files"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--restartable", "--no-restartable"], + "typ": "InitFilesInference", + "unscoped_cmd_line_args": ["--init-files"], "value_history": { "ranked_values": [ { @@ -19346,85 +19458,100 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": "content_only" } ] } }, - "PANTS_REPL_SHELL": { + "PANTS_PYTHON_INFER_STRING_IMPORTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--repl-shell=", - "config_key": "shell", - "default": null, + "comma_separated_display_args": "--[no-]python-infer-string-imports", + "config_key": "string_imports", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--repl-shell="], - "env_var": "PANTS_REPL_SHELL", + "display_args": ["--[no-]python-infer-string-imports"], + "env_var": "PANTS_PYTHON_INFER_STRING_IMPORTS", "fromfile": false, - "help": "Override the automatically-detected REPL program for the target(s) specified.", + "help": "Infer a target's dependencies based on strings that look like dynamic dependencies, such as Django settings files expressing dependencies as strings or pytest plugins listed in the `pytest_plugins` variable in a test module or a conftest file.\n\nTo ignore a false positive, you can either put `# pants: no-infer-dep` on the line of the string or put `!{bad_address}` in the `dependencies` field of your target.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--repl-shell"], + "scoped_cmd_line_args": [ + "--python-infer-string-imports", + "--no-python-infer-string-imports" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--shell"], + "typ": "bool", + "unscoped_cmd_line_args": ["--string-imports", "--no-string-imports"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false } ] } }, - "PANTS_ROOTS_OUTPUT_FILE": { + "PANTS_PYTHON_INFER_STRING_IMPORTS_MIN_DOTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--roots-output-file=", - "config_key": "output_file", - "default": null, + "comma_separated_display_args": "--python-infer-string-imports-min-dots=", + "config_key": "string_imports_min_dots", + "default": 2, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--roots-output-file="], - "env_var": "PANTS_ROOTS_OUTPUT_FILE", + "display_args": ["--python-infer-string-imports-min-dots="], + "env_var": "PANTS_PYTHON_INFER_STRING_IMPORTS_MIN_DOTS", "fromfile": false, - "help": "Output the goal's stdout to this file. If unspecified, outputs to stdout.", + "help": "If `--string-imports` is True, treat valid-looking strings with at least this many dots in them as potential dynamic dependencies. E.g., `'foo.bar.Baz'` will be treated as a potential dependency if this option is set to 2 but not if set to 3.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--roots-output-file"], + "scoped_cmd_line_args": ["--python-infer-string-imports-min-dots"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--output-file"], + "typ": "int", + "unscoped_cmd_line_args": ["--string-imports-min-dots"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": 2 } ] } }, - "PANTS_ROOTS_SEP": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--roots-sep=", - "config_key": "sep", - "default": "\\n", + "PANTS_PYTHON_INFER_UNOWNED_DEPENDENCY_BEHAVIOR": { + "choices": ["error", "warning", "ignore"], + "comma_separated_choices": "error, warning, ignore", + "comma_separated_display_args": "--python-infer-unowned-dependency-behavior=", + "config_key": "unowned_dependency_behavior", + "default": "warning", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--roots-sep="], - "env_var": "PANTS_ROOTS_SEP", + "display_args": [ + "--python-infer-unowned-dependency-behavior=" + ], + "env_var": "PANTS_PYTHON_INFER_UNOWNED_DEPENDENCY_BEHAVIOR", "fromfile": false, - "help": "String to use to separate lines in line-oriented output.", + "help": "How to handle imports that don't have an inferrable owner.\n\nUsually when an import cannot be inferred, it represents an issue like Pants not being properly configured, e.g. targets not set up. Often, missing dependencies will result in confusing runtime errors like `ModuleNotFoundError`, so this option can be helpful to error more eagerly.\n\nTo ignore any false positives, either add `# pants: no-infer-dep` to the line of the import or put the import inside a `try: except ImportError:` block.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--roots-sep"], + "scoped_cmd_line_args": ["--python-infer-unowned-dependency-behavior"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--sep"], + "typ": "UnownedDependencyUsage", + "unscoped_cmd_line_args": ["--unowned-dependency-behavior"], "value_history": { "ranked_values": [ { @@ -19435,126 +19562,157 @@ { "details": null, "rank": "HARDCODED", - "value": "\\n" + "value": "warning" } ] } }, - "PANTS_RUFF_ARGS": { + "PANTS_PYTHON_INFER_USE_RUST_PARSER": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--ruff-args=\"[, , ...]\"", - "config_key": "args", - "default": [], + "comma_separated_display_args": "--[no-]python-infer-use-rust-parser", + "config_key": "use_rust_parser", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--ruff-args=\"[, , ...]\""], - "env_var": "PANTS_RUFF_ARGS", + "display_args": ["--[no-]python-infer-use-rust-parser"], + "env_var": "PANTS_PYTHON_INFER_USE_RUST_PARSER", "fromfile": false, - "help": "Arguments to pass directly to Ruff, e.g. `--ruff-args='--exclude=foo --ignore=E501'`.", + "help": "Use the new Rust-based, multithreaded, in-process dependency parser.\n\nPants 2.17 introduced a new paradigm to dependency parsing for Python by leveraging a Rust-based parser that's called in the same process as Pants itself, instead of farming out to one-python-process-per-file.\n\nAs a result of the switch, cold-cache performance improved by a factor of about 12x, while hot-cache had no difference. Additionally, Pants can now infer dependencies from Python scripts with syntax errors.\n\nAfter leaving this defaulted to disabled for a release cycle, Pants 2.18 started defaulting to enabling this.\n\nIf you think the new behaviour is causing problems, it is recommended that you run `pants peek :: > before.json` and then `pants --python-infer-use-rust-parser=False peek :: > after.json` and compare the two results.\n\nIf you think there is a bug and need to disable it, please file an issue: https://github.com/pantsbuild/pants/issues/new/choose.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--ruff-args"], + "scoped_cmd_line_args": [ + "--python-infer-use-rust-parser", + "--no-python-infer-use-rust-parser" + ], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "typ": "bool", + "unscoped_cmd_line_args": ["--use-rust-parser", "--no-use-rust-parser"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": true } ] } }, - "PANTS_RUFF_CONFIG": { + "PANTS_PYTHON_INTERPRETER_CONSTRAINTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--ruff-config=", - "config_key": "config", - "default": null, + "comma_separated_display_args": "--python-interpreter-constraints=\"[, , ...]\"", + "config_key": "interpreter_constraints", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--ruff-config="], - "env_var": "PANTS_RUFF_CONFIG", + "display_args": [ + "--python-interpreter-constraints=\"[, , ...]\"" + ], + "env_var": "PANTS_PYTHON_INTERPRETER_CONSTRAINTS", "fromfile": false, - "help": "Path to the `pyproject.toml` or `ruff.toml` file to use for configuration (https://github.com/charliermarsh/ruff#configuration).\n\nSetting this option will disable `[ruff].config_discovery`. Use this option if the config is located in a non-standard location.", + "help": "The Python interpreters your codebase is compatible with.\n\nThese constraints are used as the default value for the `interpreter_constraints` field of Python targets.\n\nSpecify with requirement syntax, e.g. `'CPython>=2.7,<3'` (A CPython interpreter with version >=2.7 AND version <3) or `'PyPy'` (A pypy interpreter of any version). Multiple constraint strings will be ORed together.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--ruff-config"], + "scoped_cmd_line_args": ["--python-interpreter-constraints"], "target_field_name": null, - "typ": "file_option", - "unscoped_cmd_line_args": ["--config"], + "typ": "list", + "unscoped_cmd_line_args": ["--interpreter-constraints"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] } ] } }, - "PANTS_RUFF_CONFIG_DISCOVERY": { + "PANTS_PYTHON_INTERPRETER_VERSIONS_UNIVERSE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]ruff-config-discovery", - "config_key": "config_discovery", - "default": true, + "comma_separated_display_args": "--python-interpreter-versions-universe=\"['', '', ...]\"", + "config_key": "interpreter_versions_universe", + "default": [ + "2.7", + "3.5", + "3.6", + "3.7", + "3.8", + "3.9", + "3.10", + "3.11", + "3.12" + ], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]ruff-config-discovery"], - "env_var": "PANTS_RUFF_CONFIG_DISCOVERY", + "display_args": [ + "--python-interpreter-versions-universe=\"['', '', ...]\"" + ], + "env_var": "PANTS_PYTHON_INTERPRETER_VERSIONS_UNIVERSE", "fromfile": false, - "help": "If true, Pants will include any relevant config files during runs (`pyproject.toml`, and `ruff.toml`).\n\nUse `[ruff].config` instead if your config is in a non-standard location.", + "help": "All known Python major/minor interpreter versions that may be used by either your code or tools used by your code.\n\nThis is used by Pants to robustly handle interpreter constraints, such as knowing when generating lockfiles which Python versions to check if your code is using.\n\nThis does not control which interpreter your code will use. Instead, to set your interpreter constraints, update `[python].interpreter_constraints`, the `interpreter_constraints` field, and relevant tool options like `[isort].interpreter_constraints` to tell Pants which interpreters your code actually uses. See https://www.pantsbuild.org/v2.18/docs/python-interpreter-compatibility.\n\nAll elements must be the minor and major Python version, e.g. `'2.7'` or `'3.10'`. Do not include the patch version.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--ruff-config-discovery", - "--no-ruff-config-discovery" - ], + "scoped_cmd_line_args": ["--python-interpreter-versions-universe"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], + "typ": "list", + "unscoped_cmd_line_args": ["--interpreter-versions-universe"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": true + "value": [ + "2.7", + "3.5", + "3.6", + "3.7", + "3.8", + "3.9", + "3.10", + "3.11", + "3.12" + ] } ] } }, - "PANTS_RUFF_CONSOLE_SCRIPT": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--ruff-console-script=", - "config_key": "console_script", - "default": "ruff", + "PANTS_PYTHON_INVALID_LOCKFILE_BEHAVIOR": { + "choices": ["error", "ignore", "warn"], + "comma_separated_choices": "error, ignore, warn", + "comma_separated_display_args": "--python-invalid-lockfile-behavior=", + "config_key": "invalid_lockfile_behavior", + "default": "error", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--ruff-console-script="], - "env_var": "PANTS_RUFF_CONSOLE_SCRIPT", + "display_args": [ + "--python-invalid-lockfile-behavior=" + ], + "env_var": "PANTS_PYTHON_INVALID_LOCKFILE_BEHAVIOR", "fromfile": false, - "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", + "help": "The behavior when a lockfile has requirements or interpreter constraints that are not compatible with what the current build is using.\n\nWe recommend keeping the default of `error` for CI builds.\n\nNote that `warn` will still expect a Pants lockfile header, it only won't error if the lockfile is stale and should be regenerated.\n\nUse `ignore` to avoid needing a lockfile header at all, e.g. if you are manually managing lockfiles rather than using the `generate-lockfiles` goal.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--ruff-console-script"], + "scoped_cmd_line_args": ["--python-invalid-lockfile-behavior"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--console-script"], + "typ": "InvalidLockfileBehavior", + "unscoped_cmd_line_args": ["--invalid-lockfile-behavior"], "value_history": { "ranked_values": [ { @@ -19565,87 +19723,105 @@ { "details": null, "rank": "HARDCODED", - "value": "ruff" + "value": "error" } ] } }, - "PANTS_RUFF_ENTRY_POINT": { + "PANTS_PYTHON_MACOS_BIG_SUR_COMPATIBILITY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--ruff-entry-point=", - "config_key": "entry_point", - "default": null, + "comma_separated_display_args": "--[no-]python-macos-big-sur-compatibility", + "config_key": "macos_big_sur_compatibility", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--ruff-entry-point="], - "env_var": "PANTS_RUFF_ENTRY_POINT", + "display_args": ["--[no-]python-macos-big-sur-compatibility"], + "env_var": "PANTS_PYTHON_MACOS_BIG_SUR_COMPATIBILITY", "fromfile": false, - "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", + "help": "If set, and if running on macOS Big Sur, use `macosx_10_16` as the platform when building wheels. Otherwise, the default of `macosx_11_0` will be used. This may be required for `pip` to be able to install the resulting distribution on Big Sur.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--ruff-entry-point"], + "scoped_cmd_line_args": [ + "--python-macos-big-sur-compatibility", + "--no-python-macos-big-sur-compatibility" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--entry-point"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--macos-big-sur-compatibility", + "--no-macos-big-sur-compatibility" + ], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false } ] } }, - "PANTS_RUFF_INSTALL_FROM_RESOLVE": { + "PANTS_PYTHON_NATIVE_CODE_CPP_FLAGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--ruff-install-from-resolve=", - "config_key": "install_from_resolve", - "default": null, + "comma_separated_display_args": "--python-native-code-cpp-flags=\"['', '', ...]\"", + "config_key": "cpp_flags", + "default": [""], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--ruff-install-from-resolve="], - "env_var": "PANTS_RUFF_INSTALL_FROM_RESOLVE", + "display_args": [ + "--python-native-code-cpp-flags=\"['', '', ...]\"" + ], + "env_var": "PANTS_PYTHON_NATIVE_CODE_CPP_FLAGS", "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `ruff` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "help": "Override the `CPPFLAGS` environment variable for any forked subprocesses. Use the value `['']` to inherit the value of the `CPPFLAGS` environment variable from your runtime environment target.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--ruff-install-from-resolve"], - "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--install-from-resolve"], + "scoped_cmd_line_args": ["--python-native-code-cpp-flags"], + "target_field_name": "python_native_code_cpp_flags", + "typ": "list", + "unscoped_cmd_line_args": ["--cpp-flags"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [""] } ] } }, - "PANTS_RUFF_INTERPRETER_CONSTRAINTS": { + "PANTS_PYTHON_NATIVE_CODE_LD_FLAGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--ruff-interpreter-constraints=\"['', '', ...]\"", - "config_key": "interpreter_constraints", - "default": ["CPython>=3.7,<4"], + "comma_separated_display_args": "--python-native-code-ld-flags=\"['', '', ...]\"", + "config_key": "ld_flags", + "default": [""], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--ruff-interpreter-constraints=\"['', '', ...]\"" + "--python-native-code-ld-flags=\"['', '', ...]\"" ], - "env_var": "PANTS_RUFF_INTERPRETER_CONSTRAINTS", + "env_var": "PANTS_PYTHON_NATIVE_CODE_LD_FLAGS", "fromfile": false, - "help": "Python interpreter constraints for this tool.", + "help": "Override the `LDFLAGS` environment variable for any forked subprocesses. Use the value `['']` to inherit the value of the `LDFLAGS` environment variable from your runtime environment target.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--ruff-interpreter-constraints"], - "target_field_name": null, + "scoped_cmd_line_args": ["--python-native-code-ld-flags"], + "target_field_name": "python_native_code_ld_flags", "typ": "list", - "unscoped_cmd_line_args": ["--interpreter-constraints"], + "unscoped_cmd_line_args": ["--ld-flags"], "value_history": { "ranked_values": [ { @@ -19656,62 +19832,79 @@ { "details": "", "rank": "HARDCODED", - "value": ["CPython>=3.7,<4"] + "value": [""] } ] } }, - "PANTS_RUFF_REQUIREMENTS": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--ruff-requirements=\"['', '', ...]\"", - "config_key": "requirements", - "default": [], + "PANTS_PYTHON_PIP_VERSION": { + "choices": [ + "20.3.4-patched", + "22.2.2", + "22.3", + "22.3.1", + "23.0", + "23.0.1", + "23.1", + "23.1.1", + "23.1.2", + "latest" + ], + "comma_separated_choices": "20.3.4-patched, 22.2.2, 22.3, 22.3.1, 23.0, 23.0.1, 23.1, 23.1.1, 23.1.2, latest", + "comma_separated_display_args": "--python-pip-version=", + "config_key": "pip_version", + "default": "23.1.2", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--ruff-requirements=\"['', '', ...]\""], - "env_var": "PANTS_RUFF_REQUIREMENTS", + "display_args": ["--python-pip-version="], + "env_var": "PANTS_PYTHON_PIP_VERSION", "fromfile": false, - "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "help": "Use this version of Pip for resolving requirements and generating lockfiles.\n\nN.B.: The `latest` value selects the latest of the listed choices which is not necessarily the latest Pip version released on PyPI.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--ruff-requirements"], + "scoped_cmd_line_args": ["--python-pip-version"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--requirements"], + "typ": "PipVersion", + "unscoped_cmd_line_args": ["--pip-version"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": "23.1.2" } ] } }, - "PANTS_RUFF_SKIP": { + "PANTS_PYTHON_PROTOBUF_INFER_RUNTIME_DEPENDENCY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]ruff-skip", - "config_key": "skip", - "default": false, + "comma_separated_display_args": "--[no-]python-protobuf-infer-runtime-dependency", + "config_key": "infer_runtime_dependency", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]ruff-skip"], - "env_var": "PANTS_RUFF_SKIP", + "display_args": ["--[no-]python-protobuf-infer-runtime-dependency"], + "env_var": "PANTS_PYTHON_PROTOBUF_INFER_RUNTIME_DEPENDENCY", "fromfile": false, - "help": "If true, don't use Ruff when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "If True, will add a dependency on a `python_requirement` target exposing the `protobuf` module (usually from the `protobuf` requirement). If the `protobuf_source` target sets `grpc=True`, will also add a dependency on the `python_requirement` target exposing the `grpcio` module.\n\nIf `[python].enable_resolves` is set, Pants will only infer dependencies on `python_requirement` targets that use the same resolve as the particular `protobuf_source` / `protobuf_sources` target uses, which is set via its `python_resolve` field.\n\nUnless this option is disabled, Pants will error if no relevant target is found or if more than one is found which causes ambiguity.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--ruff-skip", "--no-ruff-skip"], + "scoped_cmd_line_args": [ + "--python-protobuf-infer-runtime-dependency", + "--no-python-protobuf-infer-runtime-dependency" + ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "unscoped_cmd_line_args": [ + "--infer-runtime-dependency", + "--no-infer-runtime-dependency" + ], "value_history": { "ranked_values": [ { @@ -19722,29 +19915,32 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": true } ] } }, - "PANTS_RULE_THREADS_CORE": { + "PANTS_PYTHON_PROTOBUF_MYPY_PLUGIN": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--rule-threads-core=", - "config_key": "rule_threads_core", - "default": "max(2, #cores/2)", + "comma_separated_display_args": "--[no-]python-protobuf-mypy-plugin", + "config_key": "mypy_plugin", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--rule-threads-core="], - "env_var": "PANTS_RULE_THREADS_CORE", + "display_args": ["--[no-]python-protobuf-mypy-plugin"], + "env_var": "PANTS_PYTHON_PROTOBUF_MYPY_PLUGIN", "fromfile": false, - "help": "The number of threads to keep active and ready to execute `@rule` logic (see also: `--rule-threads-max`).\n\nValues less than 2 are not currently supported.\n\nThis value is independent of the number of processes that may be spawned in parallel locally (controlled by `--process-execution-local-parallelism`).", + "help": "Use the `mypy-protobuf` plugin (https://github.com/dropbox/mypy-protobuf) to also generate `.pyi` type stubs.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--rule-threads-core"], + "scoped_cmd_line_args": [ + "--python-protobuf-mypy-plugin", + "--no-python-protobuf-mypy-plugin" + ], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--rule-threads-core"], + "typ": "bool", + "unscoped_cmd_line_args": ["--mypy-plugin", "--no-mypy-plugin"], "value_history": { "ranked_values": [ { @@ -19755,60 +19951,65 @@ { "details": null, "rank": "HARDCODED", - "value": 32 + "value": false } ] } }, - "PANTS_RULE_THREADS_MAX": { + "PANTS_PYTHON_REPL_HISTORY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--rule-threads-max=", - "config_key": "rule_threads_max", - "default": null, + "comma_separated_display_args": "--[no-]python-repl-history", + "config_key": "repl_history", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--rule-threads-max="], - "env_var": "PANTS_RULE_THREADS_MAX", + "display_args": ["--[no-]python-repl-history"], + "env_var": "PANTS_PYTHON_REPL_HISTORY", "fromfile": false, - "help": "The maximum number of threads to use to execute `@rule` logic. Defaults to a small multiple of `--rule-threads-core`.", + "help": "Whether to use the standard Python command history file when running a repl.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--rule-threads-max"], + "scoped_cmd_line_args": [ + "--python-repl-history", + "--no-python-repl-history" + ], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--rule-threads-max"], + "typ": "bool", + "unscoped_cmd_line_args": ["--repl-history", "--no-repl-history"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true } ] } }, - "PANTS_RUN_ARGS": { + "PANTS_PYTHON_REPOS_FIND_LINKS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--run-args=\"[, , ...]\", ... -- [ [ [...]]]", - "config_key": "args", + "comma_separated_display_args": "--python-repos-find-links=\"['', '', ...]\"", + "config_key": "find_links", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--run-args=\"[, , ...]\"", - "... -- [ [ [...]]]" - ], - "env_var": "PANTS_RUN_ARGS", + "display_args": ["--python-repos-find-links=\"['', '', ...]\""], + "env_var": "PANTS_PYTHON_REPOS_FIND_LINKS", "fromfile": false, - "help": "Arguments to pass directly to the executed target, e.g. `--run-args='val1 val2 --debug'`.", + "help": "URLs and/or file paths corresponding to pip's `--find-links` option.\n\nPer [pip's documentation](https://pip.pypa.io/en/stable/cli/pip_wheel/?highlight=find%20links#cmdoption-f), URLs should be to HTML files with links to `.whl` and/or sdist files. Local paths must be absolute, and can either be to an HTML file with links or to a directory with `.whl` and/or sdist files, e.g. `file:///Users/pantsbuild/prebuilt_wheels`.\n\nFor local paths, you may want to use the option `[python-repos].path_mappings`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--run-args"], + "scoped_cmd_line_args": ["--python-repos-find-links"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "unscoped_cmd_line_args": ["--find-links"], "value_history": { "ranked_values": [ { @@ -19817,64 +20018,66 @@ "value": [] }, { - "details": "", - "rank": "HARDCODED", + "details": "from command-line flag", + "rank": "FLAG", "value": [] } ] } }, - "PANTS_RUN_DEBUG_ADAPTER": { + "PANTS_PYTHON_REPOS_INDEXES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]run-debug-adapter", - "config_key": "debug_adapter", - "default": false, + "comma_separated_display_args": "--python-repos-indexes=\"['', '', ...]\"", + "config_key": "indexes", + "default": ["https://pypi.org/simple/"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]run-debug-adapter"], - "env_var": "PANTS_RUN_DEBUG_ADAPTER", + "display_args": ["--python-repos-indexes=\"['', '', ...]\""], + "env_var": "PANTS_PYTHON_REPOS_INDEXES", "fromfile": false, - "help": "Run the interactive process using a Debug Adapter (https://microsoft.github.io/debug-adapter-protocol/) for the language if supported.\n\nThe interactive process used will be immediately blocked waiting for a client before continuing.", + "help": "URLs of [PEP-503 compatible](https://peps.python.org/pep-0503/) code repository indexes to look for requirements.\n\nIf set to an empty list, then Pex will use no indexes (meaning it will not use PyPI).", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--run-debug-adapter", "--no-run-debug-adapter"], + "scoped_cmd_line_args": ["--python-repos-indexes"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--debug-adapter", "--no-debug-adapter"], + "typ": "list", + "unscoped_cmd_line_args": ["--indexes"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": ["https://pypi.org/simple/"] } ] } }, - "PANTS_SCALAC_ARGS": { + "PANTS_PYTHON_REPOS_PATH_MAPPINGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--scalac-args=\"[, , ...]\"", - "config_key": "args", + "comma_separated_display_args": "--python-repos-path-mappings=\"['', '', ...]\"", + "config_key": "path_mappings", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--scalac-args=\"[, , ...]\""], - "env_var": "PANTS_SCALAC_ARGS", + "display_args": [ + "--python-repos-path-mappings=\"['', '', ...]\"" + ], + "env_var": "PANTS_PYTHON_REPOS_PATH_MAPPINGS", "fromfile": false, - "help": "Arguments to pass directly to scalac, e.g. `--scalac-args='-encoding UTF-8'`.", + "help": "Mappings to facilitate using local Python requirements when the absolute file paths are different on different users' machines. For example, the path `file:///Users/pantsbuild/prebuilt_wheels/django-3.1.1-py3-none-any.whl` could become `file://${WHEELS_DIR}/django-3.1.1-py3-none-any.whl`, where each user can configure what `WHEELS_DIR` points to on their machine.\n\nExpects values in the form `NAME|PATH`, e.g. `WHEELS_DIR|/Users/pantsbuild/prebuilt_wheels`. You can specify multiple entries in the list.\n\nThis feature is intended to be used with `[python-repos].find_links`, rather than PEP 440 direct reference requirements (see https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#local-requirements. `[python-repos].find_links` must be configured to a valid absolute path for the current machine.\n\nTip: you can avoid each user needing to manually configure this option and `[python-repos].find_links` by using a common file location, along with Pants's interpolation support (https://www.pantsbuild.org/v2.18/docs/options#config-file-interpolation. For example, in `pants.toml`, you could set both options to `%(buildroot)s/python_wheels` to point to the directory `python_wheels` in the root of your repository; or, use the path `%(env.HOME)s/pants_wheels` for the path `~/pants_wheels`. If you are not able to use a common path like this, then we recommend setting that each user set these options via a `.pants.rc` file (https://www.pantsbuild.org/v2.18/docs/options#pantsrc-file.\n\nNote: Only takes effect if using Pex lockfiles, i.e. using the `generate-lockfiles` goal.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--scalac-args"], + "scoped_cmd_line_args": ["--python-repos-path-mappings"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "unscoped_cmd_line_args": ["--path-mappings"], "value_history": { "ranked_values": [ { @@ -19890,158 +20093,163 @@ ] } }, - "PANTS_SCALAC_PLUGINS_FOR_RESOLVE": { + "PANTS_PYTHON_REPOS_REPOS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--scalac-plugins-for-resolve=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "plugins_for_resolve", - "default": {}, - "deprecated_message": null, - "deprecation_active": false, - "display_args": [ - "--scalac-plugins-for-resolve=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_SCALAC_PLUGINS_FOR_RESOLVE", + "comma_separated_display_args": "--python-repos-repos=\"['', '', ...]\"", + "config_key": "repos", + "default": [], + "deprecated_message": "Deprecated, is scheduled to be removed in version: 3.0.0.dev0.", + "deprecation_active": true, + "display_args": ["--python-repos-repos=\"['', '', ...]\""], + "env_var": "PANTS_PYTHON_REPOS_REPOS", "fromfile": false, - "help": "A dictionary, whose keys are the names of each JVM resolve that requires default `scalac` plugins, and the value is a comma-separated string consisting of scalac plugin names. Each specified plugin must have a corresponding `scalac_plugin` target that specifies that name in either its `plugin_name` field or is the same as its target name.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--scalac-plugins-for-resolve"], + "help": "URLs of code repositories to look for requirements. In Pip and Pex, this option corresponds to the `--find-links` option.", + "removal_hint": "A deprecated alias for `[python-repos].find_links`.", + "removal_version": "3.0.0.dev0", + "scoped_cmd_line_args": ["--python-repos-repos"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--plugins-for-resolve"], + "typ": "list", + "unscoped_cmd_line_args": ["--repos"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": {} + "value": [] }, { "details": "", "rank": "HARDCODED", - "value": {} + "value": [] } ] } }, - "PANTS_SCALAFMT_ARTIFACTS": { + "PANTS_PYTHON_REQUIREMENT_CONSTRAINTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--scalafmt-artifacts=\"['', '', ...]\"", - "config_key": "artifacts", - "default": ["org.scalameta:scalafmt-cli_2.13:{version}"], - "deprecated_message": null, - "deprecation_active": false, - "display_args": ["--scalafmt-artifacts=\"['', '', ...]\""], - "env_var": "PANTS_SCALAFMT_ARTIFACTS", + "comma_separated_display_args": "--python-requirement-constraints=", + "config_key": "requirement_constraints", + "default": null, + "deprecated_message": "Deprecated, is scheduled to be removed in version: 3.0.0.dev0.", + "deprecation_active": true, + "display_args": ["--python-requirement-constraints="], + "env_var": "PANTS_PYTHON_REQUIREMENT_CONSTRAINTS", "fromfile": false, - "help": "Artifact requirements for this tool using specified as either the address of a `jvm_artifact` target or, alternatively, as a colon-separated Maven coordinates (e.g., `group:name:version`). For Maven coordinates, the string `{version}` version will be substituted with the value of the `[scalafmt].version` option.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--scalafmt-artifacts"], + "help": "When resolving third-party requirements for your own code (vs. tools you run), use this constraints file to determine which versions to use.\n\nMutually exclusive with `[python].enable_resolves`, which we generally recommend as an improvement over constraints file.\n\nSee https://pip.pypa.io/en/stable/user_guide/#constraints-files for more information on the format of constraint files and how constraints are applied in Pex and pip.\n\nThis only applies when resolving user requirements, rather than tools you run like Black and Pytest. To constrain tools, set `[tool].lockfile`, e.g. `[black].lockfile`.", + "removal_hint": "We encourage instead migrating to `[python].enable_resolves` and `[python].resolves`, which is an improvement over this option. The `[python].resolves` feature ensures that your lockfiles are fully comprehensive, i.e. include all transitive dependencies; uses hashes for better supply chain security; and supports advanced features like VCS and local requirements, along with options `[python].resolves_to_only_binary`.\n\nTo migrate, stop setting `[python].requirement_constraints` and `[python].resolve_all_constraints`, and instead set `[python].enable_resolves` to `true`. Then, run `pants generate-lockfiles`.", + "removal_version": "3.0.0.dev0", + "scoped_cmd_line_args": ["--python-requirement-constraints"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--artifacts"], + "typ": "file_option", + "unscoped_cmd_line_args": ["--requirement-constraints"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] - }, - { - "details": "", - "rank": "HARDCODED", - "value": ["org.scalameta:scalafmt-cli_2.13:{version}"] + "value": null } ] } }, - "PANTS_SCALAFMT_JVM_OPTIONS": { + "PANTS_PYTHON_RESOLVER_MANYLINUX": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--scalafmt-jvm-options=\"['', '', ...]\"", - "config_key": "jvm_options", - "default": [], + "comma_separated_display_args": "--python-resolver-manylinux=", + "config_key": "resolver_manylinux", + "default": "manylinux2014", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--scalafmt-jvm-options=\"['', '', ...]\""], - "env_var": "PANTS_SCALAFMT_JVM_OPTIONS", + "display_args": ["--python-resolver-manylinux="], + "env_var": "PANTS_PYTHON_RESOLVER_MANYLINUX", "fromfile": false, - "help": "List of JVM options to pass to `scalafmt` JVM processes.\n\nOptions set here will be added to those set in `[jvm].global_options`. Please check the documentation for the `jvm` subsystem to see what values are accepted here.", + "help": "Whether to allow resolution of manylinux wheels when resolving requirements for foreign linux platforms. The value should be a manylinux platform upper bound, e.g. `'manylinux2010'`, or else the string `'no'` to disallow.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--scalafmt-jvm-options"], + "scoped_cmd_line_args": ["--python-resolver-manylinux"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--jvm-options"], + "typ": "str", + "unscoped_cmd_line_args": ["--resolver-manylinux"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": "manylinux2014" } ] } }, - "PANTS_SCALAFMT_LOCKFILE": { + "PANTS_PYTHON_RESOLVES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--scalafmt-lockfile=", - "config_key": "lockfile", - "default": "", + "comma_separated_display_args": "--python-resolves=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "resolves", + "default": { + "python-default": "3rdparty/python/default.lock" + }, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--scalafmt-lockfile="], - "env_var": "PANTS_SCALAFMT_LOCKFILE", + "display_args": [ + "--python-resolves=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_PYTHON_RESOLVES", "fromfile": false, - "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/backend/scala/lint/scalafmt/scalafmt.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `scie-pants-linux-x86_64 jvm-generate-lockfiles --resolve=scalafmt`.", + "help": "A mapping of logical names to lockfile paths used in your project.\n\nMany organizations only need a single resolve for their whole project, which is a good default and often the simplest thing to do. However, you may need multiple resolves, such as if you use two conflicting versions of a requirement in your repository.\n\nIf you only need a single resolve, run `pants generate-lockfiles` to generate the lockfile.\n\nIf you need multiple resolves:\n\n 1. Via this option, define multiple resolve names and their lockfile paths. The names should be meaningful to your repository, such as `data-science` or `pants-plugins`.\n 2. Set the default with `[python].default_resolve`.\n 3. Update your `python_requirement` targets with the `resolve` field to declare which resolve they should be available in. They default to `[python].default_resolve`, so you only need to update targets that you want in non-default resolves. (Often you'll set this via the `python_requirements` or `poetry_requirements` target generators)\n 4. Run `pants generate-lockfiles` to generate the lockfiles. If the results aren't what you'd expect, adjust the prior step.\n 5. Update any targets like `python_source` / `python_sources`, `python_test` / `python_tests`, and `pex_binary` which need to set a non-default resolve with the `resolve` field.\n\nIf a target can work with multiple resolves, you can either use the `parametrize` mechanism or manually create a distinct target per resolve. See https://www.pantsbuild.org/v2.18/docs/targets for information about `parametrize`.\n\nFor example:\n\n python_sources(\n resolve=parametrize(\"data-science\", \"web-app\"),\n )\n\nYou can name the lockfile paths what you would like; Pants does not expect a certain file extension or location.\n\nOnly applies if `[python].enable_resolves` is true.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--scalafmt-lockfile"], + "scoped_cmd_line_args": ["--python-resolves"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--lockfile"], + "typ": "dict", + "unscoped_cmd_line_args": ["--resolves"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": {} }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "" + "value": { + "python-default": "3rdparty/python/default.lock" + } } ] } }, - "PANTS_SCALAFMT_SKIP": { + "PANTS_PYTHON_RESOLVES_GENERATE_LOCKFILES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]scalafmt-skip", - "config_key": "skip", - "default": false, + "comma_separated_display_args": "--[no-]python-resolves-generate-lockfiles", + "config_key": "resolves_generate_lockfiles", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]scalafmt-skip"], - "env_var": "PANTS_SCALAFMT_SKIP", + "display_args": ["--[no-]python-resolves-generate-lockfiles"], + "env_var": "PANTS_PYTHON_RESOLVES_GENERATE_LOCKFILES", "fromfile": false, - "help": "If true, don't use scalafmt when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "If False, Pants will not attempt to generate lockfiles for `[python].resolves` when running the `generate-lockfiles` goal.\n\nThis is intended to allow you to manually generate lockfiles for your own code, rather than using Pex lockfiles. For example, when adopting Pants in a project already using Poetry, you can use `poetry export --dev` to create a requirements.txt-style lockfile understood by Pants, then point `[python].resolves` to the file.\n\nIf you set this to False, Pants will not attempt to validate the metadata headers for your user lockfiles. This is useful so that you can keep `[python].invalid_lockfile_behavior` to `error` or `warn` if you'd like so that tool lockfiles continue to be validated, while user lockfiles are skipped.\n\nWarning: it will likely be slower to install manually generated user lockfiles than Pex ones because Pants cannot as efficiently extract the subset of requirements used for a particular task. See the option `[python].run_against_entire_lockfile`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--scalafmt-skip", "--no-scalafmt-skip"], + "scoped_cmd_line_args": [ + "--python-resolves-generate-lockfiles", + "--no-python-resolves-generate-lockfiles" + ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "unscoped_cmd_line_args": [ + "--resolves-generate-lockfiles", + "--no-resolves-generate-lockfiles" + ], "value_history": { "ranked_values": [ { @@ -20052,161 +20260,175 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": true } ] } }, - "PANTS_SCALAFMT_VERSION": { + "PANTS_PYTHON_RESOLVES_TO_CONSTRAINTS_FILE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--scalafmt-version=", - "config_key": "version", - "default": "3.2.1", + "comma_separated_display_args": "--python-resolves-to-constraints-file=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "resolves_to_constraints_file", + "default": {}, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--scalafmt-version="], - "env_var": "PANTS_SCALAFMT_VERSION", + "display_args": [ + "--python-resolves-to-constraints-file=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_PYTHON_RESOLVES_TO_CONSTRAINTS_FILE", "fromfile": false, - "help": "Version string for the tool. This is available for substitution in the `[scalafmt].artifacts` option by including the string `{version}`.", + "help": "When generating a resolve's lockfile, use a constraints file to pin the version of certain requirements. This is particularly useful to pin the versions of transitive dependencies of your direct requirements.\n\nSee https://pip.pypa.io/en/stable/user_guide/#constraints-files for more information on the format of constraint files and how constraints are applied in Pex and pip.\n\nExpects a dictionary of resolve names from `[python].resolves` and Python tools (e.g. `black` and `pytest`) to file paths for constraints files. For example, `{'data-science': '3rdparty/data-science-constraints.txt'}`. If a resolve is not set in the dictionary, it will not use a constraints file.\n\nYou can use the key `__default__` to set a default value for all resolves.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--scalafmt-version"], + "scoped_cmd_line_args": ["--python-resolves-to-constraints-file"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--version"], + "typ": "dict", + "unscoped_cmd_line_args": ["--resolves-to-constraints-file"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": {} }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "3.2.1" + "value": {} } ] } }, - "PANTS_SCALAPB_ARTIFACTS": { + "PANTS_PYTHON_RESOLVES_TO_INTERPRETER_CONSTRAINTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--scalapb-artifacts=\"['', '', ...]\"", - "config_key": "artifacts", - "default": ["com.thesamet.scalapb:scalapbc_2.13:{version}"], + "comma_separated_display_args": "--python-resolves-to-interpreter-constraints=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "resolves_to_interpreter_constraints", + "default": {}, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--scalapb-artifacts=\"['', '', ...]\""], - "env_var": "PANTS_SCALAPB_ARTIFACTS", + "display_args": [ + "--python-resolves-to-interpreter-constraints=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_PYTHON_RESOLVES_TO_INTERPRETER_CONSTRAINTS", "fromfile": false, - "help": "Artifact requirements for this tool using specified as either the address of a `jvm_artifact` target or, alternatively, as a colon-separated Maven coordinates (e.g., `group:name:version`). For Maven coordinates, the string `{version}` version will be substituted with the value of the `[scalapb].version` option.", + "help": "Override the interpreter constraints to use when generating a resolve's lockfile with the `generate-lockfiles` goal.\n\nBy default, each resolve from `[python].resolves` will use your global interpreter constraints set in `[python].interpreter_constraints`. With this option, you can override each resolve to use certain interpreter constraints, such as `{'data-science': ['==3.8.*']}`.\n\nWarning: this does NOT impact the interpreter constraints used by targets within the resolve, which is instead set by the option `[python].interpreter_constraints` and the `interpreter_constraints` field. It only impacts how the lockfile is generated.\n\nPants will validate that the interpreter constraints of your code using a resolve are compatible with that resolve's own constraints. For example, if your code is set to use `['==3.9.*']` via the `interpreter_constraints` field, but it's using a resolve whose interpreter constraints are set to `['==3.7.*']`, then Pants will error explaining the incompatibility.\n\nThe keys must be defined as resolves in `[python].resolves`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--scalapb-artifacts"], + "scoped_cmd_line_args": ["--python-resolves-to-interpreter-constraints"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--artifacts"], + "typ": "dict", + "unscoped_cmd_line_args": ["--resolves-to-interpreter-constraints"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": [] + "value": {} }, { "details": "", "rank": "HARDCODED", - "value": ["com.thesamet.scalapb:scalapbc_2.13:{version}"] + "value": {} } ] } }, - "PANTS_SCALAPB_JVM_OPTIONS": { + "PANTS_PYTHON_RESOLVES_TO_NO_BINARY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--scalapb-jvm-options=\"['', '', ...]\"", - "config_key": "jvm_options", - "default": [], + "comma_separated_display_args": "--python-resolves-to-no-binary=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "resolves_to_no_binary", + "default": {}, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--scalapb-jvm-options=\"['', '', ...]\""], - "env_var": "PANTS_SCALAPB_JVM_OPTIONS", + "display_args": [ + "--python-resolves-to-no-binary=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_PYTHON_RESOLVES_TO_NO_BINARY", "fromfile": false, - "help": "List of JVM options to pass to `scalapb` JVM processes.\n\nOptions set here will be added to those set in `[jvm].global_options`. Please check the documentation for the `jvm` subsystem to see what values are accepted here.", + "help": "When generating a resolve's lockfile, do not use binary packages (i.e. wheels) for these 3rdparty project names.\n\nExpects a dictionary of resolve names from `[python].resolves` and Python tools (e.g. `black` and `pytest`) to lists of project names. For example, `{'data-science': ['requests', 'numpy']}`. If a resolve is not set in the dictionary, it will have no restrictions on binary packages.\n\nYou can use the key `__default__` to set a default value for all resolves.\n\nFor each resolve, you can also use the value `:all:` to disable all binary packages: `{'data-science': [':all:']}`.\n\nNote that some packages are tricky to compile and may fail to install when this option is used on them. See https://pip.pypa.io/en/stable/cli/pip_install/#install-no-binary for details.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--scalapb-jvm-options"], + "scoped_cmd_line_args": ["--python-resolves-to-no-binary"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--jvm-options"], + "typ": "dict", + "unscoped_cmd_line_args": ["--resolves-to-no-binary"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": [] + "value": {} }, { "details": "", "rank": "HARDCODED", - "value": [] + "value": {} } ] } }, - "PANTS_SCALAPB_JVM_PLUGINS": { + "PANTS_PYTHON_RESOLVES_TO_ONLY_BINARY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--scalapb-jvm-plugins=\"['', '', ...]\"", - "config_key": "jvm_plugins", - "default": [], + "comma_separated_display_args": "--python-resolves-to-only-binary=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "resolves_to_only_binary", + "default": {}, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--scalapb-jvm-plugins=\"['', '', ...]\""], - "env_var": "PANTS_SCALAPB_JVM_PLUGINS", + "display_args": [ + "--python-resolves-to-only-binary=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_PYTHON_RESOLVES_TO_ONLY_BINARY", "fromfile": false, - "help": "A list of JVM-based `protoc` plugins to invoke when generating Scala code from protobuf files. The format for each plugin specifier is `NAME=ARTIFACT` where NAME is the name of the plugin and ARTIFACT is either the address of a `jvm_artifact` target or the colon-separated Maven coordinate for the plugin's jar artifact.\n\nFor example, to invoke the fs2-grpc protoc plugin, the following option would work: `--scalapb-jvm-plugins=fs2=org.typelevel:fs2-grpc-codegen_2.12:2.3.1`. (Note: you would also need to set `--scalapb-runtime-dependencies` appropriately to include the applicable runtime libraries for your chosen protoc plugins.)", + "help": "When generating a resolve's lockfile, do not use source packages (i.e. sdists) for these 3rdparty project names, e.g `['django', 'requests']`.\n\nExpects a dictionary of resolve names from `[python].resolves` and Python tools (e.g. `black` and `pytest`) to lists of project names. For example, `{'data-science': ['requests', 'numpy']}`. If a resolve is not set in the dictionary, it will have no restrictions on source packages.\n\nYou can use the key `__default__` to set a default value for all resolves.\n\nFor each resolve you can use the value `:all:` to disable all source packages: `{'data-science': [':all:']}`.\n\nPackages without binary distributions will fail to install when this option is used on them. See https://pip.pypa.io/en/stable/cli/pip_install/#install-only-binary for details.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--scalapb-jvm-plugins"], + "scoped_cmd_line_args": ["--python-resolves-to-only-binary"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--jvm-plugins"], + "typ": "dict", + "unscoped_cmd_line_args": ["--resolves-to-only-binary"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": [] + "value": {} }, { "details": "", "rank": "HARDCODED", - "value": [] + "value": {} } ] } }, - "PANTS_SCALAPB_LOCKFILE": { + "PANTS_PYTHON_RESOLVE_ALL_CONSTRAINTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--scalapb-lockfile=", - "config_key": "lockfile", - "default": "", - "deprecated_message": null, - "deprecation_active": false, - "display_args": ["--scalapb-lockfile="], - "env_var": "PANTS_SCALAPB_LOCKFILE", + "comma_separated_display_args": "--[no-]python-resolve-all-constraints", + "config_key": "resolve_all_constraints", + "default": true, + "deprecated_message": "Deprecated, is scheduled to be removed in version: 3.0.0.dev0.", + "deprecation_active": true, + "display_args": ["--[no-]python-resolve-all-constraints"], + "env_var": "PANTS_PYTHON_RESOLVE_ALL_CONSTRAINTS", "fromfile": false, - "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/backend/codegen/protobuf/scala/scalapbc.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `scie-pants-linux-x86_64 jvm-generate-lockfiles --resolve=scalapb`.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--scalapb-lockfile"], + "help": "(Only relevant when using `[python].requirement_constraints.`) If enabled, when resolving requirements, Pants will first resolve your entire constraints file as a single global resolve. Then, if the code uses a subset of your constraints file, Pants will extract the relevant requirements from that global resolve so that only what's actually needed gets used. If disabled, Pants will not use a global resolve and will resolve each subset of your requirements independently.\n\nUsually this option should be enabled because it can result in far fewer resolves.", + "removal_hint": "We encourage instead migrating to `[python].enable_resolves` and `[python].resolves`, which is an improvement over this option. The `[python].resolves` feature ensures that your lockfiles are fully comprehensive, i.e. include all transitive dependencies; uses hashes for better supply chain security; and supports advanced features like VCS and local requirements, along with options `[python].resolves_to_only_binary`.\n\nTo migrate, stop setting `[python].requirement_constraints` and `[python].resolve_all_constraints`, and instead set `[python].enable_resolves` to `true`. Then, run `pants generate-lockfiles`.", + "removal_version": "3.0.0.dev0", + "scoped_cmd_line_args": [ + "--python-resolve-all-constraints", + "--no-python-resolve-all-constraints" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--lockfile"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--resolve-all-constraints", + "--no-resolve-all-constraints" + ], "value_history": { "ranked_values": [ { @@ -20217,29 +20439,35 @@ { "details": null, "rank": "HARDCODED", - "value": "" + "value": true } ] } }, - "PANTS_SCALAPB_VERSION": { + "PANTS_PYTHON_RUN_AGAINST_ENTIRE_LOCKFILE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--scalapb-version=", - "config_key": "version", - "default": "0.11.6", + "comma_separated_display_args": "--[no-]python-run-against-entire-lockfile", + "config_key": "run_against_entire_lockfile", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--scalapb-version="], - "env_var": "PANTS_SCALAPB_VERSION", + "display_args": ["--[no-]python-run-against-entire-lockfile"], + "env_var": "PANTS_PYTHON_RUN_AGAINST_ENTIRE_LOCKFILE", "fromfile": false, - "help": "Version string for the tool. This is available for substitution in the `[scalapb].artifacts` option by including the string `{version}`.", + "help": "If enabled, when running binaries, tests, and repls, Pants will use the entire lockfile file instead of just the relevant subset.\n\nIf you are using Pex lockfiles, we generally do not recommend this. You will already get similar performance benefits to this option, without the downsides.\n\nOtherwise, this option can improve performance and reduce cache size. But it has two consequences: 1) All cached test results will be invalidated if any requirement in the lockfile\n changes, rather than just those that depend on the changed requirement.\n2) Requirements unneeded by a test/run/repl will be present on the sys.path, which\n might in rare cases cause their behavior to change.\n\nThis option does not affect packaging deployable artifacts, such as PEX files, wheels and cloud functions, which will still use just the exact subset of requirements needed.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--scalapb-version"], + "scoped_cmd_line_args": [ + "--python-run-against-entire-lockfile", + "--no-python-run-against-entire-lockfile" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--version"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--run-against-entire-lockfile", + "--no-run-against-entire-lockfile" + ], "value_history": { "ranked_values": [ { @@ -20250,131 +20478,152 @@ { "details": null, "rank": "HARDCODED", - "value": "0.11.6" + "value": false } ] } }, - "PANTS_SCALATEST_ARGS": { + "PANTS_PYTHON_TAILOR_IGNORE_EMPTY_INIT_FILES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--scalatest-args=\"[, , ...]\", ... -- [ [ [...]]]", - "config_key": "args", - "default": [], + "comma_separated_display_args": "--[no-]python-tailor-ignore-empty-init-files", + "config_key": "tailor_ignore_empty_init_files", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--scalatest-args=\"[, , ...]\"", - "... -- [ [ [...]]]" - ], - "env_var": "PANTS_SCALATEST_ARGS", + "display_args": ["--[no-]python-tailor-ignore-empty-init-files"], + "env_var": "PANTS_PYTHON_TAILOR_IGNORE_EMPTY_INIT_FILES", "fromfile": false, - "help": "Arguments to pass directly to Scalatest, e.g. `--scalatest-args='-t $testname'`.\n\nSee https://www.scalatest.org/user_guide/using_the_runner for supported arguments.", + "help": "If true, don't add `python_sources` targets for `__init__.py` files that are both empty and where there are no other Python files in the directory.\n\nEmpty and solitary `__init__.py` files usually exist as import scaffolding rather than true library code, so it can be noisy to add BUILD files.\n\nEven if this option is set to true, Pants will still ensure the empty `__init__.py` files are included in the sandbox when running processes.\n\nIf you set to false, you may also want to set `[python-infer].init_files = \"always\"`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--scalatest-args"], + "scoped_cmd_line_args": [ + "--python-tailor-ignore-empty-init-files", + "--no-python-tailor-ignore-empty-init-files" + ], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--tailor-ignore-empty-init-files", + "--no-tailor-ignore-empty-init-files" + ], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": true } ] } }, - "PANTS_SCALATEST_ARTIFACTS": { + "PANTS_PYTHON_TAILOR_PEX_BINARY_TARGETS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--scalatest-artifacts=\"['', '', ...]\"", - "config_key": "artifacts", - "default": ["org.scalatest:scalatest_2.13:{version}"], + "comma_separated_display_args": "--[no-]python-tailor-pex-binary-targets", + "config_key": "tailor_pex_binary_targets", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--scalatest-artifacts=\"['', '', ...]\""], - "env_var": "PANTS_SCALATEST_ARTIFACTS", + "display_args": ["--[no-]python-tailor-pex-binary-targets"], + "env_var": "PANTS_PYTHON_TAILOR_PEX_BINARY_TARGETS", "fromfile": false, - "help": "Artifact requirements for this tool using specified as either the address of a `jvm_artifact` target or, alternatively, as a colon-separated Maven coordinates (e.g., `group:name:version`). For Maven coordinates, the string `{version}` version will be substituted with the value of the `[scalatest].version` option.", + "help": "If true, add `pex_binary` targets for Python files named `__main__.py` or with a `__main__` clause with the `tailor` goal.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--scalatest-artifacts"], + "scoped_cmd_line_args": [ + "--python-tailor-pex-binary-targets", + "--no-python-tailor-pex-binary-targets" + ], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--artifacts"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--tailor-pex-binary-targets", + "--no-tailor-pex-binary-targets" + ], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": ["org.scalatest:scalatest_2.13:{version}"] + "value": false } ] } }, - "PANTS_SCALATEST_JVM_OPTIONS": { + "PANTS_PYTHON_TAILOR_PY_TYPED_TARGETS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--scalatest-jvm-options=\"['', '', ...]\"", - "config_key": "jvm_options", - "default": [], + "comma_separated_display_args": "--[no-]python-tailor-py-typed-targets", + "config_key": "tailor_py_typed_targets", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--scalatest-jvm-options=\"['', '', ...]\""], - "env_var": "PANTS_SCALATEST_JVM_OPTIONS", + "display_args": ["--[no-]python-tailor-py-typed-targets"], + "env_var": "PANTS_PYTHON_TAILOR_PY_TYPED_TARGETS", "fromfile": false, - "help": "List of JVM options to pass to `scalatest` JVM processes.\n\nOptions set here will be added to those set in `[jvm].global_options`. Please check the documentation for the `jvm` subsystem to see what values are accepted here.", + "help": "If true, add `resource` targets for marker files named `py.typed` with the `tailor` goal.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--scalatest-jvm-options"], + "scoped_cmd_line_args": [ + "--python-tailor-py-typed-targets", + "--no-python-tailor-py-typed-targets" + ], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--jvm-options"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--tailor-py-typed-targets", + "--no-tailor-py-typed-targets" + ], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": true } ] } }, - "PANTS_SCALATEST_LOCKFILE": { + "PANTS_PYTHON_TAILOR_REQUIREMENTS_TARGETS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--scalatest-lockfile=", - "config_key": "lockfile", - "default": "", + "comma_separated_display_args": "--[no-]python-tailor-requirements-targets", + "config_key": "tailor_requirements_targets", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--scalatest-lockfile="], - "env_var": "PANTS_SCALATEST_LOCKFILE", + "display_args": ["--[no-]python-tailor-requirements-targets"], + "env_var": "PANTS_PYTHON_TAILOR_REQUIREMENTS_TARGETS", "fromfile": false, - "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/backend/scala/subsystems/scalatest.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `scie-pants-linux-x86_64 jvm-generate-lockfiles --resolve=scalatest`.", + "help": "If true, add `python_requirements`, `poetry_requirements`, and `pipenv_requirements` target generators with the `tailor` goal.\n\n`python_requirements` targets are added for any file that matches the pattern `*requirements*.txt`. You will need to manually add `python_requirements` for different file names like `reqs.txt`.\n\n`poetry_requirements` targets are added for `pyproject.toml` files with `[tool.poetry` in them.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--scalatest-lockfile"], + "scoped_cmd_line_args": [ + "--python-tailor-requirements-targets", + "--no-python-tailor-requirements-targets" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--lockfile"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--tailor-requirements-targets", + "--no-tailor-requirements-targets" + ], "value_history": { "ranked_values": [ { @@ -20385,29 +20634,35 @@ { "details": null, "rank": "HARDCODED", - "value": "" + "value": true } ] } }, - "PANTS_SCALATEST_SKIP": { + "PANTS_PYTHON_TAILOR_SOURCE_TARGETS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]scalatest-skip", - "config_key": "skip", - "default": false, + "comma_separated_display_args": "--[no-]python-tailor-source-targets", + "config_key": "tailor_source_targets", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]scalatest-skip"], - "env_var": "PANTS_SCALATEST_SKIP", + "display_args": ["--[no-]python-tailor-source-targets"], + "env_var": "PANTS_PYTHON_TAILOR_SOURCE_TARGETS", "fromfile": false, - "help": "If true, don't use Scalatest when running `scie-pants-linux-x86_64 test`.", + "help": "If true, add `python_sources`, `python_tests`, and `python_test_utils` targets with the `tailor` goal.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--scalatest-skip", "--no-scalatest-skip"], + "scoped_cmd_line_args": [ + "--python-tailor-source-targets", + "--no-python-tailor-source-targets" + ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "unscoped_cmd_line_args": [ + "--tailor-source-targets", + "--no-tailor-source-targets" + ], "value_history": { "ranked_values": [ { @@ -20418,29 +20673,35 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": true } ] } }, - "PANTS_SCALATEST_VERSION": { + "PANTS_PYTHON_THRIFT_INFER_RUNTIME_DEPENDENCY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--scalatest-version=", - "config_key": "version", - "default": "3.2.10", + "comma_separated_display_args": "--[no-]python-thrift-infer-runtime-dependency", + "config_key": "infer_runtime_dependency", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--scalatest-version="], - "env_var": "PANTS_SCALATEST_VERSION", + "display_args": ["--[no-]python-thrift-infer-runtime-dependency"], + "env_var": "PANTS_PYTHON_THRIFT_INFER_RUNTIME_DEPENDENCY", "fromfile": false, - "help": "Version string for the tool. This is available for substitution in the `[scalatest].artifacts` option by including the string `{version}`.", + "help": "If True, will add a dependency on a `python_requirement` target exposing the `thrift` module (usually from the `thrift` requirement).\n\nIf `[python].enable_resolves` is set, Pants will only infer dependencies on `python_requirement` targets that use the same resolve as the particular `thrift_source` / `thrift_source` target uses, which is set via its `python_resolve` field.\n\nUnless this option is disabled, Pants will error if no relevant target is found or more than one is found which causes ambiguity.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--scalatest-version"], + "scoped_cmd_line_args": [ + "--python-thrift-infer-runtime-dependency", + "--no-python-thrift-infer-runtime-dependency" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--version"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--infer-runtime-dependency", + "--no-infer-runtime-dependency" + ], "value_history": { "ranked_values": [ { @@ -20451,143 +20712,123 @@ { "details": null, "rank": "HARDCODED", - "value": "3.2.10" + "value": true } ] } }, - "PANTS_SCALA_INFER_CONSUMED_TYPES": { + "PANTS_PYTHON_THRIFT_OPTIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]scala-infer-consumed-types", - "config_key": "consumed_types", - "default": true, + "comma_separated_display_args": "--python-thrift-options=\"['', '', ...]\"", + "config_key": "options", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]scala-infer-consumed-types"], - "env_var": "PANTS_SCALA_INFER_CONSUMED_TYPES", + "display_args": ["--python-thrift-options=\"['', '', ...]\""], + "env_var": "PANTS_PYTHON_THRIFT_OPTIONS", "fromfile": false, - "help": "Infer a target's dependencies by parsing consumed types from sources.", + "help": "Code generation options specific to the Python code generator to pass to the Apache `thift` binary via the `-gen py` argument. See `thrift -help` for supported values.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--scala-infer-consumed-types", - "--no-scala-infer-consumed-types" - ], + "scoped_cmd_line_args": ["--python-thrift-options"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--consumed-types", "--no-consumed-types"], + "typ": "list", + "unscoped_cmd_line_args": ["--options"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": true + "value": [] } ] } }, - "PANTS_SCALA_INFER_FORCE_ADD_SIBLINGS_AS_DEPENDENCIES": { + "PANTS_PYTYPE_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]scala-infer-force-add-siblings-as-dependencies", - "config_key": "force_add_siblings_as_dependencies", - "default": false, + "comma_separated_display_args": "--pytype-args=\"[, , ...]\"", + "config_key": "args", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]scala-infer-force-add-siblings-as-dependencies"], - "env_var": "PANTS_SCALA_INFER_FORCE_ADD_SIBLINGS_AS_DEPENDENCIES", + "display_args": ["--pytype-args=\"[, , ...]\""], + "env_var": "PANTS_PYTYPE_ARGS", "fromfile": false, - "help": "If true, add a dependency on all `scala_source` targets generated by the same `scala_sources` target generator. If false, the dependencies will only be added if `[scala-infer].imports` is also set to false.\n\nSetting this option to true reduces the precision of dependency information. That means that you may end up compiling more than is necessary for a particular task, and that compilation will be invalidated more frequently than actually necessary. However, setting to true may be helpful if compilation fails due to missing dependencies.", + "help": "Arguments to pass directly to Pytype, e.g. `--pytype-args='--version'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--scala-infer-force-add-siblings-as-dependencies", - "--no-scala-infer-force-add-siblings-as-dependencies" - ], + "scoped_cmd_line_args": ["--pytype-args"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--force-add-siblings-as-dependencies", - "--no-force-add-siblings-as-dependencies" - ], + "typ": "list", + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": [] } ] } }, - "PANTS_SCALA_INFER_IMPORTS": { + "PANTS_PYTYPE_CONFIG": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]scala-infer-imports", - "config_key": "imports", - "default": true, + "comma_separated_display_args": "--pytype-config=", + "config_key": "config", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]scala-infer-imports"], - "env_var": "PANTS_SCALA_INFER_IMPORTS", + "display_args": ["--pytype-config="], + "env_var": "PANTS_PYTYPE_CONFIG", "fromfile": false, - "help": "Infer a target's dependencies by parsing import statements from sources.", + "help": "Path to an toml config file understood by Pytype (https://github.com/google/pytype#config-file).", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--scala-infer-imports", - "--no-scala-infer-imports" - ], + "scoped_cmd_line_args": ["--pytype-config"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--imports", "--no-imports"], + "typ": "file_option", + "unscoped_cmd_line_args": ["--config"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": true } ] } }, - "PANTS_SCALA_INFER_PACKAGE_OBJECTS": { + "PANTS_PYTYPE_CONSOLE_SCRIPT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]scala-infer-package-objects", - "config_key": "package_objects", - "default": true, + "comma_separated_display_args": "--pytype-console-script=", + "config_key": "console_script", + "default": "pytype", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]scala-infer-package-objects"], - "env_var": "PANTS_SCALA_INFER_PACKAGE_OBJECTS", + "display_args": ["--pytype-console-script="], + "env_var": "PANTS_PYTYPE_CONSOLE_SCRIPT", "fromfile": false, - "help": "Add dependency on the package object to every target.", + "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--scala-infer-package-objects", - "--no-scala-infer-package-objects" - ], + "scoped_cmd_line_args": ["--pytype-console-script"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--package-objects", "--no-package-objects"], + "typ": "str", + "unscoped_cmd_line_args": ["--console-script"], "value_history": { "ranked_values": [ { @@ -20598,106 +20839,87 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": "pytype" } ] } }, - "PANTS_SCALA_TAILOR_SOURCE_TARGETS": { + "PANTS_PYTYPE_ENTRY_POINT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]scala-tailor-source-targets", - "config_key": "tailor_source_targets", - "default": true, + "comma_separated_display_args": "--pytype-entry-point=", + "config_key": "entry_point", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]scala-tailor-source-targets"], - "env_var": "PANTS_SCALA_TAILOR_SOURCE_TARGETS", + "display_args": ["--pytype-entry-point="], + "env_var": "PANTS_PYTYPE_ENTRY_POINT", "fromfile": false, - "help": "If true, add `scala_sources`, `scala_junit_tests`, and `scalatest_tests` targets with the `tailor` goal.", + "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--scala-tailor-source-targets", - "--no-scala-tailor-source-targets" - ], + "scoped_cmd_line_args": ["--pytype-entry-point"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--tailor-source-targets", - "--no-tailor-source-targets" - ], + "typ": "str", + "unscoped_cmd_line_args": ["--entry-point"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": true } ] } }, - "PANTS_SCALA_VERSION_FOR_RESOLVE": { + "PANTS_PYTYPE_INSTALL_FROM_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--scala-version-for-resolve=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "version_for_resolve", - "default": {}, + "comma_separated_display_args": "--pytype-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--scala-version-for-resolve=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_SCALA_VERSION_FOR_RESOLVE", + "display_args": ["--pytype-install-from-resolve="], + "env_var": "PANTS_PYTYPE_INSTALL_FROM_RESOLVE", "fromfile": false, - "help": "A dictionary mapping the name of a resolve to the Scala version to use for all Scala targets consuming that resolve.\n\nAll Scala-compiled jars on a resolve's classpath must be \"compatible\" with one another and with all Scala-compiled first-party sources from `scala_sources` (and other Scala target types) using that resolve. The option sets the Scala version that will be used to compile all first-party sources using the resolve. This ensures that the compatibility property is maintained for a resolve. To support multiple Scala versions, use multiple resolves.", + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `pytype` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--scala-version-for-resolve"], + "scoped_cmd_line_args": ["--pytype-install-from-resolve"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--version-for-resolve"], + "typ": "str", + "unscoped_cmd_line_args": ["--install-from-resolve"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": {} - }, - { - "details": "", - "rank": "HARDCODED", - "value": {} + "value": null } ] } }, - "PANTS_SCC_ARGS": { + "PANTS_PYTYPE_INTERPRETER_CONSTRAINTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--scc-args=\"[, , ...]\", ... -- [ [ [...]]]", - "config_key": "args", - "default": [], + "comma_separated_display_args": "--pytype-interpreter-constraints=\"['', '', ...]\"", + "config_key": "interpreter_constraints", + "default": ["CPython>=3.7,<3.10"], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--scc-args=\"[, , ...]\"", - "... -- [ [ [...]]]" + "--pytype-interpreter-constraints=\"['', '', ...]\"" ], - "env_var": "PANTS_SCC_ARGS", + "env_var": "PANTS_PYTYPE_INTERPRETER_CONSTRAINTS", "fromfile": false, - "help": "Arguments to pass directly to SCC, e.g. `--scc-args='--no-cocomo'`.\n\nRefer to to https://github.com/boyter/scc.", + "help": "Python interpreter constraints for this tool.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--scc-args"], + "scoped_cmd_line_args": ["--pytype-interpreter-constraints"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "unscoped_cmd_line_args": ["--interpreter-constraints"], "value_history": { "ranked_values": [ { @@ -20708,34 +20930,29 @@ { "details": "", "rank": "HARDCODED", - "value": [] + "value": ["CPython>=3.7,<3.10"] } ] } }, - "PANTS_SCC_KNOWN_VERSIONS": { + "PANTS_PYTYPE_REQUIREMENTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--scc-known-versions=\"['', '', ...]\"", - "config_key": "known_versions", - "default": [ - "3.0.0|macos_arm64 |846cb1b25025a0794d455719bc17cfb3f588576a58af1d95036f6c654e294f98|2006145", - "3.0.0|macos_x86_64|9c3064e477ab36e16204ad34f649372034bca4df669615eff5de4aa05b2ddf1a|2048134", - "3.0.0|linux_arm64 |04f9e797b70a678833e49df5e744f95080dfb7f963c0cd34f5b5d4712d290f33|1768037", - "3.0.0|linux_x86_64|13ca47ce00b5bd032f97f3af7aa8eb3c717b8972b404b155a378b09110e4aa0c|1948341" - ], + "comma_separated_display_args": "--pytype-requirements=\"['', '', ...]\"", + "config_key": "requirements", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--scc-known-versions=\"['', '', ...]\""], - "env_var": "PANTS_SCC_KNOWN_VERSIONS", + "display_args": ["--pytype-requirements=\"['', '', ...]\""], + "env_var": "PANTS_PYTYPE_REQUIREMENTS", "fromfile": false, - "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", + "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--scc-known-versions"], + "scoped_cmd_line_args": ["--pytype-requirements"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--known-versions"], + "unscoped_cmd_line_args": ["--requirements"], "value_history": { "ranked_values": [ { @@ -20746,114 +20963,95 @@ { "details": "", "rank": "HARDCODED", - "value": [ - "3.0.0|macos_arm64 |846cb1b25025a0794d455719bc17cfb3f588576a58af1d95036f6c654e294f98|2006145", - "3.0.0|macos_x86_64|9c3064e477ab36e16204ad34f649372034bca4df669615eff5de4aa05b2ddf1a|2048134", - "3.0.0|linux_arm64 |04f9e797b70a678833e49df5e744f95080dfb7f963c0cd34f5b5d4712d290f33|1768037", - "3.0.0|linux_x86_64|13ca47ce00b5bd032f97f3af7aa8eb3c717b8972b404b155a378b09110e4aa0c|1948341" - ] + "value": [] } ] } }, - "PANTS_SCC_URL_PLATFORM_MAPPING": { + "PANTS_PYTYPE_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--scc-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "url_platform_mapping", - "default": { - "linux_arm64": "arm64-unknown-linux", - "linux_x86_64": "x86_64-unknown-linux", - "macos_arm64": "arm64-apple-darwin", - "macos_x86_64": "x86_64-apple-darwin" - }, + "comma_separated_display_args": "--[no-]pytype-skip", + "config_key": "skip", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--scc-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_SCC_URL_PLATFORM_MAPPING", + "display_args": ["--[no-]pytype-skip"], + "env_var": "PANTS_PYTYPE_SKIP", "fromfile": false, - "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", + "help": "If true, don't use Pytype when running `pants check`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--scc-url-platform-mapping"], + "scoped_cmd_line_args": ["--pytype-skip", "--no-pytype-skip"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--url-platform-mapping"], + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": {} + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": { - "linux_arm64": "arm64-unknown-linux", - "linux_x86_64": "x86_64-unknown-linux", - "macos_arm64": "arm64-apple-darwin", - "macos_x86_64": "x86_64-apple-darwin" - } + "value": false } ] } }, - "PANTS_SCC_URL_TEMPLATE": { + "PANTS_PYUPGRADE_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--scc-url-template=", - "config_key": "url_template", - "default": "https://github.com/boyter/scc/releases/download/v{version}/scc-{version}-{platform}.zip", + "comma_separated_display_args": "--pyupgrade-args=\"[, , ...]\"", + "config_key": "args", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--scc-url-template="], - "env_var": "PANTS_SCC_URL_TEMPLATE", + "display_args": ["--pyupgrade-args=\"[, , ...]\""], + "env_var": "PANTS_PYUPGRADE_ARGS", "fromfile": false, - "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", + "help": "Arguments to pass directly to pyupgrade, e.g. `--pyupgrade-args='--py39-plus --keep-runtime-typing'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--scc-url-template"], + "scoped_cmd_line_args": ["--pyupgrade-args"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--url-template"], + "typ": "list", + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "https://github.com/boyter/scc/releases/download/v{version}/scc-{version}-{platform}.zip" + "value": [] } ] } }, - "PANTS_SCC_USE_UNSUPPORTED_VERSION": { - "choices": ["error", "warning"], - "comma_separated_choices": "error, warning", - "comma_separated_display_args": "--scc-use-unsupported-version=", - "config_key": "use_unsupported_version", - "default": "error", + "PANTS_PYUPGRADE_CONSOLE_SCRIPT": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pyupgrade-console-script=", + "config_key": "console_script", + "default": "pyupgrade", "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--scc-use-unsupported-version=" - ], - "env_var": "PANTS_SCC_USE_UNSUPPORTED_VERSION", + "display_args": ["--pyupgrade-console-script="], + "env_var": "PANTS_PYUPGRADE_CONSOLE_SCRIPT", "fromfile": false, - "help": "\nWhat action to take in case the requested version of SCC is not supported.\n\nSupported SCC versions: unspecified\n", + "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--scc-use-unsupported-version"], + "scoped_cmd_line_args": ["--pyupgrade-console-script"], "target_field_name": null, - "typ": "UnsupportedVersionUsage", - "unscoped_cmd_line_args": ["--use-unsupported-version"], + "typ": "str", + "unscoped_cmd_line_args": ["--console-script"], "value_history": { "ranked_values": [ { @@ -20864,120 +21062,117 @@ { "details": null, "rank": "HARDCODED", - "value": "error" + "value": "pyupgrade" } ] } }, - "PANTS_SCC_VERSION": { + "PANTS_PYUPGRADE_ENTRY_POINT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--scc-version=", - "config_key": "version", - "default": "3.0.0", + "comma_separated_display_args": "--pyupgrade-entry-point=", + "config_key": "entry_point", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--scc-version="], - "env_var": "PANTS_SCC_VERSION", + "display_args": ["--pyupgrade-entry-point="], + "env_var": "PANTS_PYUPGRADE_ENTRY_POINT", "fromfile": false, - "help": "Use this version of SCC.", + "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--scc-version"], + "scoped_cmd_line_args": ["--pyupgrade-entry-point"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--version"], + "unscoped_cmd_line_args": ["--entry-point"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": "3.0.0" } ] } }, - "PANTS_SESSION_END_TASKS_TIMEOUT": { + "PANTS_PYUPGRADE_INSTALL_FROM_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--session-end-tasks-timeout=", - "config_key": "session_end_tasks_timeout", - "default": 3.0, + "comma_separated_display_args": "--pyupgrade-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--session-end-tasks-timeout="], - "env_var": "PANTS_SESSION_END_TASKS_TIMEOUT", + "display_args": ["--pyupgrade-install-from-resolve="], + "env_var": "PANTS_PYUPGRADE_INSTALL_FROM_RESOLVE", "fromfile": false, - "help": "The time in seconds to wait for still-running \"session end\" tasks to complete before finishing completion of a Pants invocation. \"Session end\" tasks include, for example, writing data that was generated during the applicable Pants invocation to a configured remote cache.", + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `pyupgrade` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--session-end-tasks-timeout"], + "scoped_cmd_line_args": ["--pyupgrade-install-from-resolve"], "target_field_name": null, - "typ": "float", - "unscoped_cmd_line_args": ["--session-end-tasks-timeout"], + "typ": "str", + "unscoped_cmd_line_args": ["--install-from-resolve"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": 3.0 } ] } }, - "PANTS_SETUPTOOLS_INSTALL_FROM_RESOLVE": { + "PANTS_PYUPGRADE_INTERPRETER_CONSTRAINTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--setuptools-install-from-resolve=", - "config_key": "install_from_resolve", - "default": null, + "comma_separated_display_args": "--pyupgrade-interpreter-constraints=\"['', '', ...]\"", + "config_key": "interpreter_constraints", + "default": ["CPython>=3.7,<4"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--setuptools-install-from-resolve="], - "env_var": "PANTS_SETUPTOOLS_INSTALL_FROM_RESOLVE", + "display_args": [ + "--pyupgrade-interpreter-constraints=\"['', '', ...]\"" + ], + "env_var": "PANTS_PYUPGRADE_INTERPRETER_CONSTRAINTS", "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `setuptools` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "help": "Python interpreter constraints for this tool.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--setuptools-install-from-resolve"], + "scoped_cmd_line_args": ["--pyupgrade-interpreter-constraints"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--install-from-resolve"], + "typ": "list", + "unscoped_cmd_line_args": ["--interpreter-constraints"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": ["CPython>=3.7,<4"] } ] } }, - "PANTS_SETUPTOOLS_REQUIREMENTS": { + "PANTS_PYUPGRADE_REQUIREMENTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--setuptools-requirements=\"['', '', ...]\"", + "comma_separated_display_args": "--pyupgrade-requirements=\"['', '', ...]\"", "config_key": "requirements", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--setuptools-requirements=\"['', '', ...]\""], - "env_var": "PANTS_SETUPTOOLS_REQUIREMENTS", + "display_args": ["--pyupgrade-requirements=\"['', '', ...]\""], + "env_var": "PANTS_PYUPGRADE_REQUIREMENTS", "fromfile": false, "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--setuptools-requirements"], + "scoped_cmd_line_args": ["--pyupgrade-requirements"], "target_field_name": null, "typ": "list", "unscoped_cmd_line_args": ["--requirements"], @@ -20996,187 +21191,189 @@ ] } }, - "PANTS_SETUPTOOLS_SCM_CONSOLE_SCRIPT": { + "PANTS_PYUPGRADE_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--setuptools-scm-console-script=", - "config_key": "console_script", - "default": null, + "comma_separated_display_args": "--[no-]pyupgrade-skip", + "config_key": "skip", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--setuptools-scm-console-script="], - "env_var": "PANTS_SETUPTOOLS_SCM_CONSOLE_SCRIPT", + "display_args": ["--[no-]pyupgrade-skip"], + "env_var": "PANTS_PYUPGRADE_SKIP", "fromfile": false, - "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", + "help": "If true, don't use pyupgrade when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--setuptools-scm-console-script"], + "scoped_cmd_line_args": ["--pyupgrade-skip", "--no-pyupgrade-skip"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--console-script"], + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false } ] } }, - "PANTS_SETUPTOOLS_SCM_ENTRY_POINT": { + "PANTS_PY_CONSTRAINTS_OUTPUT_FILE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--setuptools-scm-entry-point=", - "config_key": "entry_point", - "default": "setuptools_scm", + "comma_separated_display_args": "--py-constraints-output-file=", + "config_key": "output_file", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--setuptools-scm-entry-point="], - "env_var": "PANTS_SETUPTOOLS_SCM_ENTRY_POINT", + "display_args": ["--py-constraints-output-file="], + "env_var": "PANTS_PY_CONSTRAINTS_OUTPUT_FILE", "fromfile": false, - "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", + "help": "Output the goal's stdout to this file. If unspecified, outputs to stdout.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--setuptools-scm-entry-point"], + "scoped_cmd_line_args": ["--py-constraints-output-file"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--entry-point"], + "unscoped_cmd_line_args": ["--output-file"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": "setuptools_scm" } ] } }, - "PANTS_SETUPTOOLS_SCM_INSTALL_FROM_RESOLVE": { + "PANTS_PY_CONSTRAINTS_SUMMARY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--setuptools-scm-install-from-resolve=", - "config_key": "install_from_resolve", - "default": null, + "comma_separated_display_args": "--[no-]py-constraints-summary", + "config_key": "summary", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--setuptools-scm-install-from-resolve="], - "env_var": "PANTS_SETUPTOOLS_SCM_INSTALL_FROM_RESOLVE", + "display_args": ["--[no-]py-constraints-summary"], + "env_var": "PANTS_PY_CONSTRAINTS_SUMMARY", "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `setuptools-scm` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "help": "Output a CSV summary of interpreter constraints for your whole repository. The headers are `Target`, `Constraints`, `Transitive Constraints`, `# Dependencies`, and `# Dependents`.\n\nThis information can be useful when prioritizing a migration from one Python version to another (e.g. to Python 3). Use `# Dependencies` and `# Dependents` to help prioritize which targets are easiest to port (low # dependencies) and highest impact to port (high # dependents).\n\nUse a tool like Pandas or Excel to process the CSV. Use the option `--py-constraints-output-file=summary.csv` to write directly to a file.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--setuptools-scm-install-from-resolve"], + "scoped_cmd_line_args": [ + "--py-constraints-summary", + "--no-py-constraints-summary" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--install-from-resolve"], + "typ": "bool", + "unscoped_cmd_line_args": ["--summary", "--no-summary"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false } ] } }, - "PANTS_SETUPTOOLS_SCM_INTERPRETER_CONSTRAINTS": { + "PANTS_REGEX_LINT_CONFIG": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--setuptools-scm-interpreter-constraints=\"['', '', ...]\"", - "config_key": "interpreter_constraints", - "default": ["CPython>=3.7,<4"], + "comma_separated_display_args": "--regex-lint-config=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "config", + "default": {}, "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--setuptools-scm-interpreter-constraints=\"['', '', ...]\"" + "--regex-lint-config=\"{'key1': val1, 'key2': val2, ...}\"" ], - "env_var": "PANTS_SETUPTOOLS_SCM_INTERPRETER_CONSTRAINTS", - "fromfile": false, - "help": "Python interpreter constraints for this tool.", + "env_var": "PANTS_REGEX_LINT_CONFIG", + "fromfile": true, + "help": "Config schema is as follows:\n\n ```\n {\n 'required_matches': {\n 'path_pattern1': [content_pattern1, content_pattern2],\n 'path_pattern2': [content_pattern1, content_pattern3],\n ...\n },\n 'path_patterns': [\n {\n 'name': path_pattern1',\n 'pattern': ,\n 'inverted': True|False (defaults to False),\n 'content_encoding': (defaults to utf8)\n },\n ...\n ],\n 'content_patterns': [\n {\n 'name': 'content_pattern1',\n 'pattern': ,\n 'inverted': True|False (defaults to False)\n }\n ...\n ]\n }\n ```\n\nMeaning: if a file matches some path pattern, its content must match all the corresponding content patterns.\n\nIt's often helpful to load this config from a JSON or YAML file. To do that, set `[regex-lint].config = '@path/to/config.yaml'`, for example.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--setuptools-scm-interpreter-constraints"], + "scoped_cmd_line_args": ["--regex-lint-config"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--interpreter-constraints"], + "typ": "dict", + "unscoped_cmd_line_args": ["--config"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": [] + "value": {} }, { "details": "", "rank": "HARDCODED", - "value": ["CPython>=3.7,<4"] + "value": {} } ] } }, - "PANTS_SETUPTOOLS_SCM_REQUIREMENTS": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--setuptools-scm-requirements=\"['', '', ...]\"", - "config_key": "requirements", - "default": [], + "PANTS_REGEX_LINT_DETAIL_LEVEL": { + "choices": ["none", "summary", "nonmatching", "names", "all"], + "comma_separated_choices": "none, summary, nonmatching, names, all", + "comma_separated_display_args": "--regex-lint-detail-level=", + "config_key": "detail_level", + "default": "nonmatching", "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--setuptools-scm-requirements=\"['', '', ...]\"" - ], - "env_var": "PANTS_SETUPTOOLS_SCM_REQUIREMENTS", + "display_args": ["--regex-lint-detail-level="], + "env_var": "PANTS_REGEX_LINT_DETAIL_LEVEL", "fromfile": false, - "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "help": "How much detail to include in the result.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--setuptools-scm-requirements"], + "scoped_cmd_line_args": ["--regex-lint-detail-level"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--requirements"], + "typ": "DetailLevel", + "unscoped_cmd_line_args": ["--detail-level"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": "nonmatching" } ] } }, - "PANTS_SETUP_PY_GENERATION_FIRST_PARTY_DEPENDENCY_VERSION_SCHEME": { - "choices": ["exact", "compatible", "any"], - "comma_separated_choices": "exact, compatible, any", - "comma_separated_display_args": "--setup-py-generation-first-party-dependency-version-scheme=", - "config_key": "first_party_dependency_version_scheme", - "default": "exact", + "PANTS_REGEX_LINT_SKIP": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]regex-lint-skip", + "config_key": "skip", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--setup-py-generation-first-party-dependency-version-scheme=" - ], - "env_var": "PANTS_SETUP_PY_GENERATION_FIRST_PARTY_DEPENDENCY_VERSION_SCHEME", + "display_args": ["--[no-]regex-lint-skip"], + "env_var": "PANTS_REGEX_LINT_SKIP", "fromfile": false, - "help": "What version to set in `install_requires` when a `python_distribution` depends on other `python_distribution`s. If `exact`, will use `==`. If `compatible`, will use `~=`. If `any`, will leave off the version. See https://www.python.org/dev/peps/pep-0440/#version-specifiers.", + "help": "If true, don't use regex-lint when running `pants lint`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--setup-py-generation-first-party-dependency-version-scheme" - ], + "scoped_cmd_line_args": ["--regex-lint-skip", "--no-regex-lint-skip"], "target_field_name": null, - "typ": "FirstPartyDependencyVersionScheme", - "unscoped_cmd_line_args": ["--first-party-dependency-version-scheme"], + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -21187,34 +21384,31 @@ { "details": null, "rank": "HARDCODED", - "value": "exact" + "value": false } ] } }, - "PANTS_SETUP_PY_GENERATION_GENERATE_SETUP_DEFAULT": { + "PANTS_REMOTE_CACHE_READ": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]setup-py-generation-generate-setup-default", - "config_key": "generate_setup_default", - "default": true, + "comma_separated_display_args": "--[no-]remote-cache-read", + "config_key": "remote_cache_read", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]setup-py-generation-generate-setup-default"], - "env_var": "PANTS_SETUP_PY_GENERATION_GENERATE_SETUP_DEFAULT", + "display_args": ["--[no-]remote-cache-read"], + "env_var": "PANTS_REMOTE_CACHE_READ", "fromfile": false, - "help": "The default value for the `generate_setup` field on `python_distribution` targets. Can be overridden per-target by setting that field explicitly. Set this to False if you mostly rely on handwritten setup files (`setup.py`, `setup.cfg` and similar). Leave as True if you mostly rely on Pants generating setup files for you.", + "help": "Whether to enable reading from a remote cache.\n\nThis cannot be used at the same time as `[GLOBAL].remote_execution`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--setup-py-generation-generate-setup-default", - "--no-setup-py-generation-generate-setup-default" - ], + "scoped_cmd_line_args": ["--remote-cache-read", "--no-remote-cache-read"], "target_field_name": null, "typ": "bool", "unscoped_cmd_line_args": [ - "--generate-setup-default", - "--no-generate-setup-default" + "--remote-cache-read", + "--no-remote-cache-read" ], "value_history": { "ranked_values": [ @@ -21226,65 +21420,62 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": false } ] } }, - "PANTS_SHELLCHECK_ARGS": { + "PANTS_REMOTE_CACHE_READ_TIMEOUT_MILLIS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--shellcheck-args=\"[, , ...]\"", - "config_key": "args", - "default": [], - "deprecated_message": null, - "deprecation_active": false, - "display_args": ["--shellcheck-args=\"[, , ...]\""], - "env_var": "PANTS_SHELLCHECK_ARGS", + "comma_separated_display_args": "--remote-cache-read-timeout-millis=", + "config_key": "remote_cache_read_timeout_millis", + "default": 1500, + "deprecated_message": "Deprecated, is scheduled to be removed in version: 2.19.0.dev0.", + "deprecation_active": true, + "display_args": ["--remote-cache-read-timeout-millis="], + "env_var": "PANTS_REMOTE_CACHE_READ_TIMEOUT_MILLIS", "fromfile": false, - "help": "Arguments to pass directly to Shellcheck, e.g. `--shellcheck-args='-e SC20529'`.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--shellcheck-args"], + "help": "Timeout value for remote cache lookups in milliseconds.", + "removal_hint": "Use the `remote_cache_rpc_timeout_millis` option instead.", + "removal_version": "2.19.0.dev0", + "scoped_cmd_line_args": ["--remote-cache-read-timeout-millis"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "typ": "int", + "unscoped_cmd_line_args": ["--remote-cache-read-timeout-millis"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": 1500 } ] } }, - "PANTS_SHELLCHECK_CONFIG_DISCOVERY": { + "PANTS_REMOTE_CACHE_RPC_CONCURRENCY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]shellcheck-config-discovery", - "config_key": "config_discovery", - "default": true, + "comma_separated_display_args": "--remote-cache-rpc-concurrency=", + "config_key": "remote_cache_rpc_concurrency", + "default": 128, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]shellcheck-config-discovery"], - "env_var": "PANTS_SHELLCHECK_CONFIG_DISCOVERY", + "display_args": ["--remote-cache-rpc-concurrency="], + "env_var": "PANTS_REMOTE_CACHE_RPC_CONCURRENCY", "fromfile": false, - "help": "If true, Pants will include all relevant `.shellcheckrc` and `shellcheckrc` files during runs. See https://www.mankier.com/1/shellcheck#RC_Files for where these can be located.", + "help": "The number of concurrent requests allowed to the remote cache service.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--shellcheck-config-discovery", - "--no-shellcheck-config-discovery" - ], + "scoped_cmd_line_args": ["--remote-cache-rpc-concurrency"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], + "typ": "int", + "unscoped_cmd_line_args": ["--remote-cache-rpc-concurrency"], "value_history": { "ranked_values": [ { @@ -21295,74 +21486,62 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": 128 } ] } }, - "PANTS_SHELLCHECK_KNOWN_VERSIONS": { + "PANTS_REMOTE_CACHE_RPC_TIMEOUT_MILLIS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--shellcheck-known-versions=\"['', '', ...]\"", - "config_key": "known_versions", - "default": [ - "v0.8.0|macos_arm64 |36dffd536b801c8bab2e9fa468163037e0c7f7e0a05298e5ad6299b4dde67e31|14525367", - "v0.8.0|macos_x86_64|4e93a76ee116b2f08c88e25011830280ad0d61615d8346364a4ea564b29be3f0|6310442", - "v0.8.0|linux_arm64 |8f4810485425636eadce2ec23441fd29d5b1b58d239ffda0a5faf8dd499026f5|4884430", - "v0.8.0|linux_x86_64|01d181787ffe63ebb0a2293f63bdc8455c5c30d3a6636320664bfa278424638f|2082242" - ], + "comma_separated_display_args": "--remote-cache-rpc-timeout-millis=", + "config_key": "remote_cache_rpc_timeout_millis", + "default": 1500, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--shellcheck-known-versions=\"['', '', ...]\"" - ], - "env_var": "PANTS_SHELLCHECK_KNOWN_VERSIONS", + "display_args": ["--remote-cache-rpc-timeout-millis="], + "env_var": "PANTS_REMOTE_CACHE_RPC_TIMEOUT_MILLIS", "fromfile": false, - "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", + "help": "Timeout value for remote cache RPCs in milliseconds.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--shellcheck-known-versions"], + "scoped_cmd_line_args": ["--remote-cache-rpc-timeout-millis"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--known-versions"], + "typ": "int", + "unscoped_cmd_line_args": ["--remote-cache-rpc-timeout-millis"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [ - "v0.8.0|macos_arm64 |36dffd536b801c8bab2e9fa468163037e0c7f7e0a05298e5ad6299b4dde67e31|14525367", - "v0.8.0|macos_x86_64|4e93a76ee116b2f08c88e25011830280ad0d61615d8346364a4ea564b29be3f0|6310442", - "v0.8.0|linux_arm64 |8f4810485425636eadce2ec23441fd29d5b1b58d239ffda0a5faf8dd499026f5|4884430", - "v0.8.0|linux_x86_64|01d181787ffe63ebb0a2293f63bdc8455c5c30d3a6636320664bfa278424638f|2082242" - ] + "value": 1500 } ] } }, - "PANTS_SHELLCHECK_SKIP": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]shellcheck-skip", - "config_key": "skip", - "default": false, + "PANTS_REMOTE_CACHE_WARNINGS": { + "choices": ["ignore", "first_only", "backoff"], + "comma_separated_choices": "ignore, first_only, backoff", + "comma_separated_display_args": "--remote-cache-warnings=", + "config_key": "remote_cache_warnings", + "default": "backoff", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]shellcheck-skip"], - "env_var": "PANTS_SHELLCHECK_SKIP", + "display_args": ["--remote-cache-warnings="], + "env_var": "PANTS_REMOTE_CACHE_WARNINGS", "fromfile": false, - "help": "If true, don't use Shellcheck when running `scie-pants-linux-x86_64 lint`.", + "help": "How frequently to log remote cache failures at the `warn` log level.\n\nAll errors not logged at the `warn` level will instead be logged at the `debug` level.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--shellcheck-skip", "--no-shellcheck-skip"], + "scoped_cmd_line_args": ["--remote-cache-warnings"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "typ": "RemoteCacheWarningsBehavior", + "unscoped_cmd_line_args": ["--remote-cache-warnings"], "value_history": { "ranked_values": [ { @@ -21373,181 +21552,152 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": "backoff" } ] } }, - "PANTS_SHELLCHECK_URL_PLATFORM_MAPPING": { + "PANTS_REMOTE_CACHE_WRITE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--shellcheck-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "url_platform_mapping", - "default": { - "linux_arm64": "linux.aarch64", - "linux_x86_64": "linux.x86_64", - "macos_arm64": "darwin.aarch64", - "macos_x86_64": "darwin.x86_64" - }, + "comma_separated_display_args": "--[no-]remote-cache-write", + "config_key": "remote_cache_write", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--shellcheck-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_SHELLCHECK_URL_PLATFORM_MAPPING", + "display_args": ["--[no-]remote-cache-write"], + "env_var": "PANTS_REMOTE_CACHE_WRITE", "fromfile": false, - "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", + "help": "Whether to enable writing results to a remote cache.\n\nThis cannot be used at the same time as `[GLOBAL].remote_execution`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--shellcheck-url-platform-mapping"], + "scoped_cmd_line_args": [ + "--remote-cache-write", + "--no-remote-cache-write" + ], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--url-platform-mapping"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--remote-cache-write", + "--no-remote-cache-write" + ], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": {} + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": { - "linux_arm64": "linux.aarch64", - "linux_x86_64": "linux.x86_64", - "macos_arm64": "darwin.aarch64", - "macos_x86_64": "darwin.x86_64" - } + "value": false } ] } }, - "PANTS_SHELLCHECK_URL_TEMPLATE": { + "PANTS_REMOTE_CA_CERTS_PATH": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--shellcheck-url-template=", - "config_key": "url_template", - "default": "https://github.com/vscode-shellcheck/shellcheck-binaries/releases/download/{version}/shellcheck-{version}.{platform}.tar.gz", + "comma_separated_display_args": "--remote-ca-certs-path=", + "config_key": "remote_ca_certs_path", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--shellcheck-url-template="], - "env_var": "PANTS_SHELLCHECK_URL_TEMPLATE", + "display_args": ["--remote-ca-certs-path="], + "env_var": "PANTS_REMOTE_CA_CERTS_PATH", "fromfile": false, - "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", + "help": "Path to a PEM file containing CA certificates used for verifying secure connections to `[GLOBAL].remote_execution_address` and `[GLOBAL].remote_store_address`.\n\nIf unspecified, Pants will attempt to auto-discover root CA certificates when TLS is enabled with remote execution and caching.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--shellcheck-url-template"], + "scoped_cmd_line_args": ["--remote-ca-certs-path"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--url-template"], + "unscoped_cmd_line_args": ["--remote-ca-certs-path"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": "https://github.com/vscode-shellcheck/shellcheck-binaries/releases/download/{version}/shellcheck-{version}.{platform}.tar.gz" } ] } }, - "PANTS_SHELLCHECK_USE_UNSUPPORTED_VERSION": { - "choices": ["error", "warning"], - "comma_separated_choices": "error, warning", - "comma_separated_display_args": "--shellcheck-use-unsupported-version=", - "config_key": "use_unsupported_version", - "default": "error", + "PANTS_REMOTE_CLIENT_CERTS_PATH": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--remote-client-certs-path=", + "config_key": "remote_client_certs_path", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--shellcheck-use-unsupported-version=" - ], - "env_var": "PANTS_SHELLCHECK_USE_UNSUPPORTED_VERSION", + "display_args": ["--remote-client-certs-path="], + "env_var": "PANTS_REMOTE_CLIENT_CERTS_PATH", "fromfile": false, - "help": "\nWhat action to take in case the requested version of Shellcheck is not supported.\n\nSupported Shellcheck versions: unspecified\n", + "help": "Path to a PEM file containing client certificates used for verifying secure connections to `[GLOBAL].remote_execution_address` and `[GLOBAL].remote_store_address` when using client authentication (mTLS).\n\nIf unspecified, will use regular TLS. Requires `remote_client_key_path` to also be specified.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--shellcheck-use-unsupported-version"], + "scoped_cmd_line_args": ["--remote-client-certs-path"], "target_field_name": null, - "typ": "UnsupportedVersionUsage", - "unscoped_cmd_line_args": ["--use-unsupported-version"], + "typ": "str", + "unscoped_cmd_line_args": ["--remote-client-certs-path"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": "error" } ] } }, - "PANTS_SHELLCHECK_VERSION": { + "PANTS_REMOTE_CLIENT_KEY_PATH": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--shellcheck-version=", - "config_key": "version", - "default": "v0.8.0", + "comma_separated_display_args": "--remote-client-key-path=", + "config_key": "remote_client_key_path", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--shellcheck-version="], - "env_var": "PANTS_SHELLCHECK_VERSION", + "display_args": ["--remote-client-key-path="], + "env_var": "PANTS_REMOTE_CLIENT_KEY_PATH", "fromfile": false, - "help": "Use this version of Shellcheck.", + "help": "Path to a PEM file containing a private key used for verifying secure connections to `[GLOBAL].remote_execution_address` and `[GLOBAL].remote_store_address` when using client authentication (mTLS).\n\nIf unspecified, will use regular TLS. Requires `remote_client_certs_path` to also be specified.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--shellcheck-version"], + "scoped_cmd_line_args": ["--remote-client-key-path"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--version"], + "unscoped_cmd_line_args": ["--remote-client-key-path"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": "v0.8.0" } ] } }, - "PANTS_SHELL_SETUP_DEPENDENCY_INFERENCE": { + "PANTS_REMOTE_EXECUTION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]shell-setup-dependency-inference", - "config_key": "dependency_inference", - "default": true, + "comma_separated_display_args": "--[no-]remote-execution", + "config_key": "remote_execution", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]shell-setup-dependency-inference"], - "env_var": "PANTS_SHELL_SETUP_DEPENDENCY_INFERENCE", + "display_args": ["--[no-]remote-execution"], + "env_var": "PANTS_REMOTE_EXECUTION", "fromfile": false, - "help": "Infer Shell dependencies on other Shell files by analyzing `source` statements.", + "help": "Enables remote workers for increased parallelism. (Alpha)\n\nAlternatively, you can use `[GLOBAL].remote_cache_read` and `[GLOBAL].remote_cache_write` to still run everything locally, but to use a remote cache.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--shell-setup-dependency-inference", - "--no-shell-setup-dependency-inference" - ], + "scoped_cmd_line_args": ["--remote-execution", "--no-remote-execution"], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": [ - "--dependency-inference", - "--no-dependency-inference" - ], + "unscoped_cmd_line_args": ["--remote-execution", "--no-remote-execution"], "value_history": { "ranked_values": [ { @@ -21558,169 +21708,163 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": false } ] } }, - "PANTS_SHELL_SETUP_EXECUTABLE_SEARCH_PATHS": { + "PANTS_REMOTE_EXECUTION_ADDRESS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--shell-setup-executable-search-paths=\"[, , ...]\"", - "config_key": "executable_search_paths", - "default": [""], + "comma_separated_display_args": "--remote-execution-address=", + "config_key": "remote_execution_address", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--shell-setup-executable-search-paths=\"[, , ...]\"" - ], - "env_var": "PANTS_SHELL_SETUP_EXECUTABLE_SEARCH_PATHS", + "display_args": ["--remote-execution-address="], + "env_var": "PANTS_REMOTE_EXECUTION_ADDRESS", "fromfile": false, - "help": "The PATH value that will be used to find shells and to run certain processes like the shunit2 test runner. The special string `\"\"` will expand to the contents of the PATH env var.", + "help": "The URI of a server used as a remote execution scheduler.\n\nFormat: `scheme://host:port`. The supported schemes are `grpc` and `grpcs`, i.e. gRPC with TLS enabled. If `grpc` is used, TLS will be disabled.\n\nYou must also set `[GLOBAL].remote_store_address`, which will often be the same value.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--shell-setup-executable-search-paths"], - "target_field_name": "shell_setup_executable_search_paths", - "typ": "list", - "unscoped_cmd_line_args": ["--executable-search-paths"], + "scoped_cmd_line_args": ["--remote-execution-address"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--remote-execution-address"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] - }, - { - "details": "", - "rank": "HARDCODED", - "value": [""] + "value": null } ] } }, - "PANTS_SHELL_SETUP_TAILOR": { + "PANTS_REMOTE_EXECUTION_APPEND_ONLY_CACHES_BASE_PATH": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]shell-setup-tailor", - "config_key": "tailor", - "default": true, + "comma_separated_display_args": "--remote-execution-append-only-caches-base-path=", + "config_key": "remote_execution_append_only_caches_base_path", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]shell-setup-tailor"], - "env_var": "PANTS_SHELL_SETUP_TAILOR", + "display_args": ["--remote-execution-append-only-caches-base-path="], + "env_var": "PANTS_REMOTE_EXECUTION_APPEND_ONLY_CACHES_BASE_PATH", "fromfile": false, - "help": "If true, add `shell_sources` and `shunit2_tests` targets with the `tailor` goal.", + "help": "Sets the base path to use when setting up an append-only cache for a process running remotely. If this option is not set, then append-only caches will not be used with remote execution. The option should be set to the absolute path of a writable directory in the remote execution environment where Pants can create append-only caches for use with remotely executing processes.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--shell-setup-tailor", - "--no-shell-setup-tailor" + "--remote-execution-append-only-caches-base-path" ], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--tailor", "--no-tailor"], + "typ": "str", + "unscoped_cmd_line_args": [ + "--remote-execution-append-only-caches-base-path" + ], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": true } ] } }, - "PANTS_SHELL_TEST_SKIP": { + "PANTS_REMOTE_EXECUTION_EXTRA_PLATFORM_PROPERTIES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]shell-test-skip", - "config_key": "skip", - "default": false, + "comma_separated_display_args": "--remote-execution-extra-platform-properties=\"['', '', ...]\"", + "config_key": "remote_execution_extra_platform_properties", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]shell-test-skip"], - "env_var": "PANTS_SHELL_TEST_SKIP", + "display_args": [ + "--remote-execution-extra-platform-properties=\"['', '', ...]\"" + ], + "env_var": "PANTS_REMOTE_EXECUTION_EXTRA_PLATFORM_PROPERTIES", "fromfile": false, - "help": "If true, don't use Test with shell scripts when running `scie-pants-linux-x86_64 test`.", + "help": "Platform properties to set on remote execution requests.\n\nFormat: `property=value`. Multiple values should be specified as multiple occurrences of this flag.\n\nPants itself may add additional platform properties.\n\nIf you are using the `remote_environment` target mechanism, set this value as a field on the target instead. This option will be ignored.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--shell-test-skip", "--no-shell-test-skip"], + "scoped_cmd_line_args": ["--remote-execution-extra-platform-properties"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "typ": "list", + "unscoped_cmd_line_args": [ + "--remote-execution-extra-platform-properties" + ], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": [] } ] } }, - "PANTS_SHFMT_ARGS": { + "PANTS_REMOTE_EXECUTION_HEADERS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--shfmt-args=\"[, , ...]\"", - "config_key": "args", - "default": [], + "comma_separated_display_args": "--remote-execution-headers=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "remote_execution_headers", + "default": "{'user-agent': 'pants/'}", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--shfmt-args=\"[, , ...]\""], - "env_var": "PANTS_SHFMT_ARGS", + "display_args": [ + "--remote-execution-headers=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_REMOTE_EXECUTION_HEADERS", "fromfile": false, - "help": "Arguments to pass directly to shfmt, e.g. `--shfmt-args='-i 2'`.", + "help": "Headers to set on remote execution requests. Format: header=value. Pants may add additional headers.\n\nSee `[GLOBAL].remote_store_headers` as well.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--shfmt-args"], + "scoped_cmd_line_args": ["--remote-execution-headers"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "typ": "dict", + "unscoped_cmd_line_args": ["--remote-execution-headers"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": [] + "value": {} }, { "details": "", "rank": "HARDCODED", - "value": [] + "value": { + "user-agent": "pants/2.18.1" + } } ] } }, - "PANTS_SHFMT_CONFIG_DISCOVERY": { + "PANTS_REMOTE_EXECUTION_OVERALL_DEADLINE_SECS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]shfmt-config-discovery", - "config_key": "config_discovery", - "default": true, + "comma_separated_display_args": "--remote-execution-overall-deadline-secs=", + "config_key": "remote_execution_overall_deadline_secs", + "default": 3600, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]shfmt-config-discovery"], - "env_var": "PANTS_SHFMT_CONFIG_DISCOVERY", + "display_args": ["--remote-execution-overall-deadline-secs="], + "env_var": "PANTS_REMOTE_EXECUTION_OVERALL_DEADLINE_SECS", "fromfile": false, - "help": "If true, Pants will include all relevant `.editorconfig` files during runs. See https://editorconfig.org.", + "help": "Overall timeout in seconds for each remote execution request from time of submission", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--shfmt-config-discovery", - "--no-shfmt-config-discovery" - ], + "scoped_cmd_line_args": ["--remote-execution-overall-deadline-secs"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], + "typ": "int", + "unscoped_cmd_line_args": ["--remote-execution-overall-deadline-secs"], "value_history": { "ranked_values": [ { @@ -21731,193 +21875,146 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": 3600 } ] } }, - "PANTS_SHFMT_KNOWN_VERSIONS": { + "PANTS_REMOTE_EXECUTION_RPC_CONCURRENCY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--shfmt-known-versions=\"['', '', ...]\"", - "config_key": "known_versions", - "default": [ - "v3.2.4|macos_arm64 |e70fc42e69debe3e400347d4f918630cdf4bf2537277d672bbc43490387508ec|2998546", - "v3.2.4|macos_x86_64|43a0461a1b54070ddc04fbbf1b78f7861ee39a65a61f5466d15a39c4aba4f917|2980208", - "v3.2.4|linux_arm64 |6474d9cc08a1c9fe2ef4be7a004951998e3067d46cf55a011ddd5ff7bfab3de6|2752512", - "v3.2.4|linux_x86_64|3f5a47f8fec27fae3e06d611559a2063f5d27e4b9501171dde9959b8c60a3538|2797568", - "v3.6.0|macos_arm64 |633f242246ee0a866c5f5df25cbf61b6af0d5e143555aca32950059cf13d91e0|3065202", - "v3.6.0|macos_x86_64|b8c9c025b498e2816b62f0b717f6032e9ab49e725a45b8205f52f66318f17185|3047552", - "v3.6.0|linux_arm64 |fb1cf0af3dbe9aac7d98e38e3c7426765208ecfe23cb2da51037bb234776fd70|2818048", - "v3.6.0|linux_x86_64|5741a02a641de7e56b8da170e71a97e58050d66a3cf485fb268d6a5a8bb74afb|2850816" - ], + "comma_separated_display_args": "--remote-execution-rpc-concurrency=", + "config_key": "remote_execution_rpc_concurrency", + "default": 128, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--shfmt-known-versions=\"['', '', ...]\""], - "env_var": "PANTS_SHFMT_KNOWN_VERSIONS", + "display_args": ["--remote-execution-rpc-concurrency="], + "env_var": "PANTS_REMOTE_EXECUTION_RPC_CONCURRENCY", "fromfile": false, - "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", + "help": "The number of concurrent requests allowed to the remote execution service.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--shfmt-known-versions"], + "scoped_cmd_line_args": ["--remote-execution-rpc-concurrency"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--known-versions"], + "typ": "int", + "unscoped_cmd_line_args": ["--remote-execution-rpc-concurrency"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [ - "v3.2.4|macos_arm64 |e70fc42e69debe3e400347d4f918630cdf4bf2537277d672bbc43490387508ec|2998546", - "v3.2.4|macos_x86_64|43a0461a1b54070ddc04fbbf1b78f7861ee39a65a61f5466d15a39c4aba4f917|2980208", - "v3.2.4|linux_arm64 |6474d9cc08a1c9fe2ef4be7a004951998e3067d46cf55a011ddd5ff7bfab3de6|2752512", - "v3.2.4|linux_x86_64|3f5a47f8fec27fae3e06d611559a2063f5d27e4b9501171dde9959b8c60a3538|2797568", - "v3.6.0|macos_arm64 |633f242246ee0a866c5f5df25cbf61b6af0d5e143555aca32950059cf13d91e0|3065202", - "v3.6.0|macos_x86_64|b8c9c025b498e2816b62f0b717f6032e9ab49e725a45b8205f52f66318f17185|3047552", - "v3.6.0|linux_arm64 |fb1cf0af3dbe9aac7d98e38e3c7426765208ecfe23cb2da51037bb234776fd70|2818048", - "v3.6.0|linux_x86_64|5741a02a641de7e56b8da170e71a97e58050d66a3cf485fb268d6a5a8bb74afb|2850816" - ] + "value": 128 } ] } }, - "PANTS_SHFMT_SKIP": { + "PANTS_REMOTE_INSTANCE_NAME": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]shfmt-skip", - "config_key": "skip", - "default": false, + "comma_separated_display_args": "--remote-instance-name=", + "config_key": "remote_instance_name", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]shfmt-skip"], - "env_var": "PANTS_SHFMT_SKIP", + "display_args": ["--remote-instance-name="], + "env_var": "PANTS_REMOTE_INSTANCE_NAME", "fromfile": false, - "help": "If true, don't use shfmt when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "Name of the remote instance to use by remote caching and remote execution.\n\nThis is used by some remote servers for routing. Consult your remote server for whether this should be set.\n\nYou can also use a Pants plugin which provides remote authentication to dynamically set this value.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--shfmt-skip", "--no-shfmt-skip"], + "scoped_cmd_line_args": ["--remote-instance-name"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "typ": "str", + "unscoped_cmd_line_args": ["--remote-instance-name"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": false } ] } }, - "PANTS_SHFMT_URL_PLATFORM_MAPPING": { + "PANTS_REMOTE_OAUTH_BEARER_TOKEN_PATH": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--shfmt-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "url_platform_mapping", - "default": { - "linux_arm64": "linux_arm64", - "linux_x86_64": "linux_amd64", - "macos_arm64": "darwin_arm64", - "macos_x86_64": "darwin_amd64" - }, + "comma_separated_display_args": "--remote-oauth-bearer-token-path=", + "config_key": "remote_oauth_bearer_token_path", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--shfmt-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_SHFMT_URL_PLATFORM_MAPPING", + "display_args": ["--remote-oauth-bearer-token-path="], + "env_var": "PANTS_REMOTE_OAUTH_BEARER_TOKEN_PATH", "fromfile": false, - "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", + "help": "Path to a file containing an oauth token to use for gGRPC connections to `[GLOBAL].remote_execution_address` and `[GLOBAL].remote_store_address`.\n\nIf specified, Pants will add a header in the format `authorization: Bearer `. You can also manually add this header via `[GLOBAL].remote_execution_headers` and `[GLOBAL].remote_store_headers`, or use `[GLOBAL].remote_auth_plugin` to provide a plugin to dynamically set the relevant headers. Otherwise, no authorization will be performed.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--shfmt-url-platform-mapping"], + "scoped_cmd_line_args": ["--remote-oauth-bearer-token-path"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--url-platform-mapping"], + "typ": "str", + "unscoped_cmd_line_args": ["--remote-oauth-bearer-token-path"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": {} - }, - { - "details": "", - "rank": "HARDCODED", - "value": { - "linux_arm64": "linux_arm64", - "linux_x86_64": "linux_amd64", - "macos_arm64": "darwin_arm64", - "macos_x86_64": "darwin_amd64" - } + "value": null } ] } }, - "PANTS_SHFMT_URL_TEMPLATE": { + "PANTS_REMOTE_STORE_ADDRESS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--shfmt-url-template=", - "config_key": "url_template", - "default": "https://github.com/mvdan/sh/releases/download/{version}/shfmt_{version}_{platform}", + "comma_separated_display_args": "--remote-store-address=", + "config_key": "remote_store_address", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--shfmt-url-template="], - "env_var": "PANTS_SHFMT_URL_TEMPLATE", + "display_args": ["--remote-store-address="], + "env_var": "PANTS_REMOTE_STORE_ADDRESS", "fromfile": false, - "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", + "help": "The URI of a server used for the remote file store.\n\nFormat: `scheme://host:port`. The supported schemes are `grpc` and `grpcs`, i.e. gRPC with TLS enabled. If `grpc` is used, TLS will be disabled.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--shfmt-url-template"], + "scoped_cmd_line_args": ["--remote-store-address"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--url-template"], + "unscoped_cmd_line_args": ["--remote-store-address"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": "https://github.com/mvdan/sh/releases/download/{version}/shfmt_{version}_{platform}" } ] } }, - "PANTS_SHFMT_USE_UNSUPPORTED_VERSION": { - "choices": ["error", "warning"], - "comma_separated_choices": "error, warning", - "comma_separated_display_args": "--shfmt-use-unsupported-version=", - "config_key": "use_unsupported_version", - "default": "error", + "PANTS_REMOTE_STORE_BATCH_API_SIZE_LIMIT": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--remote-store-batch-api-size-limit=", + "config_key": "remote_store_batch_api_size_limit", + "default": 4194304, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--shfmt-use-unsupported-version=" - ], - "env_var": "PANTS_SHFMT_USE_UNSUPPORTED_VERSION", + "display_args": ["--remote-store-batch-api-size-limit="], + "env_var": "PANTS_REMOTE_STORE_BATCH_API_SIZE_LIMIT", "fromfile": false, - "help": "\nWhat action to take in case the requested version of shfmt is not supported.\n\nSupported shfmt versions: unspecified\n", + "help": "The maximum total size of blobs allowed to be sent in a single batch API call to the remote store.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--shfmt-use-unsupported-version"], + "scoped_cmd_line_args": ["--remote-store-batch-api-size-limit"], "target_field_name": null, - "typ": "UnsupportedVersionUsage", - "unscoped_cmd_line_args": ["--use-unsupported-version"], + "typ": "int", + "unscoped_cmd_line_args": ["--remote-store-batch-api-size-limit"], "value_history": { "ranked_values": [ { @@ -21928,29 +22025,29 @@ { "details": null, "rank": "HARDCODED", - "value": "error" + "value": 4194304 } ] } }, - "PANTS_SHFMT_VERSION": { + "PANTS_REMOTE_STORE_CHUNK_BYTES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--shfmt-version=", - "config_key": "version", - "default": "v3.6.0", + "comma_separated_display_args": "--remote-store-chunk-bytes=", + "config_key": "remote_store_chunk_bytes", + "default": 1048576, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--shfmt-version="], - "env_var": "PANTS_SHFMT_VERSION", + "display_args": ["--remote-store-chunk-bytes="], + "env_var": "PANTS_REMOTE_STORE_CHUNK_BYTES", "fromfile": false, - "help": "Use this version of shfmt.", + "help": "Size in bytes of chunks transferred to/from the remote file store.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--shfmt-version"], + "scoped_cmd_line_args": ["--remote-store-chunk-bytes"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--version"], + "typ": "int", + "unscoped_cmd_line_args": ["--remote-store-chunk-bytes"], "value_history": { "ranked_values": [ { @@ -21961,29 +22058,29 @@ { "details": null, "rank": "HARDCODED", - "value": "v3.6.0" + "value": 1048576 } ] } }, - "PANTS_SHOW_LOG_TARGET": { + "PANTS_REMOTE_STORE_CHUNK_UPLOAD_TIMEOUT_SECONDS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]show-log-target", - "config_key": "show_log_target", - "default": false, - "deprecated_message": null, - "deprecation_active": false, - "display_args": ["--[no-]show-log-target"], - "env_var": "PANTS_SHOW_LOG_TARGET", + "comma_separated_display_args": "--remote-store-chunk-upload-timeout-seconds=", + "config_key": "remote_store_chunk_upload_timeout_seconds", + "default": 60, + "deprecated_message": "Deprecated, is scheduled to be removed in version: 2.19.0.dev0.", + "deprecation_active": true, + "display_args": ["--remote-store-chunk-upload-timeout-seconds="], + "env_var": "PANTS_REMOTE_STORE_CHUNK_UPLOAD_TIMEOUT_SECONDS", "fromfile": false, - "help": "Display the target where a log message originates in that log message's output. This can be helpful when paired with `--log-levels-by-target`.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--show-log-target", "--no-show-log-target"], + "help": "Timeout (in seconds) for uploads of individual chunks to the remote file store.", + "removal_hint": "Unused: use the `remote_store_rpc_timeout_millis` option instead.", + "removal_version": "2.19.0.dev0", + "scoped_cmd_line_args": ["--remote-store-chunk-upload-timeout-seconds"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--show-log-target", "--no-show-log-target"], + "typ": "int", + "unscoped_cmd_line_args": ["--remote-store-chunk-upload-timeout-seconds"], "value_history": { "ranked_values": [ { @@ -21994,72 +22091,66 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": 60 } ] } }, - "PANTS_SHUNIT2_KNOWN_VERSIONS": { + "PANTS_REMOTE_STORE_HEADERS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--shunit2-known-versions=\"['', '', ...]\"", - "config_key": "known_versions", - "default": [ - "b9102bb763cc603b3115ed30a5648bf950548097|macos_arm64|1f11477b7948150d1ca50cdd41d89be4ed2acd137e26d2e0fe23966d0e272cc5|40987", - "b9102bb763cc603b3115ed30a5648bf950548097|macos_x86_64|1f11477b7948150d1ca50cdd41d89be4ed2acd137e26d2e0fe23966d0e272cc5|40987", - "b9102bb763cc603b3115ed30a5648bf950548097|linux_x86_64|1f11477b7948150d1ca50cdd41d89be4ed2acd137e26d2e0fe23966d0e272cc5|40987", - "b9102bb763cc603b3115ed30a5648bf950548097|linux_arm64|1f11477b7948150d1ca50cdd41d89be4ed2acd137e26d2e0fe23966d0e272cc5|40987" - ], + "comma_separated_display_args": "--remote-store-headers=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "remote_store_headers", + "default": "{'user-agent': 'pants/'}", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--shunit2-known-versions=\"['', '', ...]\""], - "env_var": "PANTS_SHUNIT2_KNOWN_VERSIONS", + "display_args": [ + "--remote-store-headers=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_REMOTE_STORE_HEADERS", "fromfile": false, - "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", + "help": "Headers to set on remote store requests.\n\nFormat: header=value. Pants may add additional headers.\n\nSee `[GLOBAL].remote_execution_headers` as well.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--shunit2-known-versions"], + "scoped_cmd_line_args": ["--remote-store-headers"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--known-versions"], + "typ": "dict", + "unscoped_cmd_line_args": ["--remote-store-headers"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": [] + "value": {} }, { "details": "", "rank": "HARDCODED", - "value": [ - "b9102bb763cc603b3115ed30a5648bf950548097|macos_arm64|1f11477b7948150d1ca50cdd41d89be4ed2acd137e26d2e0fe23966d0e272cc5|40987", - "b9102bb763cc603b3115ed30a5648bf950548097|macos_x86_64|1f11477b7948150d1ca50cdd41d89be4ed2acd137e26d2e0fe23966d0e272cc5|40987", - "b9102bb763cc603b3115ed30a5648bf950548097|linux_x86_64|1f11477b7948150d1ca50cdd41d89be4ed2acd137e26d2e0fe23966d0e272cc5|40987", - "b9102bb763cc603b3115ed30a5648bf950548097|linux_arm64|1f11477b7948150d1ca50cdd41d89be4ed2acd137e26d2e0fe23966d0e272cc5|40987" - ] + "value": { + "user-agent": "pants/2.18.1" + } } ] } }, - "PANTS_SHUNIT2_SKIP": { + "PANTS_REMOTE_STORE_RPC_CONCURRENCY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]shunit2-skip", - "config_key": "skip", - "default": false, + "comma_separated_display_args": "--remote-store-rpc-concurrency=", + "config_key": "remote_store_rpc_concurrency", + "default": 128, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]shunit2-skip"], - "env_var": "PANTS_SHUNIT2_SKIP", + "display_args": ["--remote-store-rpc-concurrency="], + "env_var": "PANTS_REMOTE_STORE_RPC_CONCURRENCY", "fromfile": false, - "help": "If true, don't use shunit2 when running `scie-pants-linux-x86_64 test`.", + "help": "The number of concurrent requests allowed to the remote store service.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--shunit2-skip", "--no-shunit2-skip"], + "scoped_cmd_line_args": ["--remote-store-rpc-concurrency"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "typ": "int", + "unscoped_cmd_line_args": ["--remote-store-rpc-concurrency"], "value_history": { "ranked_values": [ { @@ -22070,59 +22161,62 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": 128 } ] } }, - "PANTS_SHUNIT2_URL_PLATFORM_MAPPING": { + "PANTS_REMOTE_STORE_RPC_RETRIES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--shunit2-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "url_platform_mapping", - "default": {}, + "comma_separated_display_args": "--remote-store-rpc-retries=", + "config_key": "remote_store_rpc_retries", + "default": 2, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--shunit2-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_SHUNIT2_URL_PLATFORM_MAPPING", + "display_args": ["--remote-store-rpc-retries="], + "env_var": "PANTS_REMOTE_STORE_RPC_RETRIES", "fromfile": false, - "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", + "help": "Number of times to retry any RPC to the remote store before giving up.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--shunit2-url-platform-mapping"], + "scoped_cmd_line_args": ["--remote-store-rpc-retries"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--url-platform-mapping"], + "typ": "int", + "unscoped_cmd_line_args": ["--remote-store-rpc-retries"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": {} + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": 2 } ] } }, - "PANTS_SHUNIT2_URL_TEMPLATE": { + "PANTS_REMOTE_STORE_RPC_TIMEOUT_MILLIS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--shunit2-url-template=", - "config_key": "url_template", - "default": "https://raw.githubusercontent.com/kward/shunit2/{version}/shunit2", + "comma_separated_display_args": "--remote-store-rpc-timeout-millis=", + "config_key": "remote_store_rpc_timeout_millis", + "default": 30000, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--shunit2-url-template="], - "env_var": "PANTS_SHUNIT2_URL_TEMPLATE", + "display_args": ["--remote-store-rpc-timeout-millis="], + "env_var": "PANTS_REMOTE_STORE_RPC_TIMEOUT_MILLIS", "fromfile": false, - "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", + "help": "Timeout value for remote store RPCs (not including streaming requests) in milliseconds.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--shunit2-url-template"], + "scoped_cmd_line_args": ["--remote-store-rpc-timeout-millis"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--url-template"], + "typ": "int", + "unscoped_cmd_line_args": ["--remote-store-rpc-timeout-millis"], "value_history": { "ranked_values": [ { @@ -22133,31 +22227,29 @@ { "details": null, "rank": "HARDCODED", - "value": "https://raw.githubusercontent.com/kward/shunit2/{version}/shunit2" + "value": 30000 } ] } }, - "PANTS_SHUNIT2_USE_UNSUPPORTED_VERSION": { - "choices": ["error", "warning"], - "comma_separated_choices": "error, warning", - "comma_separated_display_args": "--shunit2-use-unsupported-version=", - "config_key": "use_unsupported_version", - "default": "error", + "PANTS_REPL_RESTARTABLE": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]repl-restartable", + "config_key": "restartable", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--shunit2-use-unsupported-version=" - ], - "env_var": "PANTS_SHUNIT2_USE_UNSUPPORTED_VERSION", + "display_args": ["--[no-]repl-restartable"], + "env_var": "PANTS_REPL_RESTARTABLE", "fromfile": false, - "help": "\nWhat action to take in case the requested version of shunit2 is not supported.\n\nSupported shunit2 versions: unspecified\n", + "help": "True if the REPL should be restarted if its inputs have changed.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--shunit2-use-unsupported-version"], + "scoped_cmd_line_args": ["--repl-restartable", "--no-repl-restartable"], "target_field_name": null, - "typ": "UnsupportedVersionUsage", - "unscoped_cmd_line_args": ["--use-unsupported-version"], + "typ": "bool", + "unscoped_cmd_line_args": ["--restartable", "--no-restartable"], "value_history": { "ranked_values": [ { @@ -22168,149 +22260,115 @@ { "details": null, "rank": "HARDCODED", - "value": "error" + "value": false } ] } }, - "PANTS_SHUNIT2_VERSION": { + "PANTS_REPL_SHELL": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--shunit2-version=", - "config_key": "version", - "default": "b9102bb763cc603b3115ed30a5648bf950548097", + "comma_separated_display_args": "--repl-shell=", + "config_key": "shell", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--shunit2-version="], - "env_var": "PANTS_SHUNIT2_VERSION", + "display_args": ["--repl-shell="], + "env_var": "PANTS_REPL_SHELL", "fromfile": false, - "help": "Use this version of shunit2.", + "help": "Override the automatically-detected REPL program for the target(s) specified.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--shunit2-version"], + "scoped_cmd_line_args": ["--repl-shell"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--version"], + "unscoped_cmd_line_args": ["--shell"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": "b9102bb763cc603b3115ed30a5648bf950548097" } ] } }, - "PANTS_SOURCE_MARKER_FILENAMES": { + "PANTS_ROOTS_OUTPUT_FILE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--source-marker-filenames=\"[filename, filename, ...]\"", - "config_key": "marker_filenames", - "default": [], + "comma_separated_display_args": "--roots-output-file=", + "config_key": "output_file", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--source-marker-filenames=\"[filename, filename, ...]\"" - ], - "env_var": "PANTS_SOURCE_MARKER_FILENAMES", + "display_args": ["--roots-output-file="], + "env_var": "PANTS_ROOTS_OUTPUT_FILE", "fromfile": false, - "help": "The presence of a file of this name in a directory indicates that the directory is a source root. The content of the file doesn't matter, and may be empty. Useful when you can't or don't wish to centrally enumerate source roots via `root_patterns`.", + "help": "Output the goal's stdout to this file. If unspecified, outputs to stdout.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--source-marker-filenames"], + "scoped_cmd_line_args": ["--roots-output-file"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--marker-filenames"], + "typ": "str", + "unscoped_cmd_line_args": ["--output-file"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] - }, - { - "details": "", - "rank": "HARDCODED", - "value": [] + "value": null } ] } }, - "PANTS_SOURCE_ROOT_PATTERNS": { + "PANTS_ROOTS_SEP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--source-root-patterns=\"[[\"pattern1\", \"pattern2\", ...], [\"pattern1\", \"pattern2\", ...], ...]\"", - "config_key": "root_patterns", - "default": [ - "/", - "src", - "src/python", - "src/py", - "src/thrift", - "src/protobuf", - "src/protos", - "src/scala", - "src/java" - ], + "comma_separated_display_args": "--roots-sep=", + "config_key": "sep", + "default": "\\n", "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--source-root-patterns=\"[[\"pattern1\", \"pattern2\", ...], [\"pattern1\", \"pattern2\", ...], ...]\"" - ], - "env_var": "PANTS_SOURCE_ROOT_PATTERNS", + "display_args": ["--roots-sep="], + "env_var": "PANTS_ROOTS_SEP", "fromfile": false, - "help": "A list of source root suffixes.\n\nA directory with this suffix will be considered a potential source root. E.g., `src/python` will match `/src/python`, `/project1/src/python` etc.\n\nPrepend a `/` to anchor the match at the buildroot. E.g., `/src/python` will match `/src/python` but not `/project1/src/python`.\n\nA `*` wildcard will match a single path segment, E.g., `src/*` will match `/src/python` and `/src/rust`.\n\nUse `/` to signify that the buildroot itself is a source root.\n\nSee https://www.pantsbuild.org/v2.18/docs/source-roots.", + "help": "String to use to separate lines in line-oriented output.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--source-root-patterns"], + "scoped_cmd_line_args": ["--roots-sep"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--root-patterns"], + "typ": "str", + "unscoped_cmd_line_args": ["--sep"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [ - "/", - "src", - "src/python", - "src/py", - "src/thrift", - "src/protobuf", - "src/protos", - "src/scala", - "src/java" - ] + "value": "\\n" } ] } }, - "PANTS_SPECTRAL_ARGS": { + "PANTS_RUFF_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--spectral-args=\"[, , ...]\"", + "comma_separated_display_args": "--ruff-args=\"[, , ...]\"", "config_key": "args", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--spectral-args=\"[, , ...]\""], - "env_var": "PANTS_SPECTRAL_ARGS", + "display_args": ["--ruff-args=\"[, , ...]\""], + "env_var": "PANTS_RUFF_ARGS", "fromfile": false, - "help": "Arguments to pass directly to Spectral, e.g. `--spectral-args='--fail-severity=warn'`.", + "help": "Arguments to pass directly to Ruff, e.g. `--ruff-args='--exclude=foo --ignore=E501'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--spectral-args"], + "scoped_cmd_line_args": ["--ruff-args"], "target_field_name": null, "typ": "list", "unscoped_cmd_line_args": ["--args"], @@ -22329,24 +22387,24 @@ ] } }, - "PANTS_SPECTRAL_INSTALL_FROM_RESOLVE": { + "PANTS_RUFF_CONFIG": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--spectral-install-from-resolve=", - "config_key": "install_from_resolve", + "comma_separated_display_args": "--ruff-config=", + "config_key": "config", "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--spectral-install-from-resolve="], - "env_var": "PANTS_SPECTRAL_INSTALL_FROM_RESOLVE", + "display_args": ["--ruff-config="], + "env_var": "PANTS_RUFF_CONFIG", "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve, instead of the version configured in this subsystem.\n\nIf unspecified, the tool will use the default configured package manager [nodejs].package_manager`, and install the tool without a lockfile.", + "help": "Path to the `pyproject.toml` or `ruff.toml` file to use for configuration (https://github.com/charliermarsh/ruff#configuration).\n\nSetting this option will disable `[ruff].config_discovery`. Use this option if the config is located in a non-standard location.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--spectral-install-from-resolve"], + "scoped_cmd_line_args": ["--ruff-config"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--install-from-resolve"], + "typ": "file_option", + "unscoped_cmd_line_args": ["--config"], "value_history": { "ranked_values": [ { @@ -22357,24 +22415,27 @@ ] } }, - "PANTS_SPECTRAL_SKIP": { + "PANTS_RUFF_CONFIG_DISCOVERY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]spectral-skip", - "config_key": "skip", - "default": false, + "comma_separated_display_args": "--[no-]ruff-config-discovery", + "config_key": "config_discovery", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]spectral-skip"], - "env_var": "PANTS_SPECTRAL_SKIP", + "display_args": ["--[no-]ruff-config-discovery"], + "env_var": "PANTS_RUFF_CONFIG_DISCOVERY", "fromfile": false, - "help": "If true, don't use Spectral when running `scie-pants-linux-x86_64 lint`.", + "help": "If true, Pants will include any relevant config files during runs (`pyproject.toml`, and `ruff.toml`).\n\nUse `[ruff].config` instead if your config is in a non-standard location.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--spectral-skip", "--no-spectral-skip"], + "scoped_cmd_line_args": [ + "--ruff-config-discovery", + "--no-ruff-config-discovery" + ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], "value_history": { "ranked_values": [ { @@ -22385,29 +22446,29 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": true } ] } }, - "PANTS_SPECTRAL_VERSION": { + "PANTS_RUFF_CONSOLE_SCRIPT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--spectral-version=", - "config_key": "version", - "default": "@stoplight/spectral-cli@6.5.1", + "comma_separated_display_args": "--ruff-console-script=", + "config_key": "console_script", + "default": "ruff", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--spectral-version="], - "env_var": "PANTS_SPECTRAL_VERSION", + "display_args": ["--ruff-console-script="], + "env_var": "PANTS_RUFF_CONSOLE_SCRIPT", "fromfile": false, - "help": "Version string for the tool in the form package@version (e.g. prettier@2.6.2)", + "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--spectral-version"], + "scoped_cmd_line_args": ["--ruff-console-script"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--version"], + "unscoped_cmd_line_args": ["--console-script"], "value_history": { "ranked_values": [ { @@ -22418,29 +22479,87 @@ { "details": null, "rank": "HARDCODED", - "value": "@stoplight/spectral-cli@6.5.1" + "value": "ruff" } ] } }, - "PANTS_SPEC_FILES": { + "PANTS_RUFF_ENTRY_POINT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--spec-files=\"['', '', ...]\"", - "config_key": "spec_files", - "default": [], + "comma_separated_display_args": "--ruff-entry-point=", + "config_key": "entry_point", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--spec-files=\"['', '', ...]\""], - "env_var": "PANTS_SPEC_FILES", + "display_args": ["--ruff-entry-point="], + "env_var": "PANTS_RUFF_ENTRY_POINT", "fromfile": false, - "help": "Read additional specs (target addresses, files, and/or globs), one per line, from these files.", + "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--spec-files"], + "scoped_cmd_line_args": ["--ruff-entry-point"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--entry-point"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + "PANTS_RUFF_INSTALL_FROM_RESOLVE": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--ruff-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--ruff-install-from-resolve="], + "env_var": "PANTS_RUFF_INSTALL_FROM_RESOLVE", + "fromfile": false, + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `ruff` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--ruff-install-from-resolve"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--install-from-resolve"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + "PANTS_RUFF_INTERPRETER_CONSTRAINTS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--ruff-interpreter-constraints=\"['', '', ...]\"", + "config_key": "interpreter_constraints", + "default": ["CPython>=3.7,<4"], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--ruff-interpreter-constraints=\"['', '', ...]\"" + ], + "env_var": "PANTS_RUFF_INTERPRETER_CONSTRAINTS", + "fromfile": false, + "help": "Python interpreter constraints for this tool.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--ruff-interpreter-constraints"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--spec-files"], + "unscoped_cmd_line_args": ["--interpreter-constraints"], "value_history": { "ranked_values": [ { @@ -22451,65 +22570,62 @@ { "details": "", "rank": "HARDCODED", - "value": [] + "value": ["CPython>=3.7,<4"] } ] } }, - "PANTS_STATS_LOG": { + "PANTS_RUFF_REQUIREMENTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]stats-log", - "config_key": "log", - "default": false, + "comma_separated_display_args": "--ruff-requirements=\"['', '', ...]\"", + "config_key": "requirements", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]stats-log"], - "env_var": "PANTS_STATS_LOG", + "display_args": ["--ruff-requirements=\"['', '', ...]\""], + "env_var": "PANTS_RUFF_REQUIREMENTS", "fromfile": false, - "help": "At the end of the Pants run, log all counter metrics and summaries of observation histograms, e.g. the number of cache hits and the time saved by caching.\n\nFor histogram summaries to work, you must add `hdrhistogram` to `[GLOBAL].plugins`.", + "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--stats-log", "--no-stats-log"], + "scoped_cmd_line_args": ["--ruff-requirements"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--log", "--no-log"], + "typ": "list", + "unscoped_cmd_line_args": ["--requirements"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": [] } ] } }, - "PANTS_STATS_MEMORY_SUMMARY": { + "PANTS_RUFF_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]stats-memory-summary", - "config_key": "memory_summary", + "comma_separated_display_args": "--[no-]ruff-skip", + "config_key": "skip", "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]stats-memory-summary"], - "env_var": "PANTS_STATS_MEMORY_SUMMARY", + "display_args": ["--[no-]ruff-skip"], + "env_var": "PANTS_RUFF_SKIP", "fromfile": false, - "help": "At the end of the Pants run, report a summary of memory usage.\n\nKeys are the total size in bytes, the count, and the name. Note that the total size is for all instances added together, so you can use total_size // count to get the average size.", + "help": "If true, don't use Ruff when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--stats-memory-summary", - "--no-stats-memory-summary" - ], + "scoped_cmd_line_args": ["--ruff-skip", "--no-ruff-skip"], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--memory-summary", "--no-memory-summary"], + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -22525,131 +22641,121 @@ ] } }, - "PANTS_STATS_RECORD_OPTION_SCOPES": { + "PANTS_RULE_THREADS_CORE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--stats-record-option-scopes=\"['', '', ...]\"", - "config_key": "stats_record_option_scopes", - "default": ["*"], + "comma_separated_display_args": "--rule-threads-core=", + "config_key": "rule_threads_core", + "default": "max(2, #cores/2)", "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--stats-record-option-scopes=\"['', '', ...]\"" - ], - "env_var": "PANTS_STATS_RECORD_OPTION_SCOPES", + "display_args": ["--rule-threads-core="], + "env_var": "PANTS_RULE_THREADS_CORE", "fromfile": false, - "help": "Option scopes to record in stats on run completion. Options may be selected by joining the scope and the option with a ^ character, i.e. to get option `pantsd` in the GLOBAL scope, you'd pass `GLOBAL^pantsd`. Add a '*' to the list to capture all known scopes.", + "help": "The number of threads to keep active and ready to execute `@rule` logic (see also: `--rule-threads-max`).\n\nValues less than 2 are not currently supported.\n\nThis value is independent of the number of processes that may be spawned in parallel locally (controlled by `--process-execution-local-parallelism`).", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--stats-record-option-scopes"], + "scoped_cmd_line_args": ["--rule-threads-core"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--stats-record-option-scopes"], + "typ": "int", + "unscoped_cmd_line_args": ["--rule-threads-core"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": ["*"] + "value": 2 } ] } }, - "PANTS_STREAMING_WORKUNITS_COMPLETE_ASYNC": { + "PANTS_RULE_THREADS_MAX": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]streaming-workunits-complete-async", - "config_key": "streaming_workunits_complete_async", - "default": true, + "comma_separated_display_args": "--rule-threads-max=", + "config_key": "rule_threads_max", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]streaming-workunits-complete-async"], - "env_var": "PANTS_STREAMING_WORKUNITS_COMPLETE_ASYNC", + "display_args": ["--rule-threads-max="], + "env_var": "PANTS_RULE_THREADS_MAX", "fromfile": false, - "help": "True if stats recording should be allowed to complete asynchronously when `pantsd` is enabled. When `pantsd` is disabled, stats recording is always synchronous. To reduce data loss, this flag defaults to false inside of containers, such as when run with Docker.", + "help": "The maximum number of threads to use to execute `@rule` logic. Defaults to a small multiple of `--rule-threads-core`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--streaming-workunits-complete-async", - "--no-streaming-workunits-complete-async" - ], + "scoped_cmd_line_args": ["--rule-threads-max"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--streaming-workunits-complete-async", - "--no-streaming-workunits-complete-async" - ], + "typ": "int", + "unscoped_cmd_line_args": ["--rule-threads-max"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": true } ] } }, - "PANTS_STREAMING_WORKUNITS_LEVEL": { - "choices": ["trace", "debug", "info", "warn", "error"], - "comma_separated_choices": "trace, debug, info, warn, error", - "comma_separated_display_args": "--streaming-workunits-level=", - "config_key": "streaming_workunits_level", - "default": "debug", + "PANTS_RUN_ARGS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--run-args=\"[, , ...]\", ... -- [ [ [...]]]", + "config_key": "args", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--streaming-workunits-level="], - "env_var": "PANTS_STREAMING_WORKUNITS_LEVEL", + "display_args": [ + "--run-args=\"[, , ...]\"", + "... -- [ [ [...]]]" + ], + "env_var": "PANTS_RUN_ARGS", "fromfile": false, - "help": "The level of workunits that will be reported to streaming workunit event receivers.\n\nWorkunits form a tree, and even when workunits are filtered out by this setting, the workunit tree structure will be preserved (by adjusting the parent pointers of the remaining workunits).", + "help": "Arguments to pass directly to the executed target, e.g. `--run-args='val1 val2 --debug'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--streaming-workunits-level"], + "scoped_cmd_line_args": ["--run-args"], "target_field_name": null, - "typ": "LogLevel", - "unscoped_cmd_line_args": ["--streaming-workunits-level"], + "typ": "list", + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "debug" + "value": [] } ] } }, - "PANTS_STREAMING_WORKUNITS_REPORT_INTERVAL": { + "PANTS_RUN_DEBUG_ADAPTER": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--streaming-workunits-report-interval=", - "config_key": "streaming_workunits_report_interval", - "default": 1.0, + "comma_separated_display_args": "--[no-]run-debug-adapter", + "config_key": "debug_adapter", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--streaming-workunits-report-interval="], - "env_var": "PANTS_STREAMING_WORKUNITS_REPORT_INTERVAL", + "display_args": ["--[no-]run-debug-adapter"], + "env_var": "PANTS_RUN_DEBUG_ADAPTER", "fromfile": false, - "help": "Interval in seconds between when streaming workunit event receivers will be polled.", + "help": "Run the interactive process using a Debug Adapter (https://microsoft.github.io/debug-adapter-protocol/) for the language if supported.\n\nThe interactive process used will be immediately blocked waiting for a client before continuing.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--streaming-workunits-report-interval"], + "scoped_cmd_line_args": ["--run-debug-adapter", "--no-run-debug-adapter"], "target_field_name": null, - "typ": "float", - "unscoped_cmd_line_args": ["--streaming-workunits-report-interval"], + "typ": "bool", + "unscoped_cmd_line_args": ["--debug-adapter", "--no-debug-adapter"], "value_history": { "ranked_values": [ { @@ -22660,29 +22766,29 @@ { "details": null, "rank": "HARDCODED", - "value": 1.0 + "value": false } ] } }, - "PANTS_SUBPROCESSDIR": { + "PANTS_RUSTFMT_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pants-subprocessdir=", - "config_key": "pants_subprocessdir", - "default": "/tmp/tmp.MpwSc5OGVo/.pids", + "comma_separated_display_args": "--[no-]rustfmt-skip", + "config_key": "skip", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pants-subprocessdir="], - "env_var": "PANTS_SUBPROCESSDIR", + "display_args": ["--[no-]rustfmt-skip"], + "env_var": "PANTS_RUSTFMT_SKIP", "fromfile": false, - "help": "The directory to use for tracking subprocess metadata. This should live outside of the dir used by `pants_workdir` to allow for tracking subprocesses that outlive the workdir data.", + "help": "If true, don't use rustfmt when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pants-subprocessdir"], + "scoped_cmd_line_args": ["--rustfmt-skip", "--no-rustfmt-skip"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--pants-subprocessdir"], + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -22693,37 +22799,31 @@ { "details": null, "rank": "HARDCODED", - "value": "/tmp/tmp.MpwSc5OGVo/.pids" + "value": false } ] } }, - "PANTS_SUBPROCESS_ENVIRONMENT_ENV_VARS": { + "PANTS_RUST_RUSTUP_SEARCH_PATHS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--subprocess-environment-env-vars=\"['', '', ...]\"", - "config_key": "env_vars", - "default": [ - "LANG", - "LC_CTYPE", - "LC_ALL", - "SSL_CERT_FILE", - "SSL_CERT_DIR" - ], + "comma_separated_display_args": "--rust-rustup-search-paths=\"['', '', ...]\"", + "config_key": "rustup_search_paths", + "default": [""], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--subprocess-environment-env-vars=\"['', '', ...]\"" + "--rust-rustup-search-paths=\"['', '', ...]\"" ], - "env_var": "PANTS_SUBPROCESS_ENVIRONMENT_ENV_VARS", + "env_var": "PANTS_RUST_RUSTUP_SEARCH_PATHS", "fromfile": false, - "help": "Environment variables to set for process invocations.\n\nEntries are either strings in the form `ENV_VAR=value` to set an explicit value; or just `ENV_VAR` to copy the value from Pants's own environment.\n\nSee https://www.pantsbuild.org/v2.18/docs/options#addremove-semantics for how to add and remove Pants's default for this option.", + "help": "A list of paths to search for Rustup.\n\nSpecify absolute paths to directories with the `rustup` binary, e.g. `/usr/bin`. Earlier entries will be searched first. The special string '' will expand to the contents of the PATH env var.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--subprocess-environment-env-vars"], - "target_field_name": "subprocess_environment_env_vars", + "scoped_cmd_line_args": ["--rust-rustup-search-paths"], + "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--env-vars"], + "unscoped_cmd_line_args": ["--rustup-search-paths"], "value_history": { "ranked_values": [ { @@ -22734,68 +22834,62 @@ { "details": "", "rank": "HARDCODED", - "value": [ - "LANG", - "LC_CTYPE", - "LC_ALL", - "SSL_CERT_FILE", - "SSL_CERT_DIR" - ] + "value": [""] } ] } }, - "PANTS_SUBPROJECT_ROOTS": { + "PANTS_RUST_TOOLCHAIN": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--subproject-roots=\"['', '', ...]\"", - "config_key": "subproject_roots", - "default": [], + "comma_separated_display_args": "--rust-toolchain=", + "config_key": "toolchain", + "default": "stable", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--subproject-roots=\"['', '', ...]\""], - "env_var": "PANTS_SUBPROJECT_ROOTS", + "display_args": ["--rust-toolchain="], + "env_var": "PANTS_RUST_TOOLCHAIN", "fromfile": false, - "help": "Paths that correspond with build roots for any subproject that this project depends on.", + "help": "Name of a Rust toolchain to use for all builds. The toolchain name will be provided to Rustup to find the Toolchain.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--subproject-roots"], + "scoped_cmd_line_args": ["--rust-toolchain"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--subproject-roots"], + "typ": "str", + "unscoped_cmd_line_args": ["--toolchain"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": "stable" } ] } }, - "PANTS_TAG": { + "PANTS_SCALAC_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--tag=\"[[+-]tag1,tag2,..., [+-]tag1,tag2,..., ...]\"", - "config_key": "tag", + "comma_separated_display_args": "--scalac-args=\"[, , ...]\"", + "config_key": "args", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--tag=\"[[+-]tag1,tag2,..., [+-]tag1,tag2,..., ...]\""], - "env_var": "PANTS_TAG", + "display_args": ["--scalac-args=\"[, , ...]\""], + "env_var": "PANTS_SCALAC_ARGS", "fromfile": false, - "help": "Include only targets with these tags (optional '+' prefix) or without these tags ('-' prefix). See https://www.pantsbuild.org/v2.18/docs/advanced-target-selection.", + "help": "Arguments to pass directly to scalac, e.g. `--scalac-args='-encoding UTF-8'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--tag"], + "scoped_cmd_line_args": ["--scalac-args"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--tag"], + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { @@ -22811,26 +22905,26 @@ ] } }, - "PANTS_TAILOR_ALIAS_MAPPING": { + "PANTS_SCALAC_PLUGINS_FOR_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--tailor-alias-mapping=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "alias_mapping", + "comma_separated_display_args": "--scalac-plugins-for-resolve=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "plugins_for_resolve", "default": {}, "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--tailor-alias-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + "--scalac-plugins-for-resolve=\"{'key1': val1, 'key2': val2, ...}\"" ], - "env_var": "PANTS_TAILOR_ALIAS_MAPPING", + "env_var": "PANTS_SCALAC_PLUGINS_FOR_RESOLVE", "fromfile": false, - "help": "A mapping from standard target type to custom type to use instead. The custom type can be a custom target type or a macro that offers compatible functionality to the one it replaces (see https://www.pantsbuild.org/v2.18/docs/macros).", + "help": "A dictionary, whose keys are the names of each JVM resolve that requires default `scalac` plugins, and the value is a comma-separated string consisting of scalac plugin names. Each specified plugin must have a corresponding `scalac_plugin` target that specifies that name in either its `plugin_name` field or is the same as its target name.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--tailor-alias-mapping"], + "scoped_cmd_line_args": ["--scalac-plugins-for-resolve"], "target_field_name": null, "typ": "dict", - "unscoped_cmd_line_args": ["--alias-mapping"], + "unscoped_cmd_line_args": ["--plugins-for-resolve"], "value_history": { "ranked_values": [ { @@ -22846,85 +22940,90 @@ ] } }, - "PANTS_TAILOR_BUILD_FILE_HEADER": { + "PANTS_SCALAFMT_ARTIFACTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--tailor-build-file-header=", - "config_key": "build_file_header", - "default": null, + "comma_separated_display_args": "--scalafmt-artifacts=\"['', '', ...]\"", + "config_key": "artifacts", + "default": ["org.scalameta:scalafmt-cli_2.13:{version}"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--tailor-build-file-header="], - "env_var": "PANTS_TAILOR_BUILD_FILE_HEADER", + "display_args": ["--scalafmt-artifacts=\"['', '', ...]\""], + "env_var": "PANTS_SCALAFMT_ARTIFACTS", "fromfile": false, - "help": "A header, e.g., a copyright notice, to add to the content of created BUILD files.", + "help": "Artifact requirements for this tool using specified as either the address of a `jvm_artifact` target or, alternatively, as a colon-separated Maven coordinates (e.g., `group:name:version`). For Maven coordinates, the string `{version}` version will be substituted with the value of the `[scalafmt].version` option.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--tailor-build-file-header"], + "scoped_cmd_line_args": ["--scalafmt-artifacts"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--build-file-header"], + "typ": "list", + "unscoped_cmd_line_args": ["--artifacts"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": ["org.scalameta:scalafmt-cli_2.13:{version}"] } ] } }, - "PANTS_TAILOR_BUILD_FILE_INDENT": { + "PANTS_SCALAFMT_JVM_OPTIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--tailor-build-file-indent=", - "config_key": "build_file_indent", - "default": " ", + "comma_separated_display_args": "--scalafmt-jvm-options=\"['', '', ...]\"", + "config_key": "jvm_options", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--tailor-build-file-indent="], - "env_var": "PANTS_TAILOR_BUILD_FILE_INDENT", + "display_args": ["--scalafmt-jvm-options=\"['', '', ...]\""], + "env_var": "PANTS_SCALAFMT_JVM_OPTIONS", "fromfile": false, - "help": "The indent to use when auto-editing BUILD files.", + "help": "List of JVM options to pass to `scalafmt` JVM processes.\n\nOptions set here will be added to those set in `[jvm].global_options`. Please check the documentation for the `jvm` subsystem to see what values are accepted here.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--tailor-build-file-indent"], + "scoped_cmd_line_args": ["--scalafmt-jvm-options"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--build-file-indent"], + "typ": "list", + "unscoped_cmd_line_args": ["--jvm-options"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": " " + "value": [] } ] } }, - "PANTS_TAILOR_BUILD_FILE_NAME": { + "PANTS_SCALAFMT_LOCKFILE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--tailor-build-file-name=", - "config_key": "build_file_name", - "default": "BUILD", + "comma_separated_display_args": "--scalafmt-lockfile=", + "config_key": "lockfile", + "default": "", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--tailor-build-file-name="], - "env_var": "PANTS_TAILOR_BUILD_FILE_NAME", + "display_args": ["--scalafmt-lockfile="], + "env_var": "PANTS_SCALAFMT_LOCKFILE", "fromfile": false, - "help": "The name to use for generated BUILD files.\n\nThis must be compatible with `[GLOBAL].build_patterns`.", + "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/scala/lint/scalafmt/scalafmt.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=scalafmt`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--tailor-build-file-name"], + "scoped_cmd_line_args": ["--scalafmt-lockfile"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--build-file-name"], + "unscoped_cmd_line_args": ["--lockfile"], "value_history": { "ranked_values": [ { @@ -22935,29 +23034,29 @@ { "details": null, "rank": "HARDCODED", - "value": "BUILD" + "value": "" } ] } }, - "PANTS_TAILOR_CHECK": { + "PANTS_SCALAFMT_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]tailor-check", - "config_key": "check", + "comma_separated_display_args": "--[no-]scalafmt-skip", + "config_key": "skip", "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]tailor-check"], - "env_var": "PANTS_TAILOR_CHECK", + "display_args": ["--[no-]scalafmt-skip"], + "env_var": "PANTS_SCALAFMT_SKIP", "fromfile": false, - "help": "Do not write changes to disk, only write back what would change. Return code 0 means there would be no changes, and 1 means that there would be.", + "help": "If true, don't use scalafmt when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--tailor-check", "--no-tailor-check"], + "scoped_cmd_line_args": ["--scalafmt-skip", "--no-scalafmt-skip"], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--check", "--no-check"], + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -22973,26 +23072,57 @@ ] } }, - "PANTS_TAILOR_IGNORE_ADDING_TARGETS": { + "PANTS_SCALAFMT_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--tailor-ignore-adding-targets=\"['', '', ...]\"", - "config_key": "ignore_adding_targets", - "default": [], + "comma_separated_display_args": "--scalafmt-version=", + "config_key": "version", + "default": "3.2.1", "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--tailor-ignore-adding-targets=\"['', '', ...]\"" - ], - "env_var": "PANTS_TAILOR_IGNORE_ADDING_TARGETS", + "display_args": ["--scalafmt-version="], + "env_var": "PANTS_SCALAFMT_VERSION", "fromfile": false, - "help": "Do not add these target definitions.\n\nExpects a list of target addresses that would normally be added by `tailor`, e.g. `['project:tgt']`. To find these names, you can run `tailor --check`, then combine the BUILD file path with the target's name. For example, if `tailor` would add the target `bin` to `project/BUILD`, then the address would be `project:bin`. If the BUILD file is at the root of your repository, use `//` for the path, e.g. `//:bin`.\n\nDoes not work with macros.", + "help": "Version string for the tool. This is available for substitution in the `[scalafmt].artifacts` option by including the string `{version}`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--tailor-ignore-adding-targets"], + "scoped_cmd_line_args": ["--scalafmt-version"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--version"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "3.2.1" + } + ] + } + }, + "PANTS_SCALAPB_ARTIFACTS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--scalapb-artifacts=\"['', '', ...]\"", + "config_key": "artifacts", + "default": ["com.thesamet.scalapb:scalapbc_2.13:{version}"], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--scalapb-artifacts=\"['', '', ...]\""], + "env_var": "PANTS_SCALAPB_ARTIFACTS", + "fromfile": false, + "help": "Artifact requirements for this tool using specified as either the address of a `jvm_artifact` target or, alternatively, as a colon-separated Maven coordinates (e.g., `group:name:version`). For Maven coordinates, the string `{version}` version will be substituted with the value of the `[scalapb].version` option.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--scalapb-artifacts"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--ignore-adding-targets"], + "unscoped_cmd_line_args": ["--artifacts"], "value_history": { "ranked_values": [ { @@ -23003,29 +23133,29 @@ { "details": "", "rank": "HARDCODED", - "value": [] + "value": ["com.thesamet.scalapb:scalapbc_2.13:{version}"] } ] } }, - "PANTS_TAILOR_IGNORE_PATHS": { + "PANTS_SCALAPB_JVM_OPTIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--tailor-ignore-paths=\"['', '', ...]\"", - "config_key": "ignore_paths", + "comma_separated_display_args": "--scalapb-jvm-options=\"['', '', ...]\"", + "config_key": "jvm_options", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--tailor-ignore-paths=\"['', '', ...]\""], - "env_var": "PANTS_TAILOR_IGNORE_PATHS", + "display_args": ["--scalapb-jvm-options=\"['', '', ...]\""], + "env_var": "PANTS_SCALAPB_JVM_OPTIONS", "fromfile": false, - "help": "Do not edit or create BUILD files at these paths.\n\nCan use literal file names and/or globs, e.g. `['project/BUILD, 'ignore_me/**']`.\n\nThis augments the option `[GLOBAL].build_ignore`, which tells Pants to also not _read_ BUILD files at certain paths. In contrast, this option only tells Pants to not edit/create BUILD files at the specified paths.", + "help": "List of JVM options to pass to `scalapb` JVM processes.\n\nOptions set here will be added to those set in `[jvm].global_options`. Please check the documentation for the `jvm` subsystem to see what values are accepted here.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--tailor-ignore-paths"], + "scoped_cmd_line_args": ["--scalapb-jvm-options"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--ignore-paths"], + "unscoped_cmd_line_args": ["--jvm-options"], "value_history": { "ranked_values": [ { @@ -23041,127 +23171,126 @@ ] } }, - "PANTS_TERRAFORM_FMT_SKIP": { + "PANTS_SCALAPB_JVM_PLUGINS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]terraform-fmt-skip", - "config_key": "skip", - "default": false, + "comma_separated_display_args": "--scalapb-jvm-plugins=\"['', '', ...]\"", + "config_key": "jvm_plugins", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]terraform-fmt-skip"], - "env_var": "PANTS_TERRAFORM_FMT_SKIP", + "display_args": ["--scalapb-jvm-plugins=\"['', '', ...]\""], + "env_var": "PANTS_SCALAPB_JVM_PLUGINS", "fromfile": false, - "help": "If true, don't use `terraform fmt` when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "A list of JVM-based `protoc` plugins to invoke when generating Scala code from protobuf files. The format for each plugin specifier is `NAME=ARTIFACT` where NAME is the name of the plugin and ARTIFACT is either the address of a `jvm_artifact` target or the colon-separated Maven coordinate for the plugin's jar artifact.\n\nFor example, to invoke the fs2-grpc protoc plugin, the following option would work: `--scalapb-jvm-plugins=fs2=org.typelevel:fs2-grpc-codegen_2.12:2.3.1`. (Note: you would also need to set `--scalapb-runtime-dependencies` appropriately to include the applicable runtime libraries for your chosen protoc plugins.)", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--terraform-fmt-skip", - "--no-terraform-fmt-skip" - ], + "scoped_cmd_line_args": ["--scalapb-jvm-plugins"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "typ": "list", + "unscoped_cmd_line_args": ["--jvm-plugins"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": [] } ] } }, - "PANTS_TERRAFORM_HCL2_PARSER_INSTALL_FROM_RESOLVE": { + "PANTS_SCALAPB_LOCKFILE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--terraform-hcl2-parser-install-from-resolve=", - "config_key": "install_from_resolve", - "default": null, + "comma_separated_display_args": "--scalapb-lockfile=", + "config_key": "lockfile", + "default": "", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--terraform-hcl2-parser-install-from-resolve="], - "env_var": "PANTS_TERRAFORM_HCL2_PARSER_INSTALL_FROM_RESOLVE", + "display_args": ["--scalapb-lockfile="], + "env_var": "PANTS_SCALAPB_LOCKFILE", "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `terraform-hcl2-parser` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/codegen/protobuf/scala/scalapbc.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=scalapb`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--terraform-hcl2-parser-install-from-resolve"], + "scoped_cmd_line_args": ["--scalapb-lockfile"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--install-from-resolve"], + "unscoped_cmd_line_args": ["--lockfile"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "" } ] } }, - "PANTS_TERRAFORM_HCL2_PARSER_INTERPRETER_CONSTRAINTS": { + "PANTS_SCALAPB_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--terraform-hcl2-parser-interpreter-constraints=\"['', '', ...]\"", - "config_key": "interpreter_constraints", - "default": ["CPython>=3.7,<4"], + "comma_separated_display_args": "--scalapb-version=", + "config_key": "version", + "default": "0.11.6", "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--terraform-hcl2-parser-interpreter-constraints=\"['', '', ...]\"" - ], - "env_var": "PANTS_TERRAFORM_HCL2_PARSER_INTERPRETER_CONSTRAINTS", + "display_args": ["--scalapb-version="], + "env_var": "PANTS_SCALAPB_VERSION", "fromfile": false, - "help": "Python interpreter constraints for this tool.", + "help": "Version string for the tool. This is available for substitution in the `[scalapb].artifacts` option by including the string `{version}`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--terraform-hcl2-parser-interpreter-constraints" - ], + "scoped_cmd_line_args": ["--scalapb-version"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--interpreter-constraints"], + "typ": "str", + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": ["CPython>=3.7,<4"] + "value": "0.11.6" } ] } }, - "PANTS_TERRAFORM_HCL2_PARSER_REQUIREMENTS": { + "PANTS_SCALATEST_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--terraform-hcl2-parser-requirements=\"['', '', ...]\"", - "config_key": "requirements", + "comma_separated_display_args": "--scalatest-args=\"[, , ...]\", ... -- [ [ [...]]]", + "config_key": "args", "default": [], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--terraform-hcl2-parser-requirements=\"['', '', ...]\"" + "--scalatest-args=\"[, , ...]\"", + "... -- [ [ [...]]]" ], - "env_var": "PANTS_TERRAFORM_HCL2_PARSER_REQUIREMENTS", + "env_var": "PANTS_SCALATEST_ARGS", "fromfile": false, - "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "help": "Arguments to pass directly to Scalatest, e.g. `--scalatest-args='-t $testname'`.\n\nSee https://www.scalatest.org/user_guide/using_the_runner for supported arguments.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--terraform-hcl2-parser-requirements"], + "scoped_cmd_line_args": ["--scalatest-args"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--requirements"], + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { @@ -23177,93 +23306,90 @@ ] } }, - "PANTS_TERRAFORM_VALIDATE_SKIP": { + "PANTS_SCALATEST_ARTIFACTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]terraform-validate-skip", - "config_key": "skip", - "default": false, + "comma_separated_display_args": "--scalatest-artifacts=\"['', '', ...]\"", + "config_key": "artifacts", + "default": ["org.scalatest:scalatest_2.13:{version}"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]terraform-validate-skip"], - "env_var": "PANTS_TERRAFORM_VALIDATE_SKIP", + "display_args": ["--scalatest-artifacts=\"['', '', ...]\""], + "env_var": "PANTS_SCALATEST_ARTIFACTS", "fromfile": false, - "help": "If true, don't use `terraform validate` when running `scie-pants-linux-x86_64 check`.", + "help": "Artifact requirements for this tool using specified as either the address of a `jvm_artifact` target or, alternatively, as a colon-separated Maven coordinates (e.g., `group:name:version`). For Maven coordinates, the string `{version}` version will be substituted with the value of the `[scalatest].version` option.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--terraform-validate-skip", - "--no-terraform-validate-skip" - ], + "scoped_cmd_line_args": ["--scalatest-artifacts"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "typ": "list", + "unscoped_cmd_line_args": ["--artifacts"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": ["org.scalatest:scalatest_2.13:{version}"] } ] } }, - "PANTS_TEST_BATCH_SIZE": { + "PANTS_SCALATEST_JVM_OPTIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--test-batch-size=", - "config_key": "batch_size", - "default": 128, + "comma_separated_display_args": "--scalatest-jvm-options=\"['', '', ...]\"", + "config_key": "jvm_options", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--test-batch-size="], - "env_var": "PANTS_TEST_BATCH_SIZE", + "display_args": ["--scalatest-jvm-options=\"['', '', ...]\""], + "env_var": "PANTS_SCALATEST_JVM_OPTIONS", "fromfile": false, - "help": "The target maximum number of files to be included in each run of batch-enabled test runners.\n\nSome test runners can execute tests from multiple files in a single run. Test implementations will return all tests that _can_ run together as a single group - and then this may be further divided into smaller batches, based on this option. This is done:\n\n 1. to avoid OS argument length limits (in processes which don't support argument files)\n 2. to support more stable cache keys than would be possible if all files were operated on in a single batch\n 3. to allow for parallelism in test runners which don't have internal parallelism, or -- if they do support internal parallelism -- to improve scheduling behavior when multiple processes are competing for cores and so internal parallelism cannot be used perfectly\n\nIn order to improve cache hit rates (see 2.), batches are created at stable boundaries, and so this value is only a \"target\" max batch size (rather than an exact value).\n\nNOTE: This parameter has no effect on test runners/plugins that do not implement support for batched testing.", + "help": "List of JVM options to pass to `scalatest` JVM processes.\n\nOptions set here will be added to those set in `[jvm].global_options`. Please check the documentation for the `jvm` subsystem to see what values are accepted here.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--test-batch-size"], + "scoped_cmd_line_args": ["--scalatest-jvm-options"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--batch-size"], + "typ": "list", + "unscoped_cmd_line_args": ["--jvm-options"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": 128 + "value": [] } ] } }, - "PANTS_TEST_DEBUG": { + "PANTS_SCALATEST_LOCKFILE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]test-debug", - "config_key": "debug", - "default": false, + "comma_separated_display_args": "--scalatest-lockfile=", + "config_key": "lockfile", + "default": "", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]test-debug"], - "env_var": "PANTS_TEST_DEBUG", + "display_args": ["--scalatest-lockfile="], + "env_var": "PANTS_SCALATEST_LOCKFILE", "fromfile": false, - "help": "Run tests sequentially in an interactive process. This is necessary, for example, when you add breakpoints to your code.", + "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/scala/subsystems/scalatest.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=scalatest`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--test-debug", "--no-test-debug"], + "scoped_cmd_line_args": ["--scalatest-lockfile"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--debug", "--no-debug"], + "typ": "str", + "unscoped_cmd_line_args": ["--lockfile"], "value_history": { "ranked_values": [ { @@ -23274,32 +23400,29 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": "" } ] } }, - "PANTS_TEST_DEBUG_ADAPTER": { + "PANTS_SCALATEST_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]test-debug-adapter", - "config_key": "debug_adapter", + "comma_separated_display_args": "--[no-]scalatest-skip", + "config_key": "skip", "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]test-debug-adapter"], - "env_var": "PANTS_TEST_DEBUG_ADAPTER", + "display_args": ["--[no-]scalatest-skip"], + "env_var": "PANTS_SCALATEST_SKIP", "fromfile": false, - "help": "Run tests sequentially in an interactive process, using a Debug Adapter (https://microsoft.github.io/debug-adapter-protocol/) for the language if supported.\n\nThe interactive process used will be immediately blocked waiting for a client before continuing.\n\nThis option implies `--debug`.", + "help": "If true, don't use Scalatest when running `pants test`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--test-debug-adapter", - "--no-test-debug-adapter" - ], + "scoped_cmd_line_args": ["--scalatest-skip", "--no-scalatest-skip"], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--debug-adapter", "--no-debug-adapter"], + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -23315,57 +23438,60 @@ ] } }, - "PANTS_TEST_EXTRA_ENV_VARS": { + "PANTS_SCALATEST_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--test-extra-env-vars=\"['', '', ...]\"", - "config_key": "extra_env_vars", - "default": [], + "comma_separated_display_args": "--scalatest-version=", + "config_key": "version", + "default": "3.2.10", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--test-extra-env-vars=\"['', '', ...]\""], - "env_var": "PANTS_TEST_EXTRA_ENV_VARS", + "display_args": ["--scalatest-version="], + "env_var": "PANTS_SCALATEST_VERSION", "fromfile": false, - "help": "Additional environment variables to include in test processes. Entries are strings in the form `ENV_VAR=value` to use explicitly; or just `ENV_VAR` to copy the value of a variable in Pants's own environment.", + "help": "Version string for the tool. This is available for substitution in the `[scalatest].artifacts` option by including the string `{version}`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--test-extra-env-vars"], - "target_field_name": "test_extra_env_vars", - "typ": "list", - "unscoped_cmd_line_args": ["--extra-env-vars"], + "scoped_cmd_line_args": ["--scalatest-version"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": "3.2.10" } ] } }, - "PANTS_TEST_FORCE": { + "PANTS_SCALA_INFER_CONSUMED_TYPES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]test-force", - "config_key": "force", - "default": false, + "comma_separated_display_args": "--[no-]scala-infer-consumed-types", + "config_key": "consumed_types", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]test-force"], - "env_var": "PANTS_TEST_FORCE", + "display_args": ["--[no-]scala-infer-consumed-types"], + "env_var": "PANTS_SCALA_INFER_CONSUMED_TYPES", "fromfile": false, - "help": "Force the tests to run, even if they could be satisfied from cache.", + "help": "Infer a target's dependencies by parsing consumed types from sources.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--test-force", "--no-test-force"], + "scoped_cmd_line_args": [ + "--scala-infer-consumed-types", + "--no-scala-infer-consumed-types" + ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--force", "--no-force"], + "unscoped_cmd_line_args": ["--consumed-types", "--no-consumed-types"], "value_history": { "ranked_values": [ { @@ -23376,32 +23502,35 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": true } ] } }, - "PANTS_TEST_OPEN_COVERAGE": { + "PANTS_SCALA_INFER_FORCE_ADD_SIBLINGS_AS_DEPENDENCIES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]test-open-coverage", - "config_key": "open_coverage", + "comma_separated_display_args": "--[no-]scala-infer-force-add-siblings-as-dependencies", + "config_key": "force_add_siblings_as_dependencies", "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]test-open-coverage"], - "env_var": "PANTS_TEST_OPEN_COVERAGE", + "display_args": ["--[no-]scala-infer-force-add-siblings-as-dependencies"], + "env_var": "PANTS_SCALA_INFER_FORCE_ADD_SIBLINGS_AS_DEPENDENCIES", "fromfile": false, - "help": "If a coverage report file is generated, open it on the local system if the system supports this.", + "help": "If true, add a dependency on all `scala_source` targets generated by the same `scala_sources` target generator. If false, the dependencies will only be added if `[scala-infer].imports` is also set to false.\n\nSetting this option to true reduces the precision of dependency information. That means that you may end up compiling more than is necessary for a particular task, and that compilation will be invalidated more frequently than actually necessary. However, setting to true may be helpful if compilation fails due to missing dependencies.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--test-open-coverage", - "--no-test-open-coverage" + "--scala-infer-force-add-siblings-as-dependencies", + "--no-scala-infer-force-add-siblings-as-dependencies" ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--open-coverage", "--no-open-coverage"], + "unscoped_cmd_line_args": [ + "--force-add-siblings-as-dependencies", + "--no-force-add-siblings-as-dependencies" + ], "value_history": { "ranked_values": [ { @@ -23417,24 +23546,27 @@ ] } }, - "PANTS_TEST_OUTPUT": { - "choices": ["all", "failed", "none"], - "comma_separated_choices": "all, failed, none", - "comma_separated_display_args": "--test-output=", - "config_key": "output", - "default": "failed", + "PANTS_SCALA_INFER_IMPORTS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]scala-infer-imports", + "config_key": "imports", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--test-output="], - "env_var": "PANTS_TEST_OUTPUT", + "display_args": ["--[no-]scala-infer-imports"], + "env_var": "PANTS_SCALA_INFER_IMPORTS", "fromfile": false, - "help": "Show stdout/stderr for these tests.", + "help": "Infer a target's dependencies by parsing import statements from sources.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--test-output"], + "scoped_cmd_line_args": [ + "--scala-infer-imports", + "--no-scala-infer-imports" + ], "target_field_name": null, - "typ": "ShowOutput", - "unscoped_cmd_line_args": ["--output"], + "typ": "bool", + "unscoped_cmd_line_args": ["--imports", "--no-imports"], "value_history": { "ranked_values": [ { @@ -23445,29 +23577,32 @@ { "details": null, "rank": "HARDCODED", - "value": "failed" + "value": true } ] } }, - "PANTS_TEST_REPORT": { + "PANTS_SCALA_INFER_PACKAGE_OBJECTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]test-report", - "config_key": "report", - "default": false, + "comma_separated_display_args": "--[no-]scala-infer-package-objects", + "config_key": "package_objects", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]test-report"], - "env_var": "PANTS_TEST_REPORT", + "display_args": ["--[no-]scala-infer-package-objects"], + "env_var": "PANTS_SCALA_INFER_PACKAGE_OBJECTS", "fromfile": false, - "help": "Write test reports to `--report-dir`.", + "help": "Add dependency on the package object to every target.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--test-report", "--no-test-report"], + "scoped_cmd_line_args": [ + "--scala-infer-package-objects", + "--no-scala-infer-package-objects" + ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--report", "--no-report"], + "unscoped_cmd_line_args": ["--package-objects", "--no-package-objects"], "value_history": { "ranked_values": [ { @@ -23478,29 +23613,35 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": true } ] } }, - "PANTS_TEST_REPORT_DIR": { + "PANTS_SCALA_TAILOR_SOURCE_TARGETS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--test-report-dir=", - "config_key": "report_dir", - "default": "{distdir}/test/reports", + "comma_separated_display_args": "--[no-]scala-tailor-source-targets", + "config_key": "tailor_source_targets", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--test-report-dir="], - "env_var": "PANTS_TEST_REPORT_DIR", + "display_args": ["--[no-]scala-tailor-source-targets"], + "env_var": "PANTS_SCALA_TAILOR_SOURCE_TARGETS", "fromfile": false, - "help": "Path to write test reports to. Must be relative to the build root.", + "help": "If true, add `scala_sources`, `scala_junit_tests`, and `scalatest_tests` targets with the `tailor` goal.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--test-report-dir"], + "scoped_cmd_line_args": [ + "--scala-tailor-source-targets", + "--no-scala-tailor-source-targets" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--report-dir"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--tailor-source-targets", + "--no-tailor-source-targets" + ], "value_history": { "ranked_values": [ { @@ -23511,151 +23652,188 @@ { "details": null, "rank": "HARDCODED", - "value": "{distdir}/test/reports" + "value": true } ] } }, - "PANTS_TEST_SHARD": { + "PANTS_SCALA_VERSION_FOR_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--test-shard=", - "config_key": "shard", - "default": "", + "comma_separated_display_args": "--scala-version-for-resolve=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "version_for_resolve", + "default": {}, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--test-shard="], - "env_var": "PANTS_TEST_SHARD", - "fromfile": false, - "help": "A shard specification of the form \"k/N\", where N is a positive integer and k is a non-negative integer less than N.\n\nIf set, the request input targets will be deterministically partitioned into N disjoint subsets of roughly equal size, and only the k'th subset will be used, with all others discarded.\n\nUseful for splitting large numbers of test files across multiple machines in CI. For example, you can run three shards with `--shard=0/3`, `--shard=1/3`, `--shard=2/3`.\n\nNote that the shards are roughly equal in size as measured by number of files. No attempt is made to consider the size of different files, the time they have taken to run in the past, or other such sophisticated measures.", + "display_args": [ + "--scala-version-for-resolve=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_SCALA_VERSION_FOR_RESOLVE", + "fromfile": false, + "help": "A dictionary mapping the name of a resolve to the Scala version to use for all Scala targets consuming that resolve.\n\nAll Scala-compiled jars on a resolve's classpath must be \"compatible\" with one another and with all Scala-compiled first-party sources from `scala_sources` (and other Scala target types) using that resolve. The option sets the Scala version that will be used to compile all first-party sources using the resolve. This ensures that the compatibility property is maintained for a resolve. To support multiple Scala versions, use multiple resolves.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--test-shard"], + "scoped_cmd_line_args": ["--scala-version-for-resolve"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--shard"], + "typ": "dict", + "unscoped_cmd_line_args": ["--version-for-resolve"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": {} }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "" + "value": {} } ] } }, - "PANTS_TEST_TIMEOUTS": { + "PANTS_SCC_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]test-timeouts", - "config_key": "timeouts", - "default": true, + "comma_separated_display_args": "--scc-args=\"[, , ...]\", ... -- [ [ [...]]]", + "config_key": "args", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]test-timeouts"], - "env_var": "PANTS_TEST_TIMEOUTS", + "display_args": [ + "--scc-args=\"[, , ...]\"", + "... -- [ [ [...]]]" + ], + "env_var": "PANTS_SCC_ARGS", "fromfile": false, - "help": "Enable test target timeouts. If timeouts are enabled then test targets with a `timeout=` parameter set on their target will time out after the given number of seconds if not completed. If no timeout is set, then either the default timeout is used or no timeout is configured.", + "help": "Arguments to pass directly to SCC, e.g. `--scc-args='--no-cocomo'`.\n\nRefer to to https://github.com/boyter/scc.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--test-timeouts", "--no-test-timeouts"], + "scoped_cmd_line_args": ["--scc-args"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--timeouts", "--no-timeouts"], + "typ": "list", + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": true + "value": [] } ] } }, - "PANTS_TEST_TIMEOUT_DEFAULT": { + "PANTS_SCC_KNOWN_VERSIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--test-timeout-default=", - "config_key": "timeout_default", - "default": null, + "comma_separated_display_args": "--scc-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", + "default": [ + "3.0.0|macos_arm64 |846cb1b25025a0794d455719bc17cfb3f588576a58af1d95036f6c654e294f98|2006145", + "3.0.0|macos_x86_64|9c3064e477ab36e16204ad34f649372034bca4df669615eff5de4aa05b2ddf1a|2048134", + "3.0.0|linux_arm64 |04f9e797b70a678833e49df5e744f95080dfb7f963c0cd34f5b5d4712d290f33|1768037", + "3.0.0|linux_x86_64|13ca47ce00b5bd032f97f3af7aa8eb3c717b8972b404b155a378b09110e4aa0c|1948341" + ], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--test-timeout-default="], - "env_var": "PANTS_TEST_TIMEOUT_DEFAULT", + "display_args": ["--scc-known-versions=\"['', '', ...]\""], + "env_var": "PANTS_SCC_KNOWN_VERSIONS", "fromfile": false, - "help": "The default timeout (in seconds) for a test target if the `timeout` field is not set on the target.", + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--test-timeout-default"], + "scoped_cmd_line_args": ["--scc-known-versions"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--timeout-default"], + "typ": "list", + "unscoped_cmd_line_args": ["--known-versions"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [ + "3.0.0|macos_arm64 |846cb1b25025a0794d455719bc17cfb3f588576a58af1d95036f6c654e294f98|2006145", + "3.0.0|macos_x86_64|9c3064e477ab36e16204ad34f649372034bca4df669615eff5de4aa05b2ddf1a|2048134", + "3.0.0|linux_arm64 |04f9e797b70a678833e49df5e744f95080dfb7f963c0cd34f5b5d4712d290f33|1768037", + "3.0.0|linux_x86_64|13ca47ce00b5bd032f97f3af7aa8eb3c717b8972b404b155a378b09110e4aa0c|1948341" + ] } ] } }, - "PANTS_TEST_TIMEOUT_MAXIMUM": { + "PANTS_SCC_URL_PLATFORM_MAPPING": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--test-timeout-maximum=", - "config_key": "timeout_maximum", - "default": null, + "comma_separated_display_args": "--scc-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "url_platform_mapping", + "default": { + "linux_arm64": "arm64-unknown-linux", + "linux_x86_64": "x86_64-unknown-linux", + "macos_arm64": "arm64-apple-darwin", + "macos_x86_64": "x86_64-apple-darwin" + }, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--test-timeout-maximum="], - "env_var": "PANTS_TEST_TIMEOUT_MAXIMUM", + "display_args": [ + "--scc-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_SCC_URL_PLATFORM_MAPPING", "fromfile": false, - "help": "The maximum timeout (in seconds) that may be used on a test target.", + "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--test-timeout-maximum"], + "scoped_cmd_line_args": ["--scc-url-platform-mapping"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--timeout-maximum"], + "typ": "dict", + "unscoped_cmd_line_args": ["--url-platform-mapping"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": {} + }, + { + "details": "", + "rank": "HARDCODED", + "value": { + "linux_arm64": "arm64-unknown-linux", + "linux_x86_64": "x86_64-unknown-linux", + "macos_arm64": "arm64-apple-darwin", + "macos_x86_64": "x86_64-apple-darwin" + } } ] } }, - "PANTS_TEST_USE_COVERAGE": { + "PANTS_SCC_URL_TEMPLATE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]test-use-coverage", - "config_key": "use_coverage", - "default": false, + "comma_separated_display_args": "--scc-url-template=", + "config_key": "url_template", + "default": "https://github.com/boyter/scc/releases/download/v{version}/scc-{version}-{platform}.zip", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]test-use-coverage"], - "env_var": "PANTS_TEST_USE_COVERAGE", + "display_args": ["--scc-url-template="], + "env_var": "PANTS_SCC_URL_TEMPLATE", "fromfile": false, - "help": "Generate a coverage report if the test runner supports it.", + "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--test-use-coverage", "--no-test-use-coverage"], + "scoped_cmd_line_args": ["--scc-url-template"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--use-coverage", "--no-use-coverage"], + "typ": "str", + "unscoped_cmd_line_args": ["--url-template"], "value_history": { "ranked_values": [ { @@ -23666,35 +23844,31 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": "https://github.com/boyter/scc/releases/download/v{version}/scc-{version}-{platform}.zip" } ] } }, - "PANTS_THRIFT_DEPENDENCY_INFERENCE": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]thrift-dependency-inference", - "config_key": "dependency_inference", - "default": true, + "PANTS_SCC_USE_UNSUPPORTED_VERSION": { + "choices": ["error", "warning"], + "comma_separated_choices": "error, warning", + "comma_separated_display_args": "--scc-use-unsupported-version=", + "config_key": "use_unsupported_version", + "default": "error", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]thrift-dependency-inference"], - "env_var": "PANTS_THRIFT_DEPENDENCY_INFERENCE", + "display_args": [ + "--scc-use-unsupported-version=" + ], + "env_var": "PANTS_SCC_USE_UNSUPPORTED_VERSION", "fromfile": false, - "help": "Infer Thrift dependencies on other Thrift files by analyzing import statements.", + "help": "\nWhat action to take in case the requested version of SCC is not supported.\n\nSupported SCC versions: unspecified\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--thrift-dependency-inference", - "--no-thrift-dependency-inference" - ], + "scoped_cmd_line_args": ["--scc-use-unsupported-version"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--dependency-inference", - "--no-dependency-inference" - ], + "typ": "UnsupportedVersionUsage", + "unscoped_cmd_line_args": ["--use-unsupported-version"], "value_history": { "ranked_values": [ { @@ -23705,29 +23879,29 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": "error" } ] } }, - "PANTS_THRIFT_TAILOR": { + "PANTS_SCC_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]thrift-tailor", - "config_key": "tailor", - "default": true, + "comma_separated_display_args": "--scc-version=", + "config_key": "version", + "default": "3.0.0", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]thrift-tailor"], - "env_var": "PANTS_THRIFT_TAILOR", + "display_args": ["--scc-version="], + "env_var": "PANTS_SCC_VERSION", "fromfile": false, - "help": "If true, add `thrift_sources` targets with the `tailor` goal.", + "help": "Use this version of SCC.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--thrift-tailor", "--no-thrift-tailor"], + "scoped_cmd_line_args": ["--scc-version"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--tailor", "--no-tailor"], + "typ": "str", + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { @@ -23738,29 +23912,62 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": "3.0.0" } ] } }, - "PANTS_TWINE_ARGS": { + "PANTS_SCROOGE_ARTIFACTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--twine-args=\"[, , ...]\"", - "config_key": "args", + "comma_separated_display_args": "--scrooge-artifacts=\"['', '', ...]\"", + "config_key": "artifacts", + "default": ["com.twitter:scrooge-generator_2.13:{version}"], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--scrooge-artifacts=\"['', '', ...]\""], + "env_var": "PANTS_SCROOGE_ARTIFACTS", + "fromfile": false, + "help": "Artifact requirements for this tool using specified as either the address of a `jvm_artifact` target or, alternatively, as a colon-separated Maven coordinates (e.g., `group:name:version`). For Maven coordinates, the string `{version}` version will be substituted with the value of the `[scrooge].version` option.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--scrooge-artifacts"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--artifacts"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": ["com.twitter:scrooge-generator_2.13:{version}"] + } + ] + } + }, + "PANTS_SCROOGE_JVM_OPTIONS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--scrooge-jvm-options=\"['', '', ...]\"", + "config_key": "jvm_options", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--twine-args=\"[, , ...]\""], - "env_var": "PANTS_TWINE_ARGS", + "display_args": ["--scrooge-jvm-options=\"['', '', ...]\""], + "env_var": "PANTS_SCROOGE_JVM_OPTIONS", "fromfile": false, - "help": "Arguments to pass directly to Twine, e.g. `--twine-args='--skip-existing'`.", + "help": "List of JVM options to pass to `scrooge` JVM processes.\n\nOptions set here will be added to those set in `[jvm].global_options`. Please check the documentation for the `jvm` subsystem to see what values are accepted here.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--twine-args"], + "scoped_cmd_line_args": ["--scrooge-jvm-options"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "unscoped_cmd_line_args": ["--jvm-options"], "value_history": { "ranked_values": [ { @@ -23776,24 +23983,24 @@ ] } }, - "PANTS_TWINE_CA_CERTS_PATH": { + "PANTS_SCROOGE_LOCKFILE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--twine-ca-certs-path=", - "config_key": "ca_certs_path", - "default": "", + "comma_separated_display_args": "--scrooge-lockfile=", + "config_key": "lockfile", + "default": "", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--twine-ca-certs-path="], - "env_var": "PANTS_TWINE_CA_CERTS_PATH", + "display_args": ["--scrooge-lockfile="], + "env_var": "PANTS_SCROOGE_LOCKFILE", "fromfile": false, - "help": "Path to a file containing PEM-format CA certificates used for verifying secure connections when publishing python distributions.\n\nUses the value from `[GLOBAL].ca_certs_path` by default. Set to `\"\"` to not use any certificates.\n\nEven when using the `docker_environment` and `remote_environment` targets, this path will be read from the local host, and those certs will be used in the environment.\n\nThis option cannot be overridden via environment targets, so if you need a different value than what the rest of your organization is using, override the value via an environment variable, CLI argument, or `.pants.rc` file. See https://www.pantsbuild.org/v2.18/docs/options.", + "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/codegen/thrift/scrooge/scrooge.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=scrooge`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--twine-ca-certs-path"], + "scoped_cmd_line_args": ["--scrooge-lockfile"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--ca-certs-path"], + "unscoped_cmd_line_args": ["--lockfile"], "value_history": { "ranked_values": [ { @@ -23804,60 +24011,62 @@ { "details": null, "rank": "HARDCODED", - "value": "" + "value": "" } ] } }, - "PANTS_TWINE_CONFIG": { + "PANTS_SCROOGE_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--twine-config=", - "config_key": "config", - "default": null, + "comma_separated_display_args": "--scrooge-version=", + "config_key": "version", + "default": "21.12.0", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--twine-config="], - "env_var": "PANTS_TWINE_CONFIG", + "display_args": ["--scrooge-version="], + "env_var": "PANTS_SCROOGE_VERSION", "fromfile": false, - "help": "Path to a .pypirc config file to use. (https://packaging.python.org/specifications/pypirc/)\n\nSetting this option will disable `[twine].config_discovery`. Use this option if the config is located in a non-standard location.", + "help": "Version string for the tool. This is available for substitution in the `[scrooge].artifacts` option by including the string `{version}`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--twine-config"], + "scoped_cmd_line_args": ["--scrooge-version"], "target_field_name": null, - "typ": "file_option", - "unscoped_cmd_line_args": ["--config"], + "typ": "str", + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "21.12.0" } ] } }, - "PANTS_TWINE_CONFIG_DISCOVERY": { + "PANTS_SESSION_END_TASKS_TIMEOUT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]twine-config-discovery", - "config_key": "config_discovery", - "default": true, + "comma_separated_display_args": "--session-end-tasks-timeout=", + "config_key": "session_end_tasks_timeout", + "default": 3.0, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]twine-config-discovery"], - "env_var": "PANTS_TWINE_CONFIG_DISCOVERY", + "display_args": ["--session-end-tasks-timeout="], + "env_var": "PANTS_SESSION_END_TASKS_TIMEOUT", "fromfile": false, - "help": "If true, Pants will include all relevant config files during runs (`.pypirc`).\n\nUse `[twine].config` instead if your config is in a non-standard location.", + "help": "The time in seconds to wait for still-running \"session end\" tasks to complete before finishing completion of a Pants invocation. \"Session end\" tasks include, for example, writing data that was generated during the applicable Pants invocation to a configured remote cache.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--twine-config-discovery", - "--no-twine-config-discovery" - ], + "scoped_cmd_line_args": ["--session-end-tasks-timeout"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], + "typ": "float", + "unscoped_cmd_line_args": ["--session-end-tasks-timeout"], "value_history": { "ranked_values": [ { @@ -23868,59 +24077,115 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": 3.0 } ] } }, - "PANTS_TWINE_CONSOLE_SCRIPT": { + "PANTS_SETUPTOOLS_INSTALL_FROM_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--twine-console-script=", - "config_key": "console_script", - "default": "twine", + "comma_separated_display_args": "--setuptools-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--twine-console-script="], - "env_var": "PANTS_TWINE_CONSOLE_SCRIPT", + "display_args": ["--setuptools-install-from-resolve="], + "env_var": "PANTS_SETUPTOOLS_INSTALL_FROM_RESOLVE", "fromfile": false, - "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `setuptools` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--twine-console-script"], + "scoped_cmd_line_args": ["--setuptools-install-from-resolve"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--console-script"], + "unscoped_cmd_line_args": ["--install-from-resolve"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + } + ] + } + }, + "PANTS_SETUPTOOLS_REQUIREMENTS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--setuptools-requirements=\"['', '', ...]\"", + "config_key": "requirements", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--setuptools-requirements=\"['', '', ...]\""], + "env_var": "PANTS_SETUPTOOLS_REQUIREMENTS", + "fromfile": false, + "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--setuptools-requirements"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--requirements"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "twine" + "value": [] } ] } }, - "PANTS_TWINE_ENTRY_POINT": { + "PANTS_SETUPTOOLS_SCM_CONSOLE_SCRIPT": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--twine-entry-point=", - "config_key": "entry_point", + "comma_separated_display_args": "--setuptools-scm-console-script=", + "config_key": "console_script", "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--twine-entry-point="], - "env_var": "PANTS_TWINE_ENTRY_POINT", + "display_args": ["--setuptools-scm-console-script="], + "env_var": "PANTS_SETUPTOOLS_SCM_CONSOLE_SCRIPT", + "fromfile": false, + "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--setuptools-scm-console-script"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--console-script"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + "PANTS_SETUPTOOLS_SCM_ENTRY_POINT": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--setuptools-scm-entry-point=", + "config_key": "entry_point", + "default": "setuptools_scm", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--setuptools-scm-entry-point="], + "env_var": "PANTS_SETUPTOOLS_SCM_ENTRY_POINT", "fromfile": false, "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--twine-entry-point"], + "scoped_cmd_line_args": ["--setuptools-scm-entry-point"], "target_field_name": null, "typ": "str", "unscoped_cmd_line_args": ["--entry-point"], @@ -23930,25 +24195,30 @@ "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "setuptools_scm" } ] } }, - "PANTS_TWINE_INSTALL_FROM_RESOLVE": { + "PANTS_SETUPTOOLS_SCM_INSTALL_FROM_RESOLVE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--twine-install-from-resolve=", + "comma_separated_display_args": "--setuptools-scm-install-from-resolve=", "config_key": "install_from_resolve", "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--twine-install-from-resolve="], - "env_var": "PANTS_TWINE_INSTALL_FROM_RESOLVE", + "display_args": ["--setuptools-scm-install-from-resolve="], + "env_var": "PANTS_SETUPTOOLS_SCM_INSTALL_FROM_RESOLVE", "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `twine` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `setuptools-scm` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--twine-install-from-resolve"], + "scoped_cmd_line_args": ["--setuptools-scm-install-from-resolve"], "target_field_name": null, "typ": "str", "unscoped_cmd_line_args": ["--install-from-resolve"], @@ -23962,23 +24232,23 @@ ] } }, - "PANTS_TWINE_INTERPRETER_CONSTRAINTS": { + "PANTS_SETUPTOOLS_SCM_INTERPRETER_CONSTRAINTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--twine-interpreter-constraints=\"['', '', ...]\"", + "comma_separated_display_args": "--setuptools-scm-interpreter-constraints=\"['', '', ...]\"", "config_key": "interpreter_constraints", "default": ["CPython>=3.7,<4"], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--twine-interpreter-constraints=\"['', '', ...]\"" + "--setuptools-scm-interpreter-constraints=\"['', '', ...]\"" ], - "env_var": "PANTS_TWINE_INTERPRETER_CONSTRAINTS", + "env_var": "PANTS_SETUPTOOLS_SCM_INTERPRETER_CONSTRAINTS", "fromfile": false, "help": "Python interpreter constraints for this tool.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--twine-interpreter-constraints"], + "scoped_cmd_line_args": ["--setuptools-scm-interpreter-constraints"], "target_field_name": null, "typ": "list", "unscoped_cmd_line_args": ["--interpreter-constraints"], @@ -23997,21 +24267,23 @@ ] } }, - "PANTS_TWINE_REQUIREMENTS": { + "PANTS_SETUPTOOLS_SCM_REQUIREMENTS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--twine-requirements=\"['', '', ...]\"", + "comma_separated_display_args": "--setuptools-scm-requirements=\"['', '', ...]\"", "config_key": "requirements", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--twine-requirements=\"['', '', ...]\""], - "env_var": "PANTS_TWINE_REQUIREMENTS", + "display_args": [ + "--setuptools-scm-requirements=\"['', '', ...]\"" + ], + "env_var": "PANTS_SETUPTOOLS_SCM_REQUIREMENTS", "fromfile": false, "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--twine-requirements"], + "scoped_cmd_line_args": ["--setuptools-scm-requirements"], "target_field_name": null, "typ": "list", "unscoped_cmd_line_args": ["--requirements"], @@ -24030,24 +24302,28 @@ ] } }, - "PANTS_TWINE_SKIP": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]twine-skip", - "config_key": "skip", - "default": false, + "PANTS_SETUP_PY_GENERATION_FIRST_PARTY_DEPENDENCY_VERSION_SCHEME": { + "choices": ["exact", "compatible", "any"], + "comma_separated_choices": "exact, compatible, any", + "comma_separated_display_args": "--setup-py-generation-first-party-dependency-version-scheme=", + "config_key": "first_party_dependency_version_scheme", + "default": "exact", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]twine-skip"], - "env_var": "PANTS_TWINE_SKIP", + "display_args": [ + "--setup-py-generation-first-party-dependency-version-scheme=" + ], + "env_var": "PANTS_SETUP_PY_GENERATION_FIRST_PARTY_DEPENDENCY_VERSION_SCHEME", "fromfile": false, - "help": "If true, don't use Twine when running `scie-pants-linux-x86_64 publish`.", + "help": "What version to set in `install_requires` when a `python_distribution` depends on other `python_distribution`s. If `exact`, will use `==`. If `compatible`, will use `~=`. If `any`, will leave off the version. See https://www.python.org/dev/peps/pep-0440/#version-specifiers.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--twine-skip", "--no-twine-skip"], + "scoped_cmd_line_args": [ + "--setup-py-generation-first-party-dependency-version-scheme" + ], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "typ": "FirstPartyDependencyVersionScheme", + "unscoped_cmd_line_args": ["--first-party-dependency-version-scheme"], "value_history": { "ranked_values": [ { @@ -24058,29 +24334,35 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": "exact" } ] } }, - "PANTS_UNMATCHED_BUILD_FILE_GLOBS": { - "choices": ["ignore", "warn", "error"], - "comma_separated_choices": "ignore, warn, error", - "comma_separated_display_args": "--unmatched-build-file-globs=", - "config_key": "unmatched_build_file_globs", - "default": "warn", + "PANTS_SETUP_PY_GENERATION_GENERATE_SETUP_DEFAULT": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]setup-py-generation-generate-setup-default", + "config_key": "generate_setup_default", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--unmatched-build-file-globs="], - "env_var": "PANTS_UNMATCHED_BUILD_FILE_GLOBS", + "display_args": ["--[no-]setup-py-generation-generate-setup-default"], + "env_var": "PANTS_SETUP_PY_GENERATION_GENERATE_SETUP_DEFAULT", "fromfile": false, - "help": "What to do when files and globs specified in BUILD files, such as in the `sources` field, cannot be found.\n\nThis usually happens when the files do not exist on your machine. It can also happen if they are ignored by the `[GLOBAL].pants_ignore` option, which causes the files to be invisible to Pants.", + "help": "The default value for the `generate_setup` field on `python_distribution` targets. Can be overridden per-target by setting that field explicitly. Set this to False if you mostly rely on handwritten setup files (`setup.py`, `setup.cfg` and similar). Leave as True if you mostly rely on Pants generating setup files for you.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--unmatched-build-file-globs"], + "scoped_cmd_line_args": [ + "--setup-py-generation-generate-setup-default", + "--no-setup-py-generation-generate-setup-default" + ], "target_field_name": null, - "typ": "GlobMatchErrorBehavior", - "unscoped_cmd_line_args": ["--unmatched-build-file-globs"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--generate-setup-default", + "--no-generate-setup-default" + ], "value_history": { "ranked_values": [ { @@ -24091,65 +24373,65 @@ { "details": null, "rank": "HARDCODED", - "value": "warn" + "value": true } ] } }, - "PANTS_UNMATCHED_CLI_GLOBS": { - "choices": ["ignore", "warn", "error"], - "comma_separated_choices": "ignore, warn, error", - "comma_separated_display_args": "--unmatched-cli-globs=", - "config_key": "unmatched_cli_globs", - "default": "error", + "PANTS_SHELLCHECK_ARGS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--shellcheck-args=\"[, , ...]\"", + "config_key": "args", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--unmatched-cli-globs="], - "env_var": "PANTS_UNMATCHED_CLI_GLOBS", + "display_args": ["--shellcheck-args=\"[, , ...]\""], + "env_var": "PANTS_SHELLCHECK_ARGS", "fromfile": false, - "help": "What to do when command line arguments, e.g. files and globs like `dir::`, cannot be found.\n\nThis usually happens when the files do not exist on your machine. It can also happen if they are ignored by the `[GLOBAL].pants_ignore` option, which causes the files to be invisible to Pants.", + "help": "Arguments to pass directly to Shellcheck, e.g. `--shellcheck-args='-e SC20529'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--unmatched-cli-globs"], + "scoped_cmd_line_args": ["--shellcheck-args"], "target_field_name": null, - "typ": "GlobMatchErrorBehavior", - "unscoped_cmd_line_args": ["--unmatched-cli-globs"], + "typ": "list", + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "error" + "value": [] } ] } }, - "PANTS_UPDATE_BUILD_FILES_CHECK": { + "PANTS_SHELLCHECK_CONFIG_DISCOVERY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]update-build-files-check", - "config_key": "check", - "default": false, + "comma_separated_display_args": "--[no-]shellcheck-config-discovery", + "config_key": "config_discovery", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]update-build-files-check"], - "env_var": "PANTS_UPDATE_BUILD_FILES_CHECK", + "display_args": ["--[no-]shellcheck-config-discovery"], + "env_var": "PANTS_SHELLCHECK_CONFIG_DISCOVERY", "fromfile": false, - "help": "Do not write changes to disk, only write back what would change. Return code 0 means there would be no changes, and 1 means that there would be.", + "help": "If true, Pants will include all relevant `.shellcheckrc` and `shellcheckrc` files during runs. See https://www.mankier.com/1/shellcheck#RC_Files for where these can be located.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--update-build-files-check", - "--no-update-build-files-check" + "--shellcheck-config-discovery", + "--no-shellcheck-config-discovery" ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--check", "--no-check"], + "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], "value_history": { "ranked_values": [ { @@ -24160,71 +24442,74 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": true } ] } }, - "PANTS_UPDATE_BUILD_FILES_FIX_SAFE_DEPRECATIONS": { + "PANTS_SHELLCHECK_KNOWN_VERSIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]update-build-files-fix-safe-deprecations", - "config_key": "fix_safe_deprecations", - "default": true, + "comma_separated_display_args": "--shellcheck-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", + "default": [ + "v0.8.0|macos_arm64 |36dffd536b801c8bab2e9fa468163037e0c7f7e0a05298e5ad6299b4dde67e31|14525367", + "v0.8.0|macos_x86_64|4e93a76ee116b2f08c88e25011830280ad0d61615d8346364a4ea564b29be3f0|6310442", + "v0.8.0|linux_arm64 |8f4810485425636eadce2ec23441fd29d5b1b58d239ffda0a5faf8dd499026f5|4884430", + "v0.8.0|linux_x86_64|01d181787ffe63ebb0a2293f63bdc8455c5c30d3a6636320664bfa278424638f|2082242" + ], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]update-build-files-fix-safe-deprecations"], - "env_var": "PANTS_UPDATE_BUILD_FILES_FIX_SAFE_DEPRECATIONS", + "display_args": [ + "--shellcheck-known-versions=\"['', '', ...]\"" + ], + "env_var": "PANTS_SHELLCHECK_KNOWN_VERSIONS", "fromfile": false, - "help": "Automatically fix deprecations, such as target type renames, that are safe because they do not change semantics.", + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--update-build-files-fix-safe-deprecations", - "--no-update-build-files-fix-safe-deprecations" - ], + "scoped_cmd_line_args": ["--shellcheck-known-versions"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--fix-safe-deprecations", - "--no-fix-safe-deprecations" - ], + "typ": "list", + "unscoped_cmd_line_args": ["--known-versions"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": true + "value": [ + "v0.8.0|macos_arm64 |36dffd536b801c8bab2e9fa468163037e0c7f7e0a05298e5ad6299b4dde67e31|14525367", + "v0.8.0|macos_x86_64|4e93a76ee116b2f08c88e25011830280ad0d61615d8346364a4ea564b29be3f0|6310442", + "v0.8.0|linux_arm64 |8f4810485425636eadce2ec23441fd29d5b1b58d239ffda0a5faf8dd499026f5|4884430", + "v0.8.0|linux_x86_64|01d181787ffe63ebb0a2293f63bdc8455c5c30d3a6636320664bfa278424638f|2082242" + ] } ] } }, - "PANTS_UPDATE_BUILD_FILES_FMT": { + "PANTS_SHELLCHECK_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]update-build-files-fmt", - "config_key": "fmt", - "default": true, + "comma_separated_display_args": "--[no-]shellcheck-skip", + "config_key": "skip", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]update-build-files-fmt"], - "env_var": "PANTS_UPDATE_BUILD_FILES_FMT", + "display_args": ["--[no-]shellcheck-skip"], + "env_var": "PANTS_SHELLCHECK_SKIP", "fromfile": false, - "help": "Format BUILD files using Black or Yapf.\n\nSet `[black].args` / `[yapf].args`, `[black].config` / `[yapf].config` , and `[black].config_discovery` / `[yapf].config_discovery` to change Black's or Yapf's behavior. Set `[black].interpreter_constraints` / `[yapf].interpreter_constraints` and `[python].interpreter_search_path` to change which interpreter is used to run the formatter.", + "help": "If true, don't use Shellcheck when running `pants lint`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--update-build-files-fmt", - "--no-update-build-files-fmt" - ], + "scoped_cmd_line_args": ["--shellcheck-skip", "--no-shellcheck-skip"], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--fmt", "--no-fmt"], + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -24235,29 +24520,74 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": false } ] } }, - "PANTS_UPDATE_BUILD_FILES_FORMATTER": { - "choices": ["yapf", "black"], - "comma_separated_choices": "yapf, black", - "comma_separated_display_args": "--update-build-files-formatter=", - "config_key": "formatter", - "default": "black", + "PANTS_SHELLCHECK_URL_PLATFORM_MAPPING": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--shellcheck-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "url_platform_mapping", + "default": { + "linux_arm64": "linux.aarch64", + "linux_x86_64": "linux.x86_64", + "macos_arm64": "darwin.aarch64", + "macos_x86_64": "darwin.x86_64" + }, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--update-build-files-formatter="], - "env_var": "PANTS_UPDATE_BUILD_FILES_FORMATTER", + "display_args": [ + "--shellcheck-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_SHELLCHECK_URL_PLATFORM_MAPPING", "fromfile": false, - "help": "Which formatter Pants should use to format BUILD files.", + "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--update-build-files-formatter"], + "scoped_cmd_line_args": ["--shellcheck-url-platform-mapping"], "target_field_name": null, - "typ": "Formatter", - "unscoped_cmd_line_args": ["--formatter"], + "typ": "dict", + "unscoped_cmd_line_args": ["--url-platform-mapping"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": {} + }, + { + "details": "", + "rank": "HARDCODED", + "value": { + "linux_arm64": "linux.aarch64", + "linux_x86_64": "linux.x86_64", + "macos_arm64": "darwin.aarch64", + "macos_x86_64": "darwin.x86_64" + } + } + ] + } + }, + "PANTS_SHELLCHECK_URL_TEMPLATE": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--shellcheck-url-template=", + "config_key": "url_template", + "default": "https://github.com/vscode-shellcheck/shellcheck-binaries/releases/download/{version}/shellcheck-{version}.{platform}.tar.gz", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--shellcheck-url-template="], + "env_var": "PANTS_SHELLCHECK_URL_TEMPLATE", + "fromfile": false, + "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--shellcheck-url-template"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--url-template"], "value_history": { "ranked_values": [ { @@ -24268,29 +24598,31 @@ { "details": null, "rank": "HARDCODED", - "value": "black" + "value": "https://github.com/vscode-shellcheck/shellcheck-binaries/releases/download/{version}/shellcheck-{version}.{platform}.tar.gz" } ] } }, - "PANTS_VERIFY_CONFIG": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]verify-config", - "config_key": "verify_config", - "default": true, + "PANTS_SHELLCHECK_USE_UNSUPPORTED_VERSION": { + "choices": ["error", "warning"], + "comma_separated_choices": "error, warning", + "comma_separated_display_args": "--shellcheck-use-unsupported-version=", + "config_key": "use_unsupported_version", + "default": "error", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]verify-config"], - "env_var": "PANTS_VERIFY_CONFIG", + "display_args": [ + "--shellcheck-use-unsupported-version=" + ], + "env_var": "PANTS_SHELLCHECK_USE_UNSUPPORTED_VERSION", "fromfile": false, - "help": "Verify that all config file values correspond to known options.", + "help": "\nWhat action to take in case the requested version of Shellcheck is not supported.\n\nSupported Shellcheck versions: unspecified\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--verify-config", "--no-verify-config"], + "scoped_cmd_line_args": ["--shellcheck-use-unsupported-version"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--verify-config", "--no-verify-config"], + "typ": "UnsupportedVersionUsage", + "unscoped_cmd_line_args": ["--use-unsupported-version"], "value_history": { "ranked_values": [ { @@ -24301,29 +24633,29 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": "error" } ] } }, - "PANTS_VERSION": { + "PANTS_SHELLCHECK_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pants-version=", - "config_key": "pants_version", - "default": "", + "comma_separated_display_args": "--shellcheck-version=", + "config_key": "version", + "default": "v0.8.0", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pants-version="], - "env_var": "PANTS_VERSION", + "display_args": ["--shellcheck-version="], + "env_var": "PANTS_SHELLCHECK_VERSION", "fromfile": false, - "help": "Use this Pants version. Note that Pants only uses this to verify that you are using the requested version, as Pants cannot dynamically change the version it is using once the program is already running.\n\nIf you use the `scie-pants-linux-x86_64` script from https://www.pantsbuild.org/v2.18/docs/installation, however, changing the value in your `pants.toml` will cause the new version to be installed and run automatically.\n\nRun `scie-pants-linux-x86_64 --version` to check what is being used.", + "help": "Use this version of Shellcheck.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pants-version"], + "scoped_cmd_line_args": ["--shellcheck-version"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--pants-version"], + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { @@ -24334,34 +24666,35 @@ { "details": null, "rank": "HARDCODED", - "value": "2.18.0rc5" - }, - { - "details": "from env var PANTS_VERSION", - "rank": "ENVIRONMENT", - "value": "2.18.0rc5" + "value": "v0.8.0" } ] } }, - "PANTS_WATCH_FILESYSTEM": { + "PANTS_SHELL_SETUP_DEPENDENCY_INFERENCE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]watch-filesystem", - "config_key": "watch_filesystem", + "comma_separated_display_args": "--[no-]shell-setup-dependency-inference", + "config_key": "dependency_inference", "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]watch-filesystem"], - "env_var": "PANTS_WATCH_FILESYSTEM", + "display_args": ["--[no-]shell-setup-dependency-inference"], + "env_var": "PANTS_SHELL_SETUP_DEPENDENCY_INFERENCE", "fromfile": false, - "help": "Set to False if Pants should not watch the filesystem for changes. `pantsd` or `loop` may not be enabled.", + "help": "Infer Shell dependencies on other Shell files by analyzing `source` statements.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--watch-filesystem", "--no-watch-filesystem"], + "scoped_cmd_line_args": [ + "--shell-setup-dependency-inference", + "--no-shell-setup-dependency-inference" + ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--watch-filesystem", "--no-watch-filesystem"], + "unscoped_cmd_line_args": [ + "--dependency-inference", + "--no-dependency-inference" + ], "value_history": { "ranked_values": [ { @@ -24377,60 +24710,62 @@ ] } }, - "PANTS_WORKDIR": { + "PANTS_SHELL_SETUP_EXECUTABLE_SEARCH_PATHS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pants-workdir=", - "config_key": "pants_workdir", - "default": "/tmp/tmp.MpwSc5OGVo/.pants.d", + "comma_separated_display_args": "--shell-setup-executable-search-paths=\"[, , ...]\"", + "config_key": "executable_search_paths", + "default": [""], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pants-workdir="], - "env_var": "PANTS_WORKDIR", + "display_args": [ + "--shell-setup-executable-search-paths=\"[, , ...]\"" + ], + "env_var": "PANTS_SHELL_SETUP_EXECUTABLE_SEARCH_PATHS", "fromfile": false, - "help": "Write intermediate logs and output files to this dir.", + "help": "The PATH value that will be used to find shells and to run certain processes like the shunit2 test runner. The special string `\"\"` will expand to the contents of the PATH env var.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pants-workdir"], - "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--pants-workdir"], + "scoped_cmd_line_args": ["--shell-setup-executable-search-paths"], + "target_field_name": "shell_setup_executable_search_paths", + "typ": "list", + "unscoped_cmd_line_args": ["--executable-search-paths"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "/tmp/tmp.MpwSc5OGVo/.pants.d" + "value": [""] } ] } }, - "PANTS_WORKUNIT_LOGGER_ENABLED": { + "PANTS_SHELL_SETUP_TAILOR": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]workunit-logger-enabled", - "config_key": "enabled", - "default": false, + "comma_separated_display_args": "--[no-]shell-setup-tailor", + "config_key": "tailor", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]workunit-logger-enabled"], - "env_var": "PANTS_WORKUNIT_LOGGER_ENABLED", + "display_args": ["--[no-]shell-setup-tailor"], + "env_var": "PANTS_SHELL_SETUP_TAILOR", "fromfile": false, - "help": "Whether to enable workunit logging.", + "help": "If true, add `shell_sources` and `shunit2_tests` targets with the `tailor` goal.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--workunit-logger-enabled", - "--no-workunit-logger-enabled" + "--shell-setup-tailor", + "--no-shell-setup-tailor" ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--enabled", "--no-enabled"], + "unscoped_cmd_line_args": ["--tailor", "--no-tailor"], "value_history": { "ranked_values": [ { @@ -24441,29 +24776,29 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": true } ] } }, - "PANTS_WORKUNIT_LOGGER_LOGDIR": { + "PANTS_SHELL_TEST_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--workunit-logger-logdir=", - "config_key": "logdir", - "default": ".pants.d", + "comma_separated_display_args": "--[no-]shell-test-skip", + "config_key": "skip", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--workunit-logger-logdir="], - "env_var": "PANTS_WORKUNIT_LOGGER_LOGDIR", + "display_args": ["--[no-]shell-test-skip"], + "env_var": "PANTS_SHELL_TEST_SKIP", "fromfile": false, - "help": "Where to write the log to.", + "help": "If true, don't use Test with shell scripts when running `pants test`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--workunit-logger-logdir"], + "scoped_cmd_line_args": ["--shell-test-skip", "--no-shell-test-skip"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--logdir"], + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -24474,26 +24809,26 @@ { "details": null, "rank": "HARDCODED", - "value": ".pants.d" + "value": false } ] } }, - "PANTS_YAMLLINT_ARGS": { + "PANTS_SHFMT_ARGS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--yamllint-args=\"[, , ...]\"", + "comma_separated_display_args": "--shfmt-args=\"[, , ...]\"", "config_key": "args", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--yamllint-args=\"[, , ...]\""], - "env_var": "PANTS_YAMLLINT_ARGS", + "display_args": ["--shfmt-args=\"[, , ...]\""], + "env_var": "PANTS_SHFMT_ARGS", "fromfile": false, - "help": "Arguments to pass directly to Yamllint, e.g. `--yamllint-args='-d relaxed'`.", + "help": "Arguments to pass directly to shfmt, e.g. `--shfmt-args='-i 2'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--yamllint-args"], + "scoped_cmd_line_args": ["--shfmt-args"], "target_field_name": null, "typ": "list", "unscoped_cmd_line_args": ["--args"], @@ -24512,24 +24847,27 @@ ] } }, - "PANTS_YAMLLINT_CONFIG_FILE_NAME": { + "PANTS_SHFMT_CONFIG_DISCOVERY": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--yamllint-config-file-name=", - "config_key": "config_file_name", - "default": ".yamllint", + "comma_separated_display_args": "--[no-]shfmt-config-discovery", + "config_key": "config_discovery", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--yamllint-config-file-name="], - "env_var": "PANTS_YAMLLINT_CONFIG_FILE_NAME", + "display_args": ["--[no-]shfmt-config-discovery"], + "env_var": "PANTS_SHFMT_CONFIG_DISCOVERY", "fromfile": false, - "help": "Name of a config file understood by yamllint (https://yamllint.readthedocs.io/en/stable/configuration.html). The plugin will search the ancestors of each directory in which YAML files are found for a config file of this name.", + "help": "If true, Pants will include all relevant `.editorconfig` files during runs. See https://editorconfig.org.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--yamllint-config-file-name"], + "scoped_cmd_line_args": [ + "--shfmt-config-discovery", + "--no-shfmt-config-discovery" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--config-file-name"], + "typ": "bool", + "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], "value_history": { "ranked_values": [ { @@ -24540,219 +24878,297 @@ { "details": null, "rank": "HARDCODED", - "value": ".yamllint" + "value": true } ] } }, - "PANTS_YAMLLINT_CONSOLE_SCRIPT": { + "PANTS_SHFMT_KNOWN_VERSIONS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--yamllint-console-script=", - "config_key": "console_script", - "default": "yamllint", + "comma_separated_display_args": "--shfmt-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", + "default": [ + "v3.2.4|macos_arm64 |e70fc42e69debe3e400347d4f918630cdf4bf2537277d672bbc43490387508ec|2998546", + "v3.2.4|macos_x86_64|43a0461a1b54070ddc04fbbf1b78f7861ee39a65a61f5466d15a39c4aba4f917|2980208", + "v3.2.4|linux_arm64 |6474d9cc08a1c9fe2ef4be7a004951998e3067d46cf55a011ddd5ff7bfab3de6|2752512", + "v3.2.4|linux_x86_64|3f5a47f8fec27fae3e06d611559a2063f5d27e4b9501171dde9959b8c60a3538|2797568", + "v3.6.0|macos_arm64 |633f242246ee0a866c5f5df25cbf61b6af0d5e143555aca32950059cf13d91e0|3065202", + "v3.6.0|macos_x86_64|b8c9c025b498e2816b62f0b717f6032e9ab49e725a45b8205f52f66318f17185|3047552", + "v3.6.0|linux_arm64 |fb1cf0af3dbe9aac7d98e38e3c7426765208ecfe23cb2da51037bb234776fd70|2818048", + "v3.6.0|linux_x86_64|5741a02a641de7e56b8da170e71a97e58050d66a3cf485fb268d6a5a8bb74afb|2850816" + ], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--yamllint-console-script="], - "env_var": "PANTS_YAMLLINT_CONSOLE_SCRIPT", + "display_args": ["--shfmt-known-versions=\"['', '', ...]\""], + "env_var": "PANTS_SHFMT_KNOWN_VERSIONS", "fromfile": false, - "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--yamllint-console-script"], + "scoped_cmd_line_args": ["--shfmt-known-versions"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--console-script"], + "typ": "list", + "unscoped_cmd_line_args": ["--known-versions"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "yamllint" + "value": [ + "v3.2.4|macos_arm64 |e70fc42e69debe3e400347d4f918630cdf4bf2537277d672bbc43490387508ec|2998546", + "v3.2.4|macos_x86_64|43a0461a1b54070ddc04fbbf1b78f7861ee39a65a61f5466d15a39c4aba4f917|2980208", + "v3.2.4|linux_arm64 |6474d9cc08a1c9fe2ef4be7a004951998e3067d46cf55a011ddd5ff7bfab3de6|2752512", + "v3.2.4|linux_x86_64|3f5a47f8fec27fae3e06d611559a2063f5d27e4b9501171dde9959b8c60a3538|2797568", + "v3.6.0|macos_arm64 |633f242246ee0a866c5f5df25cbf61b6af0d5e143555aca32950059cf13d91e0|3065202", + "v3.6.0|macos_x86_64|b8c9c025b498e2816b62f0b717f6032e9ab49e725a45b8205f52f66318f17185|3047552", + "v3.6.0|linux_arm64 |fb1cf0af3dbe9aac7d98e38e3c7426765208ecfe23cb2da51037bb234776fd70|2818048", + "v3.6.0|linux_x86_64|5741a02a641de7e56b8da170e71a97e58050d66a3cf485fb268d6a5a8bb74afb|2850816" + ] } ] } }, - "PANTS_YAMLLINT_ENTRY_POINT": { + "PANTS_SHFMT_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--yamllint-entry-point=", - "config_key": "entry_point", - "default": null, + "comma_separated_display_args": "--[no-]shfmt-skip", + "config_key": "skip", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--yamllint-entry-point="], - "env_var": "PANTS_YAMLLINT_ENTRY_POINT", + "display_args": ["--[no-]shfmt-skip"], + "env_var": "PANTS_SHFMT_SKIP", "fromfile": false, - "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", + "help": "If true, don't use shfmt when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--yamllint-entry-point"], + "scoped_cmd_line_args": ["--shfmt-skip", "--no-shfmt-skip"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--entry-point"], + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false } ] } }, - "PANTS_YAMLLINT_EXCLUDE": { + "PANTS_SHFMT_URL_PLATFORM_MAPPING": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--yamllint-exclude=\"['', '', ...]\"", - "config_key": "exclude", - "default": [], + "comma_separated_display_args": "--shfmt-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "url_platform_mapping", + "default": { + "linux_arm64": "linux_arm64", + "linux_x86_64": "linux_amd64", + "macos_arm64": "darwin_arm64", + "macos_x86_64": "darwin_amd64" + }, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--yamllint-exclude=\"['', '', ...]\""], - "env_var": "PANTS_YAMLLINT_EXCLUDE", + "display_args": [ + "--shfmt-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_SHFMT_URL_PLATFORM_MAPPING", "fromfile": false, - "help": "Glob for which YAML files to exclude from linting.", + "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--yamllint-exclude"], + "scoped_cmd_line_args": ["--shfmt-url-platform-mapping"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--exclude"], + "typ": "dict", + "unscoped_cmd_line_args": ["--url-platform-mapping"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": [] + "value": {} }, { "details": "", "rank": "HARDCODED", - "value": [] + "value": { + "linux_arm64": "linux_arm64", + "linux_x86_64": "linux_amd64", + "macos_arm64": "darwin_arm64", + "macos_x86_64": "darwin_amd64" + } } ] } }, - "PANTS_YAMLLINT_INCLUDE": { + "PANTS_SHFMT_URL_TEMPLATE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--yamllint-include=\"['', '', ...]\"", - "config_key": "include", - "default": ["**/*.yml", "**/*.yaml"], + "comma_separated_display_args": "--shfmt-url-template=", + "config_key": "url_template", + "default": "https://github.com/mvdan/sh/releases/download/{version}/shfmt_{version}_{platform}", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--yamllint-include=\"['', '', ...]\""], - "env_var": "PANTS_YAMLLINT_INCLUDE", + "display_args": ["--shfmt-url-template="], + "env_var": "PANTS_SHFMT_URL_TEMPLATE", "fromfile": false, - "help": "Glob for which YAML files to lint.", + "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--yamllint-include"], + "scoped_cmd_line_args": ["--shfmt-url-template"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--include"], + "typ": "str", + "unscoped_cmd_line_args": ["--url-template"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": ["**/*.yml", "**/*.yaml"] + "value": "https://github.com/mvdan/sh/releases/download/{version}/shfmt_{version}_{platform}" } ] } }, - "PANTS_YAMLLINT_INSTALL_FROM_RESOLVE": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--yamllint-install-from-resolve=", - "config_key": "install_from_resolve", - "default": null, + "PANTS_SHFMT_USE_UNSUPPORTED_VERSION": { + "choices": ["error", "warning"], + "comma_separated_choices": "error, warning", + "comma_separated_display_args": "--shfmt-use-unsupported-version=", + "config_key": "use_unsupported_version", + "default": "error", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--yamllint-install-from-resolve="], - "env_var": "PANTS_YAMLLINT_INSTALL_FROM_RESOLVE", + "display_args": [ + "--shfmt-use-unsupported-version=" + ], + "env_var": "PANTS_SHFMT_USE_UNSUPPORTED_VERSION", "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `yamllint` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "help": "\nWhat action to take in case the requested version of shfmt is not supported.\n\nSupported shfmt versions: unspecified\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--yamllint-install-from-resolve"], + "scoped_cmd_line_args": ["--shfmt-use-unsupported-version"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--install-from-resolve"], - "value_history": { + "typ": "UnsupportedVersionUsage", + "unscoped_cmd_line_args": ["--use-unsupported-version"], + "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "error" } ] } }, - "PANTS_YAMLLINT_INTERPRETER_CONSTRAINTS": { + "PANTS_SHFMT_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--yamllint-interpreter-constraints=\"['', '', ...]\"", - "config_key": "interpreter_constraints", - "default": ["CPython>=3.7,<4"], + "comma_separated_display_args": "--shfmt-version=", + "config_key": "version", + "default": "v3.6.0", "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--yamllint-interpreter-constraints=\"['', '', ...]\"" - ], - "env_var": "PANTS_YAMLLINT_INTERPRETER_CONSTRAINTS", + "display_args": ["--shfmt-version="], + "env_var": "PANTS_SHFMT_VERSION", "fromfile": false, - "help": "Python interpreter constraints for this tool.", + "help": "Use this version of shfmt.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--yamllint-interpreter-constraints"], + "scoped_cmd_line_args": ["--shfmt-version"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--interpreter-constraints"], + "typ": "str", + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": ["CPython>=3.7,<4"] + "value": "v3.6.0" } ] } }, - "PANTS_YAMLLINT_REQUIREMENTS": { + "PANTS_SHOW_LOG_TARGET": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--yamllint-requirements=\"['', '', ...]\"", - "config_key": "requirements", - "default": [], + "comma_separated_display_args": "--[no-]show-log-target", + "config_key": "show_log_target", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--yamllint-requirements=\"['', '', ...]\""], - "env_var": "PANTS_YAMLLINT_REQUIREMENTS", + "display_args": ["--[no-]show-log-target"], + "env_var": "PANTS_SHOW_LOG_TARGET", "fromfile": false, - "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "help": "Display the target where a log message originates in that log message's output. This can be helpful when paired with `--log-levels-by-target`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--yamllint-requirements"], + "scoped_cmd_line_args": ["--show-log-target", "--no-show-log-target"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--show-log-target", "--no-show-log-target"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + "PANTS_SHUNIT2_KNOWN_VERSIONS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--shunit2-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", + "default": [ + "b9102bb763cc603b3115ed30a5648bf950548097|macos_arm64|1f11477b7948150d1ca50cdd41d89be4ed2acd137e26d2e0fe23966d0e272cc5|40987", + "b9102bb763cc603b3115ed30a5648bf950548097|macos_x86_64|1f11477b7948150d1ca50cdd41d89be4ed2acd137e26d2e0fe23966d0e272cc5|40987", + "b9102bb763cc603b3115ed30a5648bf950548097|linux_x86_64|1f11477b7948150d1ca50cdd41d89be4ed2acd137e26d2e0fe23966d0e272cc5|40987", + "b9102bb763cc603b3115ed30a5648bf950548097|linux_arm64|1f11477b7948150d1ca50cdd41d89be4ed2acd137e26d2e0fe23966d0e272cc5|40987" + ], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--shunit2-known-versions=\"['', '', ...]\""], + "env_var": "PANTS_SHUNIT2_KNOWN_VERSIONS", + "fromfile": false, + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--shunit2-known-versions"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--requirements"], + "unscoped_cmd_line_args": ["--known-versions"], "value_history": { "ranked_values": [ { @@ -24763,26 +25179,31 @@ { "details": "", "rank": "HARDCODED", - "value": [] + "value": [ + "b9102bb763cc603b3115ed30a5648bf950548097|macos_arm64|1f11477b7948150d1ca50cdd41d89be4ed2acd137e26d2e0fe23966d0e272cc5|40987", + "b9102bb763cc603b3115ed30a5648bf950548097|macos_x86_64|1f11477b7948150d1ca50cdd41d89be4ed2acd137e26d2e0fe23966d0e272cc5|40987", + "b9102bb763cc603b3115ed30a5648bf950548097|linux_x86_64|1f11477b7948150d1ca50cdd41d89be4ed2acd137e26d2e0fe23966d0e272cc5|40987", + "b9102bb763cc603b3115ed30a5648bf950548097|linux_arm64|1f11477b7948150d1ca50cdd41d89be4ed2acd137e26d2e0fe23966d0e272cc5|40987" + ] } ] } }, - "PANTS_YAMLLINT_SKIP": { + "PANTS_SHUNIT2_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]yamllint-skip", + "comma_separated_display_args": "--[no-]shunit2-skip", "config_key": "skip", "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]yamllint-skip"], - "env_var": "PANTS_YAMLLINT_SKIP", + "display_args": ["--[no-]shunit2-skip"], + "env_var": "PANTS_SHUNIT2_SKIP", "fromfile": false, - "help": "If true, don't use Yamllint when running `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use shunit2 when running `pants test`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--yamllint-skip", "--no-yamllint-skip"], + "scoped_cmd_line_args": ["--shunit2-skip", "--no-shunit2-skip"], "target_field_name": null, "typ": "bool", "unscoped_cmd_line_args": ["--skip", "--no-skip"], @@ -24801,88 +25222,89 @@ ] } }, - "PANTS_YAPF_ARGS": { + "PANTS_SHUNIT2_URL_PLATFORM_MAPPING": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--yapf-args=\"[, , ...]\"", - "config_key": "args", - "default": [], + "comma_separated_display_args": "--shunit2-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "url_platform_mapping", + "default": {}, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--yapf-args=\"[, , ...]\""], - "env_var": "PANTS_YAPF_ARGS", + "display_args": [ + "--shunit2-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_SHUNIT2_URL_PLATFORM_MAPPING", "fromfile": false, - "help": "Arguments to pass directly to yapf, e.g. `--yapf-args='--no-local-style'`.\n\nCertain arguments, specifically `--recursive`, `--in-place`, and `--parallel`, will be ignored because Pants takes care of finding all the relevant files and running the formatting in parallel.", + "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--yapf-args"], + "scoped_cmd_line_args": ["--shunit2-url-platform-mapping"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "typ": "dict", + "unscoped_cmd_line_args": ["--url-platform-mapping"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": [] - }, - { - "details": "", - "rank": "HARDCODED", - "value": [] + "value": {} } ] } }, - "PANTS_YAPF_CONFIG": { + "PANTS_SHUNIT2_URL_TEMPLATE": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--yapf-config=", - "config_key": "config", - "default": null, + "comma_separated_display_args": "--shunit2-url-template=", + "config_key": "url_template", + "default": "https://raw.githubusercontent.com/kward/shunit2/{version}/shunit2", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--yapf-config="], - "env_var": "PANTS_YAPF_CONFIG", + "display_args": ["--shunit2-url-template="], + "env_var": "PANTS_SHUNIT2_URL_TEMPLATE", "fromfile": false, - "help": "Path to style file understood by yapf (https://github.com/google/yapf#formatting-style/).\n\nSetting this option will disable `[yapf].config_discovery`. Use this option if the config is located in a non-standard location.", + "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--yapf-config"], + "scoped_cmd_line_args": ["--shunit2-url-template"], "target_field_name": null, - "typ": "file_option", - "unscoped_cmd_line_args": ["--config"], + "typ": "str", + "unscoped_cmd_line_args": ["--url-template"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "https://raw.githubusercontent.com/kward/shunit2/{version}/shunit2" } ] } }, - "PANTS_YAPF_CONFIG_DISCOVERY": { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]yapf-config-discovery", - "config_key": "config_discovery", - "default": true, + "PANTS_SHUNIT2_USE_UNSUPPORTED_VERSION": { + "choices": ["error", "warning"], + "comma_separated_choices": "error, warning", + "comma_separated_display_args": "--shunit2-use-unsupported-version=", + "config_key": "use_unsupported_version", + "default": "error", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]yapf-config-discovery"], - "env_var": "PANTS_YAPF_CONFIG_DISCOVERY", + "display_args": [ + "--shunit2-use-unsupported-version=" + ], + "env_var": "PANTS_SHUNIT2_USE_UNSUPPORTED_VERSION", "fromfile": false, - "help": "If true, Pants will include any relevant config files during runs (`.style.yapf`, `pyproject.toml`, and `setup.cfg`).\n\nUse `[yapf].config` instead if your config is in a non-standard location.", + "help": "\nWhat action to take in case the requested version of shunit2 is not supported.\n\nSupported shunit2 versions: unspecified\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--yapf-config-discovery", - "--no-yapf-config-discovery" - ], + "scoped_cmd_line_args": ["--shunit2-use-unsupported-version"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], + "typ": "UnsupportedVersionUsage", + "unscoped_cmd_line_args": ["--use-unsupported-version"], "value_history": { "ranked_values": [ { @@ -24893,29 +25315,29 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": "error" } ] } }, - "PANTS_YAPF_CONSOLE_SCRIPT": { + "PANTS_SHUNIT2_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--yapf-console-script=", - "config_key": "console_script", - "default": "yapf", + "comma_separated_display_args": "--shunit2-version=", + "config_key": "version", + "default": "b9102bb763cc603b3115ed30a5648bf950548097", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--yapf-console-script="], - "env_var": "PANTS_YAPF_CONSOLE_SCRIPT", + "display_args": ["--shunit2-version="], + "env_var": "PANTS_SHUNIT2_VERSION", "fromfile": false, - "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", + "help": "Use this version of shunit2.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--yapf-console-script"], + "scoped_cmd_line_args": ["--shunit2-version"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--console-script"], + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { @@ -24926,54 +25348,149 @@ { "details": null, "rank": "HARDCODED", - "value": "yapf" + "value": "b9102bb763cc603b3115ed30a5648bf950548097" } ] } }, - "PANTS_YAPF_ENTRY_POINT": { + "PANTS_SOURCE_MARKER_FILENAMES": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--yapf-entry-point=", - "config_key": "entry_point", - "default": null, + "comma_separated_display_args": "--source-marker-filenames=\"[filename, filename, ...]\"", + "config_key": "marker_filenames", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--yapf-entry-point="], - "env_var": "PANTS_YAPF_ENTRY_POINT", + "display_args": [ + "--source-marker-filenames=\"[filename, filename, ...]\"" + ], + "env_var": "PANTS_SOURCE_MARKER_FILENAMES", "fromfile": false, - "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", + "help": "The presence of a file of this name in a directory indicates that the directory is a source root. The content of the file doesn't matter, and may be empty. Useful when you can't or don't wish to centrally enumerate source roots via `root_patterns`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--yapf-entry-point"], + "scoped_cmd_line_args": ["--source-marker-filenames"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--entry-point"], + "typ": "list", + "unscoped_cmd_line_args": ["--marker-filenames"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] } ] } }, - "PANTS_YAPF_INSTALL_FROM_RESOLVE": { + "PANTS_SOURCE_ROOT_PATTERNS": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--yapf-install-from-resolve=", + "comma_separated_display_args": "--source-root-patterns=\"[[\"pattern1\", \"pattern2\", ...], [\"pattern1\", \"pattern2\", ...], ...]\"", + "config_key": "root_patterns", + "default": [ + "/", + "src", + "src/python", + "src/py", + "src/thrift", + "src/protobuf", + "src/protos", + "src/scala", + "src/java" + ], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--source-root-patterns=\"[[\"pattern1\", \"pattern2\", ...], [\"pattern1\", \"pattern2\", ...], ...]\"" + ], + "env_var": "PANTS_SOURCE_ROOT_PATTERNS", + "fromfile": false, + "help": "A list of source root suffixes.\n\nA directory with this suffix will be considered a potential source root. E.g., `src/python` will match `/src/python`, `/project1/src/python` etc.\n\nPrepend a `/` to anchor the match at the buildroot. E.g., `/src/python` will match `/src/python` but not `/project1/src/python`.\n\nA `*` wildcard will match a single path segment, E.g., `src/*` will match `/src/python` and `/src/rust`.\n\nUse `/` to signify that the buildroot itself is a source root.\n\nSee https://www.pantsbuild.org/v2.18/docs/source-roots.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--source-root-patterns"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--root-patterns"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [ + "/", + "src", + "src/python", + "src/py", + "src/thrift", + "src/protobuf", + "src/protos", + "src/scala", + "src/java" + ] + } + ] + } + }, + "PANTS_SPECTRAL_ARGS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--spectral-args=\"[, , ...]\"", + "config_key": "args", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--spectral-args=\"[, , ...]\""], + "env_var": "PANTS_SPECTRAL_ARGS", + "fromfile": false, + "help": "Arguments to pass directly to Spectral, e.g. `--spectral-args='--fail-severity=warn'`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--spectral-args"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--args"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + }, + "PANTS_SPECTRAL_INSTALL_FROM_RESOLVE": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--spectral-install-from-resolve=", "config_key": "install_from_resolve", "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--yapf-install-from-resolve="], - "env_var": "PANTS_YAPF_INSTALL_FROM_RESOLVE", + "display_args": ["--spectral-install-from-resolve="], + "env_var": "PANTS_SPECTRAL_INSTALL_FROM_RESOLVE", "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `yapf` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "help": "If specified, install the tool using the lockfile for this named resolve, instead of the version configured in this subsystem.\n\nIf unspecified, the tool will use the default configured package manager [nodejs].package_manager`, and install the tool without a lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--yapf-install-from-resolve"], + "scoped_cmd_line_args": ["--spectral-install-from-resolve"], "target_field_name": null, "typ": "str", "unscoped_cmd_line_args": ["--install-from-resolve"], @@ -24987,59 +25504,90 @@ ] } }, - "PANTS_YAPF_INTERPRETER_CONSTRAINTS": { + "PANTS_SPECTRAL_SKIP": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--yapf-interpreter-constraints=\"['', '', ...]\"", - "config_key": "interpreter_constraints", - "default": ["CPython>=3.7,<4"], + "comma_separated_display_args": "--[no-]spectral-skip", + "config_key": "skip", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--yapf-interpreter-constraints=\"['', '', ...]\"" - ], - "env_var": "PANTS_YAPF_INTERPRETER_CONSTRAINTS", + "display_args": ["--[no-]spectral-skip"], + "env_var": "PANTS_SPECTRAL_SKIP", "fromfile": false, - "help": "Python interpreter constraints for this tool.", + "help": "If true, don't use Spectral when running `pants lint`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--yapf-interpreter-constraints"], + "scoped_cmd_line_args": ["--spectral-skip", "--no-spectral-skip"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--interpreter-constraints"], + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": ["CPython>=3.7,<4"] + "value": false } ] } }, - "PANTS_YAPF_REQUIREMENTS": { + "PANTS_SPECTRAL_VERSION": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--yapf-requirements=\"['', '', ...]\"", - "config_key": "requirements", + "comma_separated_display_args": "--spectral-version=", + "config_key": "version", + "default": "@stoplight/spectral-cli@6.5.1", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--spectral-version="], + "env_var": "PANTS_SPECTRAL_VERSION", + "fromfile": false, + "help": "Version string for the tool in the form package@version (e.g. prettier@2.6.2)", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--spectral-version"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--version"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "@stoplight/spectral-cli@6.5.1" + } + ] + } + }, + "PANTS_SPEC_FILES": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--spec-files=\"['', '', ...]\"", + "config_key": "spec_files", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--yapf-requirements=\"['', '', ...]\""], - "env_var": "PANTS_YAPF_REQUIREMENTS", + "display_args": ["--spec-files=\"['', '', ...]\""], + "env_var": "PANTS_SPEC_FILES", "fromfile": false, - "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "help": "Read additional specs (target addresses, files, and/or globs), one per line, from these files.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--yapf-requirements"], + "scoped_cmd_line_args": ["--spec-files"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--requirements"], + "unscoped_cmd_line_args": ["--spec-files"], "value_history": { "ranked_values": [ { @@ -25055,24 +25603,24 @@ ] } }, - "PANTS_YAPF_SKIP": { + "PANTS_STATS_LOG": { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]yapf-skip", - "config_key": "skip", + "comma_separated_display_args": "--[no-]stats-log", + "config_key": "log", "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]yapf-skip"], - "env_var": "PANTS_YAPF_SKIP", + "display_args": ["--[no-]stats-log"], + "env_var": "PANTS_STATS_LOG", "fromfile": false, - "help": "If true, don't use yapf when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "At the end of the Pants run, log all counter metrics and summaries of observation histograms, e.g. the number of cache hits and the time saved by caching.\n\nFor histogram summaries to work, you must add `hdrhistogram` to `[GLOBAL].plugins`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--yapf-skip", "--no-yapf-skip"], + "scoped_cmd_line_args": ["--stats-log", "--no-stats-log"], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "unscoped_cmd_line_args": ["--log", "--no-log"], "value_history": { "ranked_values": [ { @@ -25087,45 +25635,3283 @@ } ] } - } - }, - "name_to_api_type_info": { - "abc.EnvironmentAware": { - "consumed_by_rules": [ - "pants.core.util_rules.subprocess_environment.get_subprocess_environment" + }, + "PANTS_STATS_MEMORY_SUMMARY": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]stats-memory-summary", + "config_key": "memory_summary", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]stats-memory-summary"], + "env_var": "PANTS_STATS_MEMORY_SUMMARY", + "fromfile": false, + "help": "At the end of the Pants run, report a summary of memory usage.\n\nKeys are the total size in bytes, the count, and the name. Note that the total size is for all instances added together, so you can use total_size // count to get the average size.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--stats-memory-summary", + "--no-stats-memory-summary" ], - "dependencies": ["pants.engine.env_vars"], - "dependents": ["pants.core"], - "documentation": null, - "is_union": false, - "module": "abc", - "name": "EnvironmentAware", - "provider": "pants.core", - "returned_by_rules": ["construct_env_aware_scope_subprocess_environment"], - "union_members": [], - "union_type": null, - "used_in_rules": [] + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--memory-summary", "--no-memory-summary"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } }, - "builtins.AddPrefix": { - "consumed_by_rules": [], - "dependencies": [], - "dependents": [], - "documentation": "", - "is_union": false, - "module": "builtins", - "name": "AddPrefix", - "provider": "builtins", - "returned_by_rules": [], - "union_members": [], - "union_type": null, - "used_in_rules": [ - "pants.backend.codegen.protobuf.go.rules.generate_go_from_protobuf", - "pants.backend.codegen.protobuf.java.rules.generate_java_from_protobuf", - "pants.backend.codegen.protobuf.python.rules.generate_python_from_protobuf", - "pants.backend.codegen.protobuf.scala.rules.generate_scala_from_protobuf", - "pants.backend.codegen.protobuf.scala.rules.materialize_jvm_plugins", - "pants.backend.codegen.thrift.apache.python.rules.generate_python_from_thrift", - "pants.backend.go.goals.generate.run_go_package_generators", + "PANTS_STATS_RECORD_OPTION_SCOPES": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--stats-record-option-scopes=\"['', '', ...]\"", + "config_key": "stats_record_option_scopes", + "default": ["*"], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--stats-record-option-scopes=\"['', '', ...]\"" + ], + "env_var": "PANTS_STATS_RECORD_OPTION_SCOPES", + "fromfile": false, + "help": "Option scopes to record in stats on run completion. Options may be selected by joining the scope and the option with a ^ character, i.e. to get option `pantsd` in the GLOBAL scope, you'd pass `GLOBAL^pantsd`. Add a '*' to the list to capture all known scopes.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--stats-record-option-scopes"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--stats-record-option-scopes"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": ["*"] + } + ] + } + }, + "PANTS_STREAMING_WORKUNITS_COMPLETE_ASYNC": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]streaming-workunits-complete-async", + "config_key": "streaming_workunits_complete_async", + "default": true, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]streaming-workunits-complete-async"], + "env_var": "PANTS_STREAMING_WORKUNITS_COMPLETE_ASYNC", + "fromfile": false, + "help": "True if stats recording should be allowed to complete asynchronously when `pantsd` is enabled. When `pantsd` is disabled, stats recording is always synchronous. To reduce data loss, this flag defaults to false inside of containers, such as when run with Docker.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--streaming-workunits-complete-async", + "--no-streaming-workunits-complete-async" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": [ + "--streaming-workunits-complete-async", + "--no-streaming-workunits-complete-async" + ], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true + } + ] + } + }, + "PANTS_STREAMING_WORKUNITS_LEVEL": { + "choices": ["trace", "debug", "info", "warn", "error"], + "comma_separated_choices": "trace, debug, info, warn, error", + "comma_separated_display_args": "--streaming-workunits-level=", + "config_key": "streaming_workunits_level", + "default": "debug", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--streaming-workunits-level="], + "env_var": "PANTS_STREAMING_WORKUNITS_LEVEL", + "fromfile": false, + "help": "The level of workunits that will be reported to streaming workunit event receivers.\n\nWorkunits form a tree, and even when workunits are filtered out by this setting, the workunit tree structure will be preserved (by adjusting the parent pointers of the remaining workunits).", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--streaming-workunits-level"], + "target_field_name": null, + "typ": "LogLevel", + "unscoped_cmd_line_args": ["--streaming-workunits-level"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "debug" + } + ] + } + }, + "PANTS_STREAMING_WORKUNITS_REPORT_INTERVAL": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--streaming-workunits-report-interval=", + "config_key": "streaming_workunits_report_interval", + "default": 1.0, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--streaming-workunits-report-interval="], + "env_var": "PANTS_STREAMING_WORKUNITS_REPORT_INTERVAL", + "fromfile": false, + "help": "Interval in seconds between when streaming workunit event receivers will be polled.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--streaming-workunits-report-interval"], + "target_field_name": null, + "typ": "float", + "unscoped_cmd_line_args": ["--streaming-workunits-report-interval"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": 1.0 + } + ] + } + }, + "PANTS_SUBPROCESSDIR": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pants-subprocessdir=", + "config_key": "pants_subprocessdir", + "default": "/home/runner/work/pantsbuild.org/pantsbuild.org/.pids", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--pants-subprocessdir="], + "env_var": "PANTS_SUBPROCESSDIR", + "fromfile": false, + "help": "The directory to use for tracking subprocess metadata. This should live outside of the dir used by `pants_workdir` to allow for tracking subprocesses that outlive the workdir data.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--pants-subprocessdir"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--pants-subprocessdir"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "/home/runner/work/pantsbuild.org/pantsbuild.org/.pids" + } + ] + } + }, + "PANTS_SUBPROCESS_ENVIRONMENT_ENV_VARS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--subprocess-environment-env-vars=\"['', '', ...]\"", + "config_key": "env_vars", + "default": [ + "LANG", + "LC_CTYPE", + "LC_ALL", + "SSL_CERT_FILE", + "SSL_CERT_DIR" + ], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--subprocess-environment-env-vars=\"['', '', ...]\"" + ], + "env_var": "PANTS_SUBPROCESS_ENVIRONMENT_ENV_VARS", + "fromfile": false, + "help": "Environment variables to set for process invocations.\n\nEntries are either strings in the form `ENV_VAR=value` to set an explicit value; or just `ENV_VAR` to copy the value from Pants's own environment.\n\nSee https://www.pantsbuild.org/v2.18/docs/options#addremove-semantics for how to add and remove Pants's default for this option.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--subprocess-environment-env-vars"], + "target_field_name": "subprocess_environment_env_vars", + "typ": "list", + "unscoped_cmd_line_args": ["--env-vars"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [ + "LANG", + "LC_CTYPE", + "LC_ALL", + "SSL_CERT_FILE", + "SSL_CERT_DIR" + ] + } + ] + } + }, + "PANTS_SUBPROJECT_ROOTS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--subproject-roots=\"['', '', ...]\"", + "config_key": "subproject_roots", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--subproject-roots=\"['', '', ...]\""], + "env_var": "PANTS_SUBPROJECT_ROOTS", + "fromfile": false, + "help": "Paths that correspond with build roots for any subproject that this project depends on.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--subproject-roots"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--subproject-roots"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + }, + "PANTS_TAG": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--tag=\"[[+-]tag1,tag2,..., [+-]tag1,tag2,..., ...]\"", + "config_key": "tag", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--tag=\"[[+-]tag1,tag2,..., [+-]tag1,tag2,..., ...]\""], + "env_var": "PANTS_TAG", + "fromfile": false, + "help": "Include only targets with these tags (optional '+' prefix) or without these tags ('-' prefix). See https://www.pantsbuild.org/v2.18/docs/advanced-target-selection.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--tag"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--tag"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + }, + "PANTS_TAILOR_ALIAS_MAPPING": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--tailor-alias-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "alias_mapping", + "default": {}, + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--tailor-alias-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_TAILOR_ALIAS_MAPPING", + "fromfile": false, + "help": "A mapping from standard target type to custom type to use instead. The custom type can be a custom target type or a macro that offers compatible functionality to the one it replaces (see https://www.pantsbuild.org/v2.18/docs/macros).", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--tailor-alias-mapping"], + "target_field_name": null, + "typ": "dict", + "unscoped_cmd_line_args": ["--alias-mapping"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": {} + }, + { + "details": "", + "rank": "HARDCODED", + "value": {} + } + ] + } + }, + "PANTS_TAILOR_BUILD_FILE_HEADER": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--tailor-build-file-header=", + "config_key": "build_file_header", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--tailor-build-file-header="], + "env_var": "PANTS_TAILOR_BUILD_FILE_HEADER", + "fromfile": false, + "help": "A header, e.g., a copyright notice, to add to the content of created BUILD files.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--tailor-build-file-header"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--build-file-header"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + "PANTS_TAILOR_BUILD_FILE_INDENT": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--tailor-build-file-indent=", + "config_key": "build_file_indent", + "default": " ", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--tailor-build-file-indent="], + "env_var": "PANTS_TAILOR_BUILD_FILE_INDENT", + "fromfile": false, + "help": "The indent to use when auto-editing BUILD files.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--tailor-build-file-indent"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--build-file-indent"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": " " + } + ] + } + }, + "PANTS_TAILOR_BUILD_FILE_NAME": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--tailor-build-file-name=", + "config_key": "build_file_name", + "default": "BUILD", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--tailor-build-file-name="], + "env_var": "PANTS_TAILOR_BUILD_FILE_NAME", + "fromfile": false, + "help": "The name to use for generated BUILD files.\n\nThis must be compatible with `[GLOBAL].build_patterns`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--tailor-build-file-name"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--build-file-name"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "BUILD" + } + ] + } + }, + "PANTS_TAILOR_CHECK": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]tailor-check", + "config_key": "check", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]tailor-check"], + "env_var": "PANTS_TAILOR_CHECK", + "fromfile": false, + "help": "Do not write changes to disk, only write back what would change. Return code 0 means there would be no changes, and 1 means that there would be.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--tailor-check", "--no-tailor-check"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--check", "--no-check"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + "PANTS_TAILOR_IGNORE_ADDING_TARGETS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--tailor-ignore-adding-targets=\"['', '', ...]\"", + "config_key": "ignore_adding_targets", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--tailor-ignore-adding-targets=\"['', '', ...]\"" + ], + "env_var": "PANTS_TAILOR_IGNORE_ADDING_TARGETS", + "fromfile": false, + "help": "Do not add these target definitions.\n\nExpects a list of target addresses that would normally be added by `tailor`, e.g. `['project:tgt']`. To find these names, you can run `tailor --check`, then combine the BUILD file path with the target's name. For example, if `tailor` would add the target `bin` to `project/BUILD`, then the address would be `project:bin`. If the BUILD file is at the root of your repository, use `//` for the path, e.g. `//:bin`.\n\nDoes not work with macros.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--tailor-ignore-adding-targets"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--ignore-adding-targets"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + }, + "PANTS_TAILOR_IGNORE_PATHS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--tailor-ignore-paths=\"['', '', ...]\"", + "config_key": "ignore_paths", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--tailor-ignore-paths=\"['', '', ...]\""], + "env_var": "PANTS_TAILOR_IGNORE_PATHS", + "fromfile": false, + "help": "Do not edit or create BUILD files at these paths.\n\nCan use literal file names and/or globs, e.g. `['project/BUILD, 'ignore_me/**']`.\n\nThis augments the option `[GLOBAL].build_ignore`, which tells Pants to also not _read_ BUILD files at certain paths. In contrast, this option only tells Pants to not edit/create BUILD files at the specified paths.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--tailor-ignore-paths"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--ignore-paths"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + }, + "PANTS_TAPLO_ARGS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--taplo-args=\"[, , ...]\"", + "config_key": "args", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--taplo-args=\"[, , ...]\""], + "env_var": "PANTS_TAPLO_ARGS", + "fromfile": false, + "help": "Arguments to pass directly to Taplo, e.g. `--taplo-args='--option=align_entries=false'`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--taplo-args"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--args"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + }, + "PANTS_TAPLO_CONFIG_DISCOVERY": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]taplo-config-discovery", + "config_key": "config_discovery", + "default": true, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]taplo-config-discovery"], + "env_var": "PANTS_TAPLO_CONFIG_DISCOVERY", + "fromfile": false, + "help": "If true, Pants will include a `taplo.toml` or `.taplo.toml` file found in the build root during a run.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--taplo-config-discovery", + "--no-taplo-config-discovery" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true + } + ] + } + }, + "PANTS_TAPLO_GLOB_PATTERN": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--taplo-glob-pattern=\"['', '', ...]\"", + "config_key": "glob_pattern", + "default": ["**/*.toml", "!.taplo.toml", "!taplo.toml"], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--taplo-glob-pattern=\"['', '', ...]\""], + "env_var": "PANTS_TAPLO_GLOB_PATTERN", + "fromfile": false, + "help": "A list of glob patterns of files to include/exclude in formatting relative to the build root. Leading exclamation points exclude an item from formatting.\n\nExample:\n\n [\"**/*.toml\", \"**/pyproject.toml\", \"!pyproject.toml\"]\n\nThe default includes all files with a `.toml` extension recursively and excludes `.taplo.toml` or `taplo.toml` files in the build root.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--taplo-glob-pattern"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--glob-pattern"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": ["**/*.toml", "!.taplo.toml", "!taplo.toml"] + } + ] + } + }, + "PANTS_TAPLO_KNOWN_VERSIONS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--taplo-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", + "default": [ + "0.8.0|macos_arm64|79c1691c3c46be981fa0cec930ec9a6d6c4ffd27272d37d1885514ce59bd8ccf|3661689", + "0.8.0|macos_x86_64|a1917f1b9168cb4f7d579422dcdf9c733028d873963d8fa3a6f499e41719c502|3926263", + "0.8.0|linux_arm64|a6a94482f125c21090593f94cad23df099c4924f5b9620cda4a8653527c097a1|3995383", + "0.8.0|linux_x86_64|3703294fac37ca9a9f76308f9f98c3939ccb7588f8972acec68a48d7a10d8ee5|4123593" + ], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--taplo-known-versions=\"['', '', ...]\""], + "env_var": "PANTS_TAPLO_KNOWN_VERSIONS", + "fromfile": false, + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--taplo-known-versions"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--known-versions"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [ + "0.8.0|macos_arm64|79c1691c3c46be981fa0cec930ec9a6d6c4ffd27272d37d1885514ce59bd8ccf|3661689", + "0.8.0|macos_x86_64|a1917f1b9168cb4f7d579422dcdf9c733028d873963d8fa3a6f499e41719c502|3926263", + "0.8.0|linux_arm64|a6a94482f125c21090593f94cad23df099c4924f5b9620cda4a8653527c097a1|3995383", + "0.8.0|linux_x86_64|3703294fac37ca9a9f76308f9f98c3939ccb7588f8972acec68a48d7a10d8ee5|4123593" + ] + } + ] + } + }, + "PANTS_TAPLO_SKIP": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]taplo-skip", + "config_key": "skip", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]taplo-skip"], + "env_var": "PANTS_TAPLO_SKIP", + "fromfile": false, + "help": "If true, don't use Taplo when running `pants fmt` and `pants lint`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--taplo-skip", "--no-taplo-skip"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + "PANTS_TAPLO_URL_PLATFORM_MAPPING": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--taplo-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "url_platform_mapping", + "default": { + "linux_arm64": "linux-aarch64", + "linux_x86_64": "linux-x86_64", + "macos_arm64": "darwin-aarch64", + "macos_x86_64": "darwin-x86_64" + }, + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--taplo-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_TAPLO_URL_PLATFORM_MAPPING", + "fromfile": false, + "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--taplo-url-platform-mapping"], + "target_field_name": null, + "typ": "dict", + "unscoped_cmd_line_args": ["--url-platform-mapping"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": {} + }, + { + "details": "", + "rank": "HARDCODED", + "value": { + "linux_arm64": "linux-aarch64", + "linux_x86_64": "linux-x86_64", + "macos_arm64": "darwin-aarch64", + "macos_x86_64": "darwin-x86_64" + } + } + ] + } + }, + "PANTS_TAPLO_URL_TEMPLATE": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--taplo-url-template=", + "config_key": "url_template", + "default": "https://github.com/tamasfe/taplo/releases/download/{version}/taplo-{platform}.gz", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--taplo-url-template="], + "env_var": "PANTS_TAPLO_URL_TEMPLATE", + "fromfile": false, + "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--taplo-url-template"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--url-template"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "https://github.com/tamasfe/taplo/releases/download/{version}/taplo-{platform}.gz" + } + ] + } + }, + "PANTS_TAPLO_USE_UNSUPPORTED_VERSION": { + "choices": ["error", "warning"], + "comma_separated_choices": "error, warning", + "comma_separated_display_args": "--taplo-use-unsupported-version=", + "config_key": "use_unsupported_version", + "default": "error", + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--taplo-use-unsupported-version=" + ], + "env_var": "PANTS_TAPLO_USE_UNSUPPORTED_VERSION", + "fromfile": false, + "help": "\nWhat action to take in case the requested version of Taplo is not supported.\n\nSupported Taplo versions: unspecified\n", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--taplo-use-unsupported-version"], + "target_field_name": null, + "typ": "UnsupportedVersionUsage", + "unscoped_cmd_line_args": ["--use-unsupported-version"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "error" + } + ] + } + }, + "PANTS_TAPLO_VERSION": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--taplo-version=", + "config_key": "version", + "default": "0.8.0", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--taplo-version="], + "env_var": "PANTS_TAPLO_VERSION", + "fromfile": false, + "help": "Use this version of Taplo.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--taplo-version"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--version"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "0.8.0" + } + ] + } + }, + "PANTS_TERRAFORM_FMT_SKIP": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]terraform-fmt-skip", + "config_key": "skip", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]terraform-fmt-skip"], + "env_var": "PANTS_TERRAFORM_FMT_SKIP", + "fromfile": false, + "help": "If true, don't use `terraform fmt` when running `pants fmt` and `pants lint`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--terraform-fmt-skip", + "--no-terraform-fmt-skip" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + "PANTS_TERRAFORM_HCL2_PARSER_INSTALL_FROM_RESOLVE": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--terraform-hcl2-parser-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--terraform-hcl2-parser-install-from-resolve="], + "env_var": "PANTS_TERRAFORM_HCL2_PARSER_INSTALL_FROM_RESOLVE", + "fromfile": false, + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `terraform-hcl2-parser` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--terraform-hcl2-parser-install-from-resolve"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--install-from-resolve"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + "PANTS_TERRAFORM_HCL2_PARSER_INTERPRETER_CONSTRAINTS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--terraform-hcl2-parser-interpreter-constraints=\"['', '', ...]\"", + "config_key": "interpreter_constraints", + "default": ["CPython>=3.7,<4"], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--terraform-hcl2-parser-interpreter-constraints=\"['', '', ...]\"" + ], + "env_var": "PANTS_TERRAFORM_HCL2_PARSER_INTERPRETER_CONSTRAINTS", + "fromfile": false, + "help": "Python interpreter constraints for this tool.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--terraform-hcl2-parser-interpreter-constraints" + ], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--interpreter-constraints"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": ["CPython>=3.7,<4"] + } + ] + } + }, + "PANTS_TERRAFORM_HCL2_PARSER_REQUIREMENTS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--terraform-hcl2-parser-requirements=\"['', '', ...]\"", + "config_key": "requirements", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--terraform-hcl2-parser-requirements=\"['', '', ...]\"" + ], + "env_var": "PANTS_TERRAFORM_HCL2_PARSER_REQUIREMENTS", + "fromfile": false, + "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--terraform-hcl2-parser-requirements"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--requirements"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + }, + "PANTS_TERRAFORM_TFSEC_ARGS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--terraform-tfsec-args=\"[, , ...]\"", + "config_key": "args", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--terraform-tfsec-args=\"[, , ...]\"" + ], + "env_var": "PANTS_TERRAFORM_TFSEC_ARGS", + "fromfile": false, + "help": "Arguments to pass directly to tfsec, e.g. `--terraform-tfsec-args='--minimum-severity=MEDIUM'`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--terraform-tfsec-args"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--args"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + }, + "PANTS_TERRAFORM_TFSEC_CONFIG": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--terraform-tfsec-config=", + "config_key": "config", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--terraform-tfsec-config="], + "env_var": "PANTS_TERRAFORM_TFSEC_CONFIG", + "fromfile": false, + "help": "Path to the tfsec config file (https://aquasecurity.github.io/tfsec/latest/guides/configuration/config/)\n\nSetting this option will disable `[terraform-tfsec].config_discovery`. Use this option if the config is located in a non-standard location.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--terraform-tfsec-config"], + "target_field_name": null, + "typ": "file_option", + "unscoped_cmd_line_args": ["--config"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + "PANTS_TERRAFORM_TFSEC_CONFIG_DISCOVERY": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]terraform-tfsec-config-discovery", + "config_key": "config_discovery", + "default": true, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]terraform-tfsec-config-discovery"], + "env_var": "PANTS_TERRAFORM_TFSEC_CONFIG_DISCOVERY", + "fromfile": false, + "help": "If true, Pants will include all relevant config files during runs (`.tfsec/config.json` or `.tfsec/config.yml`). Note that you will have to tell Pants to include this file by adding `\"!.tfsec/\"` to `[global].pants_ignore.add`.\n\nUse `[terraform-tfsec].config` instead if your config is in a non-standard location.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--terraform-tfsec-config-discovery", + "--no-terraform-tfsec-config-discovery" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true + } + ] + } + }, + "PANTS_TERRAFORM_TFSEC_KNOWN_VERSIONS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--terraform-tfsec-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", + "default": [ + "v1.28.1|linux_x86_64|57b902b31da3eed12448a4e82a8aca30477e4bcd1bf99e3f65310eae0889f88d|26427634" + ], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--terraform-tfsec-known-versions=\"['', '', ...]\"" + ], + "env_var": "PANTS_TERRAFORM_TFSEC_KNOWN_VERSIONS", + "fromfile": false, + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--terraform-tfsec-known-versions"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--known-versions"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [ + "v1.28.1|linux_x86_64|57b902b31da3eed12448a4e82a8aca30477e4bcd1bf99e3f65310eae0889f88d|26427634" + ] + } + ] + } + }, + "PANTS_TERRAFORM_TFSEC_SKIP": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]terraform-tfsec-skip", + "config_key": "skip", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]terraform-tfsec-skip"], + "env_var": "PANTS_TERRAFORM_TFSEC_SKIP", + "fromfile": false, + "help": "If true, don't use tfsec when running `pants lint`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--terraform-tfsec-skip", + "--no-terraform-tfsec-skip" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + "PANTS_TERRAFORM_TFSEC_USE_UNSUPPORTED_VERSION": { + "choices": ["error", "warning"], + "comma_separated_choices": "error, warning", + "comma_separated_display_args": "--terraform-tfsec-use-unsupported-version=", + "config_key": "use_unsupported_version", + "default": "error", + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--terraform-tfsec-use-unsupported-version=" + ], + "env_var": "PANTS_TERRAFORM_TFSEC_USE_UNSUPPORTED_VERSION", + "fromfile": false, + "help": "\nWhat action to take in case the requested version of tfsec is not supported.\n\nSupported tfsec versions: unspecified\n", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--terraform-tfsec-use-unsupported-version"], + "target_field_name": null, + "typ": "UnsupportedVersionUsage", + "unscoped_cmd_line_args": ["--use-unsupported-version"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "error" + } + ] + } + }, + "PANTS_TERRAFORM_TFSEC_VERSION": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--terraform-tfsec-version=", + "config_key": "version", + "default": "v1.28.1", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--terraform-tfsec-version="], + "env_var": "PANTS_TERRAFORM_TFSEC_VERSION", + "fromfile": false, + "help": "Use this version of tfsec.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--terraform-tfsec-version"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--version"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "v1.28.1" + } + ] + } + }, + "PANTS_TERRAFORM_VALIDATE_SKIP": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]terraform-validate-skip", + "config_key": "skip", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]terraform-validate-skip"], + "env_var": "PANTS_TERRAFORM_VALIDATE_SKIP", + "fromfile": false, + "help": "If true, don't use `terraform validate` when running `pants check`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--terraform-validate-skip", + "--no-terraform-validate-skip" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + "PANTS_TEST_BATCH_SIZE": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--test-batch-size=", + "config_key": "batch_size", + "default": 128, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--test-batch-size="], + "env_var": "PANTS_TEST_BATCH_SIZE", + "fromfile": false, + "help": "The target maximum number of files to be included in each run of batch-enabled test runners.\n\nSome test runners can execute tests from multiple files in a single run. Test implementations will return all tests that _can_ run together as a single group - and then this may be further divided into smaller batches, based on this option. This is done:\n\n 1. to avoid OS argument length limits (in processes which don't support argument files)\n 2. to support more stable cache keys than would be possible if all files were operated on in a single batch\n 3. to allow for parallelism in test runners which don't have internal parallelism, or -- if they do support internal parallelism -- to improve scheduling behavior when multiple processes are competing for cores and so internal parallelism cannot be used perfectly\n\nIn order to improve cache hit rates (see 2.), batches are created at stable boundaries, and so this value is only a \"target\" max batch size (rather than an exact value).\n\nNOTE: This parameter has no effect on test runners/plugins that do not implement support for batched testing.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--test-batch-size"], + "target_field_name": null, + "typ": "int", + "unscoped_cmd_line_args": ["--batch-size"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": 128 + } + ] + } + }, + "PANTS_TEST_DEBUG": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]test-debug", + "config_key": "debug", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]test-debug"], + "env_var": "PANTS_TEST_DEBUG", + "fromfile": false, + "help": "Run tests sequentially in an interactive process. This is necessary, for example, when you add breakpoints to your code.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--test-debug", "--no-test-debug"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--debug", "--no-debug"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + "PANTS_TEST_DEBUG_ADAPTER": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]test-debug-adapter", + "config_key": "debug_adapter", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]test-debug-adapter"], + "env_var": "PANTS_TEST_DEBUG_ADAPTER", + "fromfile": false, + "help": "Run tests sequentially in an interactive process, using a Debug Adapter (https://microsoft.github.io/debug-adapter-protocol/) for the language if supported.\n\nThe interactive process used will be immediately blocked waiting for a client before continuing.\n\nThis option implies `--debug`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--test-debug-adapter", + "--no-test-debug-adapter" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--debug-adapter", "--no-debug-adapter"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + "PANTS_TEST_EXTRA_ENV_VARS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--test-extra-env-vars=\"['', '', ...]\"", + "config_key": "extra_env_vars", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--test-extra-env-vars=\"['', '', ...]\""], + "env_var": "PANTS_TEST_EXTRA_ENV_VARS", + "fromfile": false, + "help": "Additional environment variables to include in test processes. Entries are strings in the form `ENV_VAR=value` to use explicitly; or just `ENV_VAR` to copy the value of a variable in Pants's own environment.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--test-extra-env-vars"], + "target_field_name": "test_extra_env_vars", + "typ": "list", + "unscoped_cmd_line_args": ["--extra-env-vars"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + }, + "PANTS_TEST_FORCE": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]test-force", + "config_key": "force", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]test-force"], + "env_var": "PANTS_TEST_FORCE", + "fromfile": false, + "help": "Force the tests to run, even if they could be satisfied from cache.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--test-force", "--no-test-force"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--force", "--no-force"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + "PANTS_TEST_OPEN_COVERAGE": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]test-open-coverage", + "config_key": "open_coverage", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]test-open-coverage"], + "env_var": "PANTS_TEST_OPEN_COVERAGE", + "fromfile": false, + "help": "If a coverage report file is generated, open it on the local system if the system supports this.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--test-open-coverage", + "--no-test-open-coverage" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--open-coverage", "--no-open-coverage"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + "PANTS_TEST_OUTPUT": { + "choices": ["all", "failed", "none"], + "comma_separated_choices": "all, failed, none", + "comma_separated_display_args": "--test-output=", + "config_key": "output", + "default": "failed", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--test-output="], + "env_var": "PANTS_TEST_OUTPUT", + "fromfile": false, + "help": "Show stdout/stderr for these tests.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--test-output"], + "target_field_name": null, + "typ": "ShowOutput", + "unscoped_cmd_line_args": ["--output"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "failed" + } + ] + } + }, + "PANTS_TEST_REPORT": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]test-report", + "config_key": "report", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]test-report"], + "env_var": "PANTS_TEST_REPORT", + "fromfile": false, + "help": "Write test reports to `--report-dir`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--test-report", "--no-test-report"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--report", "--no-report"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + "PANTS_TEST_REPORT_DIR": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--test-report-dir=", + "config_key": "report_dir", + "default": "{distdir}/test/reports", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--test-report-dir="], + "env_var": "PANTS_TEST_REPORT_DIR", + "fromfile": false, + "help": "Path to write test reports to. Must be relative to the build root.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--test-report-dir"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--report-dir"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "{distdir}/test/reports" + } + ] + } + }, + "PANTS_TEST_SHARD": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--test-shard=", + "config_key": "shard", + "default": "", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--test-shard="], + "env_var": "PANTS_TEST_SHARD", + "fromfile": false, + "help": "A shard specification of the form \"k/N\", where N is a positive integer and k is a non-negative integer less than N.\n\nIf set, the request input targets will be deterministically partitioned into N disjoint subsets of roughly equal size, and only the k'th subset will be used, with all others discarded.\n\nUseful for splitting large numbers of test files across multiple machines in CI. For example, you can run three shards with `--shard=0/3`, `--shard=1/3`, `--shard=2/3`.\n\nNote that the shards are roughly equal in size as measured by number of files. No attempt is made to consider the size of different files, the time they have taken to run in the past, or other such sophisticated measures.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--test-shard"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--shard"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "" + } + ] + } + }, + "PANTS_TEST_TIMEOUTS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]test-timeouts", + "config_key": "timeouts", + "default": true, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]test-timeouts"], + "env_var": "PANTS_TEST_TIMEOUTS", + "fromfile": false, + "help": "Enable test target timeouts. If timeouts are enabled then test targets with a `timeout=` parameter set on their target will time out after the given number of seconds if not completed. If no timeout is set, then either the default timeout is used or no timeout is configured.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--test-timeouts", "--no-test-timeouts"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--timeouts", "--no-timeouts"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true + } + ] + } + }, + "PANTS_TEST_TIMEOUT_DEFAULT": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--test-timeout-default=", + "config_key": "timeout_default", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--test-timeout-default="], + "env_var": "PANTS_TEST_TIMEOUT_DEFAULT", + "fromfile": false, + "help": "The default timeout (in seconds) for a test target if the `timeout` field is not set on the target.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--test-timeout-default"], + "target_field_name": null, + "typ": "int", + "unscoped_cmd_line_args": ["--timeout-default"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + "PANTS_TEST_TIMEOUT_MAXIMUM": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--test-timeout-maximum=", + "config_key": "timeout_maximum", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--test-timeout-maximum="], + "env_var": "PANTS_TEST_TIMEOUT_MAXIMUM", + "fromfile": false, + "help": "The maximum timeout (in seconds) that may be used on a test target.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--test-timeout-maximum"], + "target_field_name": null, + "typ": "int", + "unscoped_cmd_line_args": ["--timeout-maximum"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + "PANTS_TEST_USE_COVERAGE": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]test-use-coverage", + "config_key": "use_coverage", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]test-use-coverage"], + "env_var": "PANTS_TEST_USE_COVERAGE", + "fromfile": false, + "help": "Generate a coverage report if the test runner supports it.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--test-use-coverage", "--no-test-use-coverage"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--use-coverage", "--no-use-coverage"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + "PANTS_THRIFT_DEPENDENCY_INFERENCE": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]thrift-dependency-inference", + "config_key": "dependency_inference", + "default": true, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]thrift-dependency-inference"], + "env_var": "PANTS_THRIFT_DEPENDENCY_INFERENCE", + "fromfile": false, + "help": "Infer Thrift dependencies on other Thrift files by analyzing import statements.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--thrift-dependency-inference", + "--no-thrift-dependency-inference" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": [ + "--dependency-inference", + "--no-dependency-inference" + ], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true + } + ] + } + }, + "PANTS_THRIFT_TAILOR": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]thrift-tailor", + "config_key": "tailor", + "default": true, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]thrift-tailor"], + "env_var": "PANTS_THRIFT_TAILOR", + "fromfile": false, + "help": "If true, add `thrift_sources` targets with the `tailor` goal.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--thrift-tailor", "--no-thrift-tailor"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--tailor", "--no-tailor"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true + } + ] + } + }, + "PANTS_TWINE_ARGS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--twine-args=\"[, , ...]\"", + "config_key": "args", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--twine-args=\"[, , ...]\""], + "env_var": "PANTS_TWINE_ARGS", + "fromfile": false, + "help": "Arguments to pass directly to Twine, e.g. `--twine-args='--skip-existing'`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--twine-args"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--args"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + }, + "PANTS_TWINE_CA_CERTS_PATH": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--twine-ca-certs-path=", + "config_key": "ca_certs_path", + "default": "", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--twine-ca-certs-path="], + "env_var": "PANTS_TWINE_CA_CERTS_PATH", + "fromfile": false, + "help": "Path to a file containing PEM-format CA certificates used for verifying secure connections when publishing python distributions.\n\nUses the value from `[GLOBAL].ca_certs_path` by default. Set to `\"\"` to not use any certificates.\n\nEven when using the `docker_environment` and `remote_environment` targets, this path will be read from the local host, and those certs will be used in the environment.\n\nThis option cannot be overridden via environment targets, so if you need a different value than what the rest of your organization is using, override the value via an environment variable, CLI argument, or `.pants.rc` file. See https://www.pantsbuild.org/v2.18/docs/options.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--twine-ca-certs-path"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--ca-certs-path"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "" + } + ] + } + }, + "PANTS_TWINE_CONFIG": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--twine-config=", + "config_key": "config", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--twine-config="], + "env_var": "PANTS_TWINE_CONFIG", + "fromfile": false, + "help": "Path to a .pypirc config file to use. (https://packaging.python.org/specifications/pypirc/)\n\nSetting this option will disable `[twine].config_discovery`. Use this option if the config is located in a non-standard location.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--twine-config"], + "target_field_name": null, + "typ": "file_option", + "unscoped_cmd_line_args": ["--config"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + "PANTS_TWINE_CONFIG_DISCOVERY": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]twine-config-discovery", + "config_key": "config_discovery", + "default": true, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]twine-config-discovery"], + "env_var": "PANTS_TWINE_CONFIG_DISCOVERY", + "fromfile": false, + "help": "If true, Pants will include all relevant config files during runs (`.pypirc`).\n\nUse `[twine].config` instead if your config is in a non-standard location.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--twine-config-discovery", + "--no-twine-config-discovery" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true + } + ] + } + }, + "PANTS_TWINE_CONSOLE_SCRIPT": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--twine-console-script=", + "config_key": "console_script", + "default": "twine", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--twine-console-script="], + "env_var": "PANTS_TWINE_CONSOLE_SCRIPT", + "fromfile": false, + "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--twine-console-script"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--console-script"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "twine" + } + ] + } + }, + "PANTS_TWINE_ENTRY_POINT": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--twine-entry-point=", + "config_key": "entry_point", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--twine-entry-point="], + "env_var": "PANTS_TWINE_ENTRY_POINT", + "fromfile": false, + "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--twine-entry-point"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--entry-point"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + "PANTS_TWINE_INSTALL_FROM_RESOLVE": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--twine-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--twine-install-from-resolve="], + "env_var": "PANTS_TWINE_INSTALL_FROM_RESOLVE", + "fromfile": false, + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `twine` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--twine-install-from-resolve"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--install-from-resolve"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + "PANTS_TWINE_INTERPRETER_CONSTRAINTS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--twine-interpreter-constraints=\"['', '', ...]\"", + "config_key": "interpreter_constraints", + "default": ["CPython>=3.7,<4"], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--twine-interpreter-constraints=\"['', '', ...]\"" + ], + "env_var": "PANTS_TWINE_INTERPRETER_CONSTRAINTS", + "fromfile": false, + "help": "Python interpreter constraints for this tool.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--twine-interpreter-constraints"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--interpreter-constraints"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": ["CPython>=3.7,<4"] + } + ] + } + }, + "PANTS_TWINE_REQUIREMENTS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--twine-requirements=\"['', '', ...]\"", + "config_key": "requirements", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--twine-requirements=\"['', '', ...]\""], + "env_var": "PANTS_TWINE_REQUIREMENTS", + "fromfile": false, + "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--twine-requirements"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--requirements"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + }, + "PANTS_TWINE_SKIP": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]twine-skip", + "config_key": "skip", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]twine-skip"], + "env_var": "PANTS_TWINE_SKIP", + "fromfile": false, + "help": "If true, don't use Twine when running `pants publish`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--twine-skip", "--no-twine-skip"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + "PANTS_UNMATCHED_BUILD_FILE_GLOBS": { + "choices": ["ignore", "warn", "error"], + "comma_separated_choices": "ignore, warn, error", + "comma_separated_display_args": "--unmatched-build-file-globs=", + "config_key": "unmatched_build_file_globs", + "default": "warn", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--unmatched-build-file-globs="], + "env_var": "PANTS_UNMATCHED_BUILD_FILE_GLOBS", + "fromfile": false, + "help": "What to do when files and globs specified in BUILD files, such as in the `sources` field, cannot be found.\n\nThis usually happens when the files do not exist on your machine. It can also happen if they are ignored by the `[GLOBAL].pants_ignore` option, which causes the files to be invisible to Pants.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--unmatched-build-file-globs"], + "target_field_name": null, + "typ": "GlobMatchErrorBehavior", + "unscoped_cmd_line_args": ["--unmatched-build-file-globs"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "warn" + } + ] + } + }, + "PANTS_UNMATCHED_CLI_GLOBS": { + "choices": ["ignore", "warn", "error"], + "comma_separated_choices": "ignore, warn, error", + "comma_separated_display_args": "--unmatched-cli-globs=", + "config_key": "unmatched_cli_globs", + "default": "error", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--unmatched-cli-globs="], + "env_var": "PANTS_UNMATCHED_CLI_GLOBS", + "fromfile": false, + "help": "What to do when command line arguments, e.g. files and globs like `dir::`, cannot be found.\n\nThis usually happens when the files do not exist on your machine. It can also happen if they are ignored by the `[GLOBAL].pants_ignore` option, which causes the files to be invisible to Pants.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--unmatched-cli-globs"], + "target_field_name": null, + "typ": "GlobMatchErrorBehavior", + "unscoped_cmd_line_args": ["--unmatched-cli-globs"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "error" + } + ] + } + }, + "PANTS_UPDATE_BUILD_FILES_CHECK": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]update-build-files-check", + "config_key": "check", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]update-build-files-check"], + "env_var": "PANTS_UPDATE_BUILD_FILES_CHECK", + "fromfile": false, + "help": "Do not write changes to disk, only write back what would change. Return code 0 means there would be no changes, and 1 means that there would be.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--update-build-files-check", + "--no-update-build-files-check" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--check", "--no-check"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + "PANTS_UPDATE_BUILD_FILES_FIX_SAFE_DEPRECATIONS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]update-build-files-fix-safe-deprecations", + "config_key": "fix_safe_deprecations", + "default": true, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]update-build-files-fix-safe-deprecations"], + "env_var": "PANTS_UPDATE_BUILD_FILES_FIX_SAFE_DEPRECATIONS", + "fromfile": false, + "help": "Automatically fix deprecations, such as target type renames, that are safe because they do not change semantics.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--update-build-files-fix-safe-deprecations", + "--no-update-build-files-fix-safe-deprecations" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": [ + "--fix-safe-deprecations", + "--no-fix-safe-deprecations" + ], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true + } + ] + } + }, + "PANTS_UPDATE_BUILD_FILES_FMT": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]update-build-files-fmt", + "config_key": "fmt", + "default": true, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]update-build-files-fmt"], + "env_var": "PANTS_UPDATE_BUILD_FILES_FMT", + "fromfile": false, + "help": "Format BUILD files using Black or Yapf.\n\nSet `[black].args` / `[yapf].args`, `[black].config` / `[yapf].config` , and `[black].config_discovery` / `[yapf].config_discovery` to change Black's or Yapf's behavior. Set `[black].interpreter_constraints` / `[yapf].interpreter_constraints` and `[python].interpreter_search_path` to change which interpreter is used to run the formatter.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--update-build-files-fmt", + "--no-update-build-files-fmt" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--fmt", "--no-fmt"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true + } + ] + } + }, + "PANTS_UPDATE_BUILD_FILES_FORMATTER": { + "choices": ["yapf", "black"], + "comma_separated_choices": "yapf, black", + "comma_separated_display_args": "--update-build-files-formatter=", + "config_key": "formatter", + "default": "black", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--update-build-files-formatter="], + "env_var": "PANTS_UPDATE_BUILD_FILES_FORMATTER", + "fromfile": false, + "help": "Which formatter Pants should use to format BUILD files.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--update-build-files-formatter"], + "target_field_name": null, + "typ": "Formatter", + "unscoped_cmd_line_args": ["--formatter"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "black" + } + ] + } + }, + "PANTS_VERIFY_CONFIG": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]verify-config", + "config_key": "verify_config", + "default": true, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]verify-config"], + "env_var": "PANTS_VERIFY_CONFIG", + "fromfile": false, + "help": "Verify that all config file values correspond to known options.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--verify-config", "--no-verify-config"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--verify-config", "--no-verify-config"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true + } + ] + } + }, + "PANTS_VERSION": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pants-version=", + "config_key": "pants_version", + "default": "", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--pants-version="], + "env_var": "PANTS_VERSION", + "fromfile": false, + "help": "Use this Pants version. Note that Pants only uses this to verify that you are using the requested version, as Pants cannot dynamically change the version it is using once the program is already running.\n\nIf you use the `pants` script from https://www.pantsbuild.org/v2.18/docs/installation, however, changing the value in your `pants.toml` will cause the new version to be installed and run automatically.\n\nRun `pants --version` to check what is being used.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--pants-version"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--pants-version"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "2.18.1" + }, + { + "details": "from env var PANTS_VERSION", + "rank": "ENVIRONMENT", + "value": "2.18.1" + } + ] + } + }, + "PANTS_VISIBILITY_ENFORCE": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]visibility-enforce", + "config_key": "enforce", + "default": true, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]visibility-enforce"], + "env_var": "PANTS_VISIBILITY_ENFORCE", + "fromfile": false, + "help": "Visibility rules are enforced whenever dependencies are calculated unless `enforce` is set to false.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--visibility-enforce", + "--no-visibility-enforce" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--enforce", "--no-enforce"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true + } + ] + } + }, + "PANTS_VISIBILITY_SKIP": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]visibility-skip", + "config_key": "skip", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]visibility-skip"], + "env_var": "PANTS_VISIBILITY_SKIP", + "fromfile": false, + "help": "If true, don't use Visibility Rules when running `pants lint`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--visibility-skip", "--no-visibility-skip"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + "PANTS_WATCH_FILESYSTEM": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]watch-filesystem", + "config_key": "watch_filesystem", + "default": true, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]watch-filesystem"], + "env_var": "PANTS_WATCH_FILESYSTEM", + "fromfile": false, + "help": "Set to False if Pants should not watch the filesystem for changes. `pantsd` or `loop` may not be enabled.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--watch-filesystem", "--no-watch-filesystem"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--watch-filesystem", "--no-watch-filesystem"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true + } + ] + } + }, + "PANTS_WORKDIR": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pants-workdir=", + "config_key": "pants_workdir", + "default": "/home/runner/work/pantsbuild.org/pantsbuild.org/.pants.d", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--pants-workdir="], + "env_var": "PANTS_WORKDIR", + "fromfile": false, + "help": "Write intermediate logs and output files to this dir.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--pants-workdir"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--pants-workdir"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "/home/runner/work/pantsbuild.org/pantsbuild.org/.pants.d" + } + ] + } + }, + "PANTS_WORKUNIT_LOGGER_ENABLED": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]workunit-logger-enabled", + "config_key": "enabled", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]workunit-logger-enabled"], + "env_var": "PANTS_WORKUNIT_LOGGER_ENABLED", + "fromfile": false, + "help": "Whether to enable workunit logging.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--workunit-logger-enabled", + "--no-workunit-logger-enabled" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--enabled", "--no-enabled"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + "PANTS_WORKUNIT_LOGGER_LOGDIR": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--workunit-logger-logdir=", + "config_key": "logdir", + "default": ".pants.d", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--workunit-logger-logdir="], + "env_var": "PANTS_WORKUNIT_LOGGER_LOGDIR", + "fromfile": false, + "help": "Where to write the log to.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--workunit-logger-logdir"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--logdir"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": ".pants.d" + } + ] + } + }, + "PANTS_YAMLLINT_ARGS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--yamllint-args=\"[, , ...]\"", + "config_key": "args", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--yamllint-args=\"[, , ...]\""], + "env_var": "PANTS_YAMLLINT_ARGS", + "fromfile": false, + "help": "Arguments to pass directly to Yamllint, e.g. `--yamllint-args='-d relaxed'`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--yamllint-args"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--args"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + }, + "PANTS_YAMLLINT_CONFIG_FILE_NAME": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--yamllint-config-file-name=", + "config_key": "config_file_name", + "default": ".yamllint", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--yamllint-config-file-name="], + "env_var": "PANTS_YAMLLINT_CONFIG_FILE_NAME", + "fromfile": false, + "help": "Name of a config file understood by yamllint (https://yamllint.readthedocs.io/en/stable/configuration.html). The plugin will search the ancestors of each directory in which YAML files are found for a config file of this name.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--yamllint-config-file-name"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--config-file-name"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": ".yamllint" + } + ] + } + }, + "PANTS_YAMLLINT_CONSOLE_SCRIPT": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--yamllint-console-script=", + "config_key": "console_script", + "default": "yamllint", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--yamllint-console-script="], + "env_var": "PANTS_YAMLLINT_CONSOLE_SCRIPT", + "fromfile": false, + "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--yamllint-console-script"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--console-script"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "yamllint" + } + ] + } + }, + "PANTS_YAMLLINT_ENTRY_POINT": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--yamllint-entry-point=", + "config_key": "entry_point", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--yamllint-entry-point="], + "env_var": "PANTS_YAMLLINT_ENTRY_POINT", + "fromfile": false, + "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--yamllint-entry-point"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--entry-point"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + "PANTS_YAMLLINT_EXCLUDE": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--yamllint-exclude=\"['', '', ...]\"", + "config_key": "exclude", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--yamllint-exclude=\"['', '', ...]\""], + "env_var": "PANTS_YAMLLINT_EXCLUDE", + "fromfile": false, + "help": "Glob for which YAML files to exclude from linting.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--yamllint-exclude"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--exclude"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + }, + "PANTS_YAMLLINT_INCLUDE": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--yamllint-include=\"['', '', ...]\"", + "config_key": "include", + "default": ["**/*.yml", "**/*.yaml"], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--yamllint-include=\"['', '', ...]\""], + "env_var": "PANTS_YAMLLINT_INCLUDE", + "fromfile": false, + "help": "Glob for which YAML files to lint.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--yamllint-include"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--include"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": ["**/*.yml", "**/*.yaml"] + } + ] + } + }, + "PANTS_YAMLLINT_INSTALL_FROM_RESOLVE": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--yamllint-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--yamllint-install-from-resolve="], + "env_var": "PANTS_YAMLLINT_INSTALL_FROM_RESOLVE", + "fromfile": false, + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `yamllint` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--yamllint-install-from-resolve"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--install-from-resolve"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + "PANTS_YAMLLINT_INTERPRETER_CONSTRAINTS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--yamllint-interpreter-constraints=\"['', '', ...]\"", + "config_key": "interpreter_constraints", + "default": ["CPython>=3.7,<4"], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--yamllint-interpreter-constraints=\"['', '', ...]\"" + ], + "env_var": "PANTS_YAMLLINT_INTERPRETER_CONSTRAINTS", + "fromfile": false, + "help": "Python interpreter constraints for this tool.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--yamllint-interpreter-constraints"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--interpreter-constraints"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": ["CPython>=3.7,<4"] + } + ] + } + }, + "PANTS_YAMLLINT_REQUIREMENTS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--yamllint-requirements=\"['', '', ...]\"", + "config_key": "requirements", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--yamllint-requirements=\"['', '', ...]\""], + "env_var": "PANTS_YAMLLINT_REQUIREMENTS", + "fromfile": false, + "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--yamllint-requirements"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--requirements"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + }, + "PANTS_YAMLLINT_SKIP": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]yamllint-skip", + "config_key": "skip", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]yamllint-skip"], + "env_var": "PANTS_YAMLLINT_SKIP", + "fromfile": false, + "help": "If true, don't use Yamllint when running `pants lint`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--yamllint-skip", "--no-yamllint-skip"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + "PANTS_YAPF_ARGS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--yapf-args=\"[, , ...]\"", + "config_key": "args", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--yapf-args=\"[, , ...]\""], + "env_var": "PANTS_YAPF_ARGS", + "fromfile": false, + "help": "Arguments to pass directly to yapf, e.g. `--yapf-args='--no-local-style'`.\n\nCertain arguments, specifically `--recursive`, `--in-place`, and `--parallel`, will be ignored because Pants takes care of finding all the relevant files and running the formatting in parallel.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--yapf-args"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--args"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + }, + "PANTS_YAPF_CONFIG": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--yapf-config=", + "config_key": "config", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--yapf-config="], + "env_var": "PANTS_YAPF_CONFIG", + "fromfile": false, + "help": "Path to style file understood by yapf (https://github.com/google/yapf#formatting-style/).\n\nSetting this option will disable `[yapf].config_discovery`. Use this option if the config is located in a non-standard location.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--yapf-config"], + "target_field_name": null, + "typ": "file_option", + "unscoped_cmd_line_args": ["--config"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + "PANTS_YAPF_CONFIG_DISCOVERY": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]yapf-config-discovery", + "config_key": "config_discovery", + "default": true, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]yapf-config-discovery"], + "env_var": "PANTS_YAPF_CONFIG_DISCOVERY", + "fromfile": false, + "help": "If true, Pants will include any relevant config files during runs (`.style.yapf`, `pyproject.toml`, and `setup.cfg`).\n\nUse `[yapf].config` instead if your config is in a non-standard location.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--yapf-config-discovery", + "--no-yapf-config-discovery" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--config-discovery", "--no-config-discovery"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true + } + ] + } + }, + "PANTS_YAPF_CONSOLE_SCRIPT": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--yapf-console-script=", + "config_key": "console_script", + "default": "yapf", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--yapf-console-script="], + "env_var": "PANTS_YAPF_CONSOLE_SCRIPT", + "fromfile": false, + "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--yapf-console-script"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--console-script"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "yapf" + } + ] + } + }, + "PANTS_YAPF_ENTRY_POINT": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--yapf-entry-point=", + "config_key": "entry_point", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--yapf-entry-point="], + "env_var": "PANTS_YAPF_ENTRY_POINT", + "fromfile": false, + "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--yapf-entry-point"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--entry-point"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + "PANTS_YAPF_INSTALL_FROM_RESOLVE": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--yapf-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--yapf-install-from-resolve="], + "env_var": "PANTS_YAPF_INSTALL_FROM_RESOLVE", + "fromfile": false, + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `yapf` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--yapf-install-from-resolve"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--install-from-resolve"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + "PANTS_YAPF_INTERPRETER_CONSTRAINTS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--yapf-interpreter-constraints=\"['', '', ...]\"", + "config_key": "interpreter_constraints", + "default": ["CPython>=3.7,<4"], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--yapf-interpreter-constraints=\"['', '', ...]\"" + ], + "env_var": "PANTS_YAPF_INTERPRETER_CONSTRAINTS", + "fromfile": false, + "help": "Python interpreter constraints for this tool.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--yapf-interpreter-constraints"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--interpreter-constraints"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": ["CPython>=3.7,<4"] + } + ] + } + }, + "PANTS_YAPF_REQUIREMENTS": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--yapf-requirements=\"['', '', ...]\"", + "config_key": "requirements", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--yapf-requirements=\"['', '', ...]\""], + "env_var": "PANTS_YAPF_REQUIREMENTS", + "fromfile": false, + "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--yapf-requirements"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--requirements"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + }, + "PANTS_YAPF_SKIP": { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]yapf-skip", + "config_key": "skip", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]yapf-skip"], + "env_var": "PANTS_YAPF_SKIP", + "fromfile": false, + "help": "If true, don't use yapf when running `pants fmt` and `pants lint`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--yapf-skip", "--no-yapf-skip"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + } + }, + "name_to_api_type_info": { + "abc.EnvironmentAware": { + "consumed_by_rules": [ + "pants.core.util_rules.subprocess_environment.get_subprocess_environment" + ], + "dependencies": ["pants.backend.experimental.javascript"], + "dependents": ["pants.core"], + "documentation": null, + "is_union": false, + "module": "abc", + "name": "EnvironmentAware", + "provider": "pants.core", + "returned_by_rules": ["construct_env_aware_scope_subprocess_environment"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "builtins.AddPrefix": { + "consumed_by_rules": [], + "dependencies": [], + "dependents": [], + "documentation": "", + "is_union": false, + "module": "builtins", + "name": "AddPrefix", + "provider": "builtins", + "returned_by_rules": [], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.codegen.avro.java.rules.generate_java_from_avro", + "pants.backend.codegen.protobuf.go.rules.generate_go_from_protobuf", + "pants.backend.codegen.protobuf.java.rules.generate_java_from_protobuf", + "pants.backend.codegen.protobuf.python.rules.generate_python_from_protobuf", + "pants.backend.codegen.protobuf.scala.rules.generate_scala_from_protobuf", + "pants.backend.codegen.protobuf.scala.rules.materialize_jvm_plugins", + "pants.backend.codegen.thrift.apache.java.rules.generate_java_from_thrift", + "pants.backend.codegen.thrift.apache.python.rules.generate_python_from_thrift", + "pants.backend.codegen.thrift.scrooge.java.rules.generate_java_from_thrift_with_scrooge", + "pants.backend.codegen.thrift.scrooge.scala.rules.generate_scala_from_thrift_with_scrooge", + "pants.backend.go.goals.generate.run_go_package_generators", "pants.backend.go.goals.package_binary.package_go_binary", "pants.backend.go.goals.test.run_go_tests", "pants.backend.go.util_rules.build_pkg.build_go_package", @@ -25139,8 +28925,14 @@ "pants.backend.java.bsp.rules.bsp_java_compile_request", "pants.backend.java.bsp.rules.bsp_java_resources_request", "pants.backend.java.dependency_inference.java_parser.analyze_java_source_dependencies", + "pants.backend.javascript.goals.lockfile.generate_lockfile_from_package_jsons", "pants.backend.javascript.install_node_package.install_node_packages_for_address", + "pants.backend.javascript.package.rules.generate_package_artifact_from_node_build_script", + "pants.backend.javascript.package.rules.generate_resources_from_node_build_script", + "pants.backend.javascript.package.rules.pack_node_package_into_tgz_for_publication", "pants.backend.kotlin.dependency_inference.kotlin_parser.analyze_kotlin_source_dependencies", + "pants.backend.openapi.codegen.java.rules.generate_java_from_openapi", + "pants.backend.python.framework.django.detect_apps.detect_django_apps", "pants.backend.python.goals.coverage_py.merge_coverage_data", "pants.backend.python.goals.export.do_export", "pants.backend.python.goals.package_dists.package_python_dist", @@ -25199,11 +28991,14 @@ "pants.core.util_rules.archive.convert_digest_to_MaybeExtractArchiveRequest" ], "dependencies": [ + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.scrooge.java", "pants.backend.experimental.java.lint.google_java_format", "pants.backend.experimental.kotlin", "pants.backend.experimental.kotlin.lint.ktlint", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.scala", "pants.backend.experimental.scala.lint.scalafmt", "pants.backend.go.goals.generate", @@ -25223,23 +29018,38 @@ "pants.backend.docker", "pants.backend.docker.lint.hadolint", "pants.backend.experimental.adhoc", + "pants.backend.experimental.cc.lint.clangformat", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.go", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.scrooge.java", + "pants.backend.experimental.cue", + "pants.backend.experimental.debian", "pants.backend.experimental.go", + "pants.backend.experimental.go.debug_goals", + "pants.backend.experimental.go.lint.golangci_lint", + "pants.backend.experimental.go.lint.vet", "pants.backend.experimental.helm", + "pants.backend.experimental.helm.check.kubeconform", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", + "pants.backend.experimental.javascript.lint.prettier", "pants.backend.experimental.kotlin", "pants.backend.experimental.openapi", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.openapi.lint.spectral", "pants.backend.experimental.python", + "pants.backend.experimental.python.framework.django", "pants.backend.experimental.python.framework.stevedore", "pants.backend.experimental.python.lint.ruff", "pants.backend.experimental.python.packaging.pyoxidizer", + "pants.backend.experimental.python.typecheck.pyright", "pants.backend.experimental.python.typecheck.pytype", "pants.backend.experimental.scala", "pants.backend.experimental.scala.lint.scalafmt", "pants.backend.experimental.terraform", + "pants.backend.experimental.terraform.lint.tfsec", "pants.backend.experimental.tools.yamllint", "pants.backend.project_info", "pants.backend.python", @@ -25250,20 +29060,28 @@ "pants.backend.python.lint.pydocstyle", "pants.backend.python.lint.pylint", "pants.backend.python.lint.yapf", + "pants.backend.python.providers.experimental.pyenv", + "pants.backend.python.providers.experimental.pyenv.custom_install", "pants.backend.python.typecheck.mypy", "pants.backend.shell", "pants.backend.shell.lint.shellcheck", "pants.backend.shell.lint.shfmt", + "pants.backend.tools.taplo", + "pants.backend.url_handlers.s3", "pants.core" ], "documentation": "", "is_union": false, "module": "builtins", "name": "Digest", - "provider": "builtins, pants.backend.experimental.go, pants.backend.experimental.helm, pants.backend.experimental.java, pants.core", + "provider": "builtins, pants.backend.experimental.go, pants.backend.experimental.helm, pants.backend.experimental.java, pants.backend.url_handlers.s3, pants.core", "returned_by_rules": [ "pants.backend.go.goals.generate.merge_digests_with_overwrite", "pants.backend.helm.util_rules.chart_metadata.render_chart_metadata", + "pants.backend.url_handlers.s3.register.download_file_from_path_s3_authority", + "pants.backend.url_handlers.s3.register.download_file_from_s3_scheme", + "pants.backend.url_handlers.s3.register.download_file_from_virtual_hosted_s3_authority", + "pants.backend.url_handlers.s3.register.download_from_s3", "pants.core.util_rules.archive.create_archive", "pants.jvm.jar_tool.jar_tool.run_jar_tool", "pants.jvm.strip_jar.strip_jar.strip_jar" @@ -25277,6 +29095,10 @@ "pants.backend.build_files.fmt.black.register.black_fmt", "pants.backend.build_files.fmt.buildifier.rules.buildfier_fmt", "pants.backend.build_files.fmt.yapf.register.yapf_fmt", + "pants.backend.cc.dependency_inference.rules.infer_cc_source_dependencies", + "pants.backend.cc.lint.clangformat.rules.clangformat_fmt", + "pants.backend.codegen.avro.java.rules.compile_avro_source", + "pants.backend.codegen.avro.java.rules.generate_java_from_avro", "pants.backend.codegen.export_codegen_goal.export_codegen", "pants.backend.codegen.protobuf.go.rules.generate_go_from_protobuf", "pants.backend.codegen.protobuf.go.rules.map_import_paths_of_all_go_protobuf_targets", @@ -25292,13 +29114,21 @@ "pants.backend.codegen.protobuf.scala.rules.generate_scala_from_protobuf", "pants.backend.codegen.protobuf.scala.rules.materialize_jvm_plugins", "pants.backend.codegen.protobuf.scala.rules.setup_scalapb_shim_classfiles", + "pants.backend.codegen.thrift.apache.java.rules.generate_java_from_thrift", "pants.backend.codegen.thrift.apache.python.rules.generate_python_from_thrift", "pants.backend.codegen.thrift.apache.rules.generate_apache_thrift_sources", + "pants.backend.codegen.thrift.scrooge.java.rules.generate_java_from_thrift_with_scrooge", + "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_thrift_sources", + "pants.backend.codegen.thrift.scrooge.scala.rules.generate_scala_from_thrift_with_scrooge", "pants.backend.codegen.thrift.thrift_parser.parse_thrift_file", + "pants.backend.cue.goals.fix.run_cue_fmt", + "pants.backend.cue.goals.lint.run_cue_vet", + "pants.backend.debian.rules.package_debian_package", "pants.backend.docker.goals.package_image.build_docker_image", "pants.backend.docker.lint.hadolint.rules.run_hadolint", "pants.backend.docker.subsystems.dockerfile_parser.setup_parser", "pants.backend.go.go_sources.load_go_binary.setup_go_binary", + "pants.backend.go.goals.debug_goals.export_cgo_package", "pants.backend.go.goals.generate.go_generate", "pants.backend.go.goals.generate.merge_digests_with_overwrite", "pants.backend.go.goals.generate.run_go_package_generators", @@ -25306,6 +29136,8 @@ "pants.backend.go.goals.test.prepare_go_test_binary", "pants.backend.go.goals.test.run_go_tests", "pants.backend.go.lint.gofmt.rules.gofmt_fmt", + "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint", + "pants.backend.go.lint.vet.rules.run_go_vet", "pants.backend.go.target_type_rules.generate_targets_from_go_mod", "pants.backend.go.util_rules.assembly.generate_go_assembly_symabisfile", "pants.backend.go.util_rules.build_pkg.build_go_package", @@ -25332,6 +29164,7 @@ "pants.backend.go.util_rules.third_party_pkg.analyze_go_third_party_module", "pants.backend.go.util_rules.third_party_pkg.analyze_go_third_party_package", "pants.backend.go.util_rules.third_party_pkg.download_and_analyze_third_party_packages", + "pants.backend.helm.check.kubeconform.common.run_kubeconform", "pants.backend.helm.dependency_inference.deployment.analyse_deployment", "pants.backend.helm.goals.package.run_helm_package", "pants.backend.helm.resolve.fetch.fetch_helm_artifact", @@ -25358,9 +29191,14 @@ "pants.backend.java.dependency_inference.java_parser.build_processors", "pants.backend.java.dependency_inference.java_parser.resolve_fallible_result_to_analysis", "pants.backend.java.lint.google_java_format.rules.google_java_format_fmt", + "pants.backend.javascript.goals.lockfile.generate_lockfile_from_package_jsons", + "pants.backend.javascript.goals.test.run_javascript_tests", "pants.backend.javascript.install_node_package.add_sources_to_installed_node_package", "pants.backend.javascript.install_node_package.install_node_packages_for_address", + "pants.backend.javascript.lint.prettier.rules.prettier_fmt", "pants.backend.javascript.nodejs_project_environment.setup_nodejs_project_environment_process", + "pants.backend.javascript.package.rules.generate_package_artifact_from_node_build_script", + "pants.backend.javascript.package.rules.pack_node_package_into_tgz_for_publication", "pants.backend.javascript.package_json.pnpm_workspace_files", "pants.backend.javascript.package_json.read_package_jsons", "pants.backend.javascript.subsystems.nodejs.node_process_environment", @@ -25372,13 +29210,19 @@ "pants.backend.kotlin.dependency_inference.kotlin_parser.resolve_fallible_result_to_analysis", "pants.backend.kotlin.dependency_inference.kotlin_parser.setup_kotlin_parser_classfiles", "pants.backend.kotlin.lint.ktlint.rules.ktlint_fmt", + "pants.backend.openapi.codegen.java.rules.compile_openapi_into_java", + "pants.backend.openapi.codegen.java.rules.generate_java_from_openapi", + "pants.backend.openapi.codegen.java.rules.infer_openapi_java_dependencies", "pants.backend.openapi.dependency_inference.parse_openapi_sources", "pants.backend.openapi.goals.tailor.find_putative_targets", "pants.backend.openapi.lint.spectral.rules.run_spectral", + "pants.backend.openapi.util_rules.pom_parser.analyse_pom", "pants.backend.project_info.count_loc.count_loc", "pants.backend.python.dependency_inference.parse_python_dependencies.general_parser_script", "pants.backend.python.dependency_inference.parse_python_dependencies.get_parser_script", "pants.backend.python.dependency_inference.parse_python_dependencies.parse_python_dependencies", + "pants.backend.python.framework.django.dependency_inference.django_parser_script", + "pants.backend.python.framework.django.detect_apps.detect_django_apps", "pants.backend.python.framework.stevedore.rules.generate_entry_points_txt_from_stevedore_extension", "pants.backend.python.goals.coverage_py.create_or_update_coverage_config", "pants.backend.python.goals.coverage_py.generate_coverage_reports", @@ -25411,8 +29255,11 @@ "pants.backend.python.lint.yapf.rules.yapf_fmt", "pants.backend.python.packaging.pyoxidizer.rules.create_pyoxidizer_runner_script", "pants.backend.python.packaging.pyoxidizer.rules.package_pyoxidizer_binary", + "pants.backend.python.providers.pyenv.custom_install.rules.run_pyenv_install", + "pants.backend.python.providers.pyenv.rules.get_pyenv_install_info", "pants.backend.python.typecheck.mypy.rules.mypy_typecheck_partition", "pants.backend.python.typecheck.mypy.subsystem.setup_mypy_config", + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck_partition", "pants.backend.python.typecheck.pytype.rules.pytype_typecheck_partition", "pants.backend.python.util_rules.dists.run_pep517_build", "pants.backend.python.util_rules.faas.build_python_faas", @@ -25432,6 +29279,7 @@ "pants.backend.python.util_rules.pex_requirements.load_lockfile", "pants.backend.python.util_rules.pex_venv.pex_venv", "pants.backend.python.util_rules.vcs_versioning.generate_python_from_setuptools_scm", + "pants.backend.rust.lint.rustfmt.rules.rustfmt_fmt", "pants.backend.scala.bsp.rules.bsp_resolve_scala_metadata", "pants.backend.scala.bsp.rules.bsp_scala_compile_request", "pants.backend.scala.bsp.rules.bsp_scala_resources_request", @@ -25457,8 +29305,14 @@ "pants.backend.terraform.dependency_inference.setup_parser", "pants.backend.terraform.goals.deploy.prepare_terraform_deployment", "pants.backend.terraform.lint.tffmt.tffmt.tffmt_fmt", + "pants.backend.terraform.lint.tfsec.rules.run_tfsec", "pants.backend.tools.preamble.rules.preamble_fmt", + "pants.backend.tools.taplo.rules.taplo_fmt", "pants.backend.tools.yamllint.rules.run_yamllint", + "pants.backend.url_handlers.s3.register.download_file_from_path_s3_authority", + "pants.backend.url_handlers.s3.register.download_file_from_s3_scheme", + "pants.backend.url_handlers.s3.register.download_file_from_virtual_hosted_s3_authority", + "pants.backend.url_handlers.s3.register.download_from_s3", "pants.bsp.util_rules.compile.bsp_compile_request", "pants.bsp.util_rules.compile.compile_bsp_target", "pants.bsp.util_rules.resources.bsp_resources_request", @@ -25530,6 +29384,7 @@ "builtins", "pants.backend.experimental.go", "pants.backend.experimental.helm", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.fs", "pants.jvm.util_rules" @@ -25551,12 +29406,12 @@ "builtins.InferenceMetadata": { "consumed_by_rules": [], "dependencies": [], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": null, "is_union": false, "module": "builtins", "name": "InferenceMetadata", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": [ "pants.backend.javascript.dependency_inference.rules.prepare_inference_metadata" ], @@ -25583,6 +29438,9 @@ "pants.backend.build_files.fmt.black.register.black_fmt", "pants.backend.build_files.fmt.buildifier.rules.buildfier_fmt", "pants.backend.build_files.fmt.yapf.register.yapf_fmt", + "pants.backend.cc.lint.clangformat.rules.clangformat_fmt", + "pants.backend.codegen.avro.java.rules.compile_avro_source", + "pants.backend.codegen.avro.java.rules.generate_java_from_avro", "pants.backend.codegen.export_codegen_goal.export_codegen", "pants.backend.codegen.protobuf.go.rules.generate_go_from_protobuf", "pants.backend.codegen.protobuf.go.rules.setup_full_package_build_request", @@ -25595,11 +29453,16 @@ "pants.backend.codegen.protobuf.scala.rules.materialize_jvm_plugins", "pants.backend.codegen.protobuf.scala.rules.setup_scalapb_shim_classfiles", "pants.backend.codegen.thrift.apache.rules.generate_apache_thrift_sources", + "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_thrift_sources", + "pants.backend.cue.goals.fix.run_cue_fmt", + "pants.backend.cue.goals.lint.run_cue_vet", "pants.backend.docker.lint.hadolint.rules.run_hadolint", "pants.backend.docker.util_rules.docker_build_context.create_docker_build_context", "pants.backend.go.goals.generate.go_generate", "pants.backend.go.goals.test.prepare_go_test_binary", "pants.backend.go.goals.test.run_go_tests", + "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint", + "pants.backend.go.lint.vet.rules.run_go_vet", "pants.backend.go.util_rules.assembly.generate_go_assembly_symabisfile", "pants.backend.go.util_rules.build_pkg.build_go_package", "pants.backend.go.util_rules.build_pkg.check_for_golang_assembly", @@ -25623,8 +29486,10 @@ "pants.backend.java.bsp.rules.bsp_java_compile_request", "pants.backend.java.compile.javac.compile_java_source", "pants.backend.java.dependency_inference.java_parser.build_processors", + "pants.backend.javascript.goals.test.run_javascript_tests", "pants.backend.javascript.install_node_package.add_sources_to_installed_node_package", "pants.backend.javascript.install_node_package.install_node_packages_for_address", + "pants.backend.javascript.lint.prettier.rules.prettier_fmt", "pants.backend.javascript.nodejs_project_environment.setup_nodejs_project_environment_process", "pants.backend.javascript.subsystems.nodejs.node_process_environment", "pants.backend.javascript.subsystems.nodejs.setup_node_tool_process", @@ -25632,10 +29497,13 @@ "pants.backend.kotlin.compile.kotlinc.compile_kotlin_source", "pants.backend.kotlin.compile.kotlinc_plugins.fetch_kotlinc_plugins", "pants.backend.kotlin.dependency_inference.kotlin_parser.setup_kotlin_parser_classfiles", + "pants.backend.openapi.codegen.java.rules.compile_openapi_into_java", + "pants.backend.openapi.codegen.java.rules.generate_java_from_openapi", "pants.backend.openapi.lint.spectral.rules.run_spectral", "pants.backend.project_info.count_loc.count_loc", "pants.backend.python.dependency_inference.parse_python_dependencies.get_parser_script", "pants.backend.python.dependency_inference.parse_python_dependencies.parse_python_dependencies", + "pants.backend.python.framework.django.detect_apps.detect_django_apps", "pants.backend.python.goals.coverage_py.generate_coverage_reports", "pants.backend.python.goals.coverage_py.merge_coverage_data", "pants.backend.python.goals.export.do_export", @@ -25658,7 +29526,10 @@ "pants.backend.python.lint.ruff.rules.run_ruff", "pants.backend.python.lint.yapf.rules.yapf_fmt", "pants.backend.python.packaging.pyoxidizer.rules.package_pyoxidizer_binary", + "pants.backend.python.providers.pyenv.custom_install.rules.run_pyenv_install", + "pants.backend.python.providers.pyenv.rules.get_pyenv_install_info", "pants.backend.python.typecheck.mypy.rules.mypy_typecheck_partition", + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck_partition", "pants.backend.python.typecheck.pytype.rules.pytype_typecheck_partition", "pants.backend.python.util_rules.dists.run_pep517_build", "pants.backend.python.util_rules.local_dists.build_local_dists", @@ -25690,6 +29561,8 @@ "pants.backend.terraform.dependencies.get_terraform_providers", "pants.backend.terraform.dependencies.init_terraform", "pants.backend.terraform.goals.deploy.prepare_terraform_deployment", + "pants.backend.terraform.lint.tfsec.rules.run_tfsec", + "pants.backend.tools.taplo.rules.taplo_fmt", "pants.backend.tools.yamllint.rules.run_yamllint", "pants.bsp.util_rules.compile.bsp_compile_request", "pants.bsp.util_rules.compile.compile_bsp_target", @@ -25765,6 +29638,7 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.codegen.avro.java.rules.compile_avro_source", "pants.backend.codegen.protobuf.go.rules.generate_go_from_protobuf", "pants.backend.codegen.protobuf.go.rules.setup_go_protoc_plugin", "pants.backend.codegen.protobuf.java.rules.generate_java_from_protobuf", @@ -25772,6 +29646,8 @@ "pants.backend.codegen.protobuf.scala.rules.generate_scala_from_protobuf", "pants.backend.codegen.protobuf.scala.rules.setup_scalapb_shim_classfiles", "pants.backend.codegen.thrift.apache.rules.generate_apache_thrift_sources", + "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_thrift_sources", + "pants.backend.go.goals.debug_goals.export_cgo_package", "pants.backend.helm.goals.package.run_helm_package", "pants.backend.helm.resolve.fetch.fetch_helm_artifact", "pants.backend.helm.test.unittest.generate_helm_unittest_snapshots", @@ -25784,6 +29660,7 @@ "pants.backend.helm.util_rules.tool.setup_helm", "pants.backend.java.dependency_inference.java_parser.build_processors", "pants.backend.kotlin.dependency_inference.kotlin_parser.setup_kotlin_parser_classfiles", + "pants.backend.openapi.codegen.java.rules.compile_openapi_into_java", "pants.backend.python.goals.pytest_runner.run_python_tests", "pants.backend.python.lint.bandit.rules.bandit_lint", "pants.backend.python.lint.flake8.rules.run_flake8", @@ -26075,6 +29952,370 @@ "union_type": "AbstractLintRequest", "used_in_rules": [] }, + "pants.backend.cc.dependency_inference.rules.AllCCTargets": { + "consumed_by_rules": [ + "pants.backend.cc.dependency_inference.rules.map_cc_files" + ], + "dependencies": ["pants.backend.experimental.go"], + "dependents": ["pants.backend.experimental.cc"], + "documentation": null, + "is_union": false, + "module": "pants.backend.cc.dependency_inference.rules", + "name": "AllCCTargets", + "provider": "pants.backend.experimental.cc", + "returned_by_rules": [ + "pants.backend.cc.dependency_inference.rules.find_all_cc_targets" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "pants.backend.cc.dependency_inference.rules.CCFilesMapping": { + "consumed_by_rules": [ + "pants.backend.cc.dependency_inference.rules.infer_cc_source_dependencies" + ], + "dependencies": ["pants.core"], + "dependents": ["pants.backend.experimental.cc"], + "documentation": "A mapping of stripped CC file names to their owning file address.", + "is_union": false, + "module": "pants.backend.cc.dependency_inference.rules", + "name": "CCFilesMapping", + "provider": "pants.backend.experimental.cc", + "returned_by_rules": [ + "pants.backend.cc.dependency_inference.rules.map_cc_files" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "pants.backend.cc.dependency_inference.rules.InferCCDependenciesRequest": { + "consumed_by_rules": [ + "pants.backend.cc.dependency_inference.rules.infer_cc_source_dependencies" + ], + "dependencies": ["pants.engine.target"], + "dependents": ["pants.backend.experimental.cc"], + "documentation": null, + "is_union": false, + "module": "pants.backend.cc.dependency_inference.rules", + "name": "InferCCDependenciesRequest", + "provider": "pants.backend.experimental.cc", + "returned_by_rules": [], + "union_members": [], + "union_type": "InferDependenciesRequest", + "used_in_rules": [] + }, + "pants.backend.cc.goals.tailor.PutativeCCTargetsRequest": { + "consumed_by_rules": [ + "pants.backend.cc.goals.tailor.find_putative_targets" + ], + "dependencies": ["pants.core"], + "dependents": ["pants.backend.experimental.cc"], + "documentation": "PutativeCCTargetsRequest(dirs: 'tuple[str, ...]')", + "is_union": false, + "module": "pants.backend.cc.goals.tailor", + "name": "PutativeCCTargetsRequest", + "provider": "pants.backend.experimental.cc", + "returned_by_rules": [], + "union_members": [], + "union_type": "PutativeTargetsRequest", + "used_in_rules": [] + }, + "pants.backend.cc.lint.clangformat.rules.ClangFormatRequest": { + "consumed_by_rules": [], + "dependencies": ["pants.core"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.cc.lint.clangformat.rules", + "name": "ClangFormatRequest", + "provider": "pants.backend.experimental.cc.lint.clangformat", + "returned_by_rules": [], + "union_members": [], + "union_type": "AbstractLintRequest", + "used_in_rules": [] + }, + "pants.backend.cc.lint.clangformat.skip_field.SkipClangFormatField": { + "consumed_by_rules": [], + "dependencies": ["pants.engine.target"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.cc.lint.clangformat.skip_field", + "name": "SkipClangFormatField", + "provider": "pants.backend.experimental.cc.lint.clangformat", + "returned_by_rules": [], + "union_members": [], + "union_type": "PluginField", + "used_in_rules": [] + }, + "pants.backend.cc.lint.clangformat.subsystem.ClangFormat": { + "consumed_by_rules": [ + "pants.backend.cc.lint.clangformat.rules.clangformat_fmt", + "pants.core.util_rules.partitions._single_partition_file_rules.partitioner" + ], + "dependencies": ["pants.option.scope"], + "dependents": ["pants.backend.experimental.cc.lint.clangformat"], + "documentation": null, + "is_union": false, + "module": "pants.backend.cc.lint.clangformat.subsystem", + "name": "ClangFormat", + "provider": "pants.backend.experimental.cc.lint.clangformat", + "returned_by_rules": ["construct_scope_clang_format"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "pants.backend.cc.subsystems.cc_infer.CCInferSubsystem": { + "consumed_by_rules": [ + "pants.backend.cc.dependency_inference.rules.infer_cc_source_dependencies" + ], + "dependencies": ["pants.option.scope"], + "dependents": ["pants.backend.experimental.cc"], + "documentation": null, + "is_union": false, + "module": "pants.backend.cc.subsystems.cc_infer", + "name": "CCInferSubsystem", + "provider": "pants.backend.experimental.cc", + "returned_by_rules": ["construct_scope_cc_infer"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "pants.backend.cc.subsystems.compiler.CCSubsystem": { + "consumed_by_rules": [], + "dependencies": ["pants.option.scope"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.cc.subsystems.compiler", + "name": "CCSubsystem", + "provider": "pants.backend.experimental.cc", + "returned_by_rules": ["construct_scope_cc"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "pants.backend.cc.subsystems.compiler.ExternalCCSubsystem": { + "consumed_by_rules": [], + "dependencies": ["pants.option.scope"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.cc.subsystems.compiler", + "name": "ExternalCCSubsystem", + "provider": "pants.backend.experimental.cc", + "returned_by_rules": ["construct_scope_cc_external"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "pants.backend.codegen.avro.avro_subsystem.AvroSubsystem": { + "consumed_by_rules": [ + "pants.backend.codegen.avro.tailor.find_putative_targets" + ], + "dependencies": ["pants.option.scope"], + "dependents": ["pants.backend.experimental.codegen.avro.java"], + "documentation": null, + "is_union": false, + "module": "pants.backend.codegen.avro.avro_subsystem", + "name": "AvroSubsystem", + "provider": "pants.backend.experimental.codegen.avro.java", + "returned_by_rules": ["construct_scope_avro"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "pants.backend.codegen.avro.java.rules.ApacheAvroRuntimeForResolve": { + "consumed_by_rules": [], + "dependencies": [ + "pants.backend.codegen.avro.java.rules", + "pants.backend.experimental.java" + ], + "dependents": ["pants.backend.experimental.codegen.avro.java"], + "documentation": "ApacheAvroRuntimeForResolve(addresses: 'frozenset[Address]')", + "is_union": false, + "module": "pants.backend.codegen.avro.java.rules", + "name": "ApacheAvroRuntimeForResolve", + "provider": "pants.backend.experimental.codegen.avro.java", + "returned_by_rules": [ + "pants.backend.codegen.avro.java.rules.resolve_apache_avro_runtime_for_resolve" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.codegen.avro.java.rules.infer_apache_avro_java_dependencies" + ] + }, + "pants.backend.codegen.avro.java.rules.ApacheAvroRuntimeForResolveRequest": { + "consumed_by_rules": [ + "pants.backend.codegen.avro.java.rules.resolve_apache_avro_runtime_for_resolve" + ], + "dependencies": [], + "dependents": ["pants.backend.experimental.codegen.avro.java"], + "documentation": "ApacheAvroRuntimeForResolveRequest(resolve_name: 'str')", + "is_union": false, + "module": "pants.backend.codegen.avro.java.rules", + "name": "ApacheAvroRuntimeForResolveRequest", + "provider": "pants.backend.codegen.avro.java.rules", + "returned_by_rules": [], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.codegen.avro.java.rules.infer_apache_avro_java_dependencies" + ] + }, + "pants.backend.codegen.avro.java.rules.AvroToolLockfileSentinel": { + "consumed_by_rules": [ + "pants.backend.codegen.avro.java.rules.generate_avro_tools_lockfile_request" + ], + "dependencies": ["pants.core"], + "dependents": ["pants.backend.experimental.codegen.avro.java"], + "documentation": null, + "is_union": false, + "module": "pants.backend.codegen.avro.java.rules", + "name": "AvroToolLockfileSentinel", + "provider": "pants.backend.codegen.avro.java.rules, pants.backend.experimental.codegen.avro.java", + "returned_by_rules": [], + "union_members": [], + "union_type": "GenerateToolLockfileSentinel", + "used_in_rules": [ + "pants.backend.codegen.avro.java.rules.compile_avro_source" + ] + }, + "pants.backend.codegen.avro.java.rules.CompileAvroSourceRequest": { + "consumed_by_rules": [ + "pants.backend.codegen.avro.java.rules.compile_avro_source" + ], + "dependencies": [], + "dependents": ["pants.backend.experimental.codegen.avro.java"], + "documentation": "CompileAvroSourceRequest(digest: 'Digest', path: 'str')", + "is_union": false, + "module": "pants.backend.codegen.avro.java.rules", + "name": "CompileAvroSourceRequest", + "provider": "pants.backend.codegen.avro.java.rules", + "returned_by_rules": [], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.codegen.avro.java.rules.generate_java_from_avro" + ] + }, + "pants.backend.codegen.avro.java.rules.CompiledAvroSource": { + "consumed_by_rules": [], + "dependencies": [ + "builtins", + "pants.backend.codegen.avro.java.rules", + "pants.backend.experimental.codegen.protobuf.java", + "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.scrooge.java", + "pants.backend.experimental.go", + "pants.backend.experimental.helm", + "pants.backend.experimental.java", + "pants.backend.experimental.java.lint.google_java_format", + "pants.backend.experimental.kotlin", + "pants.backend.experimental.kotlin.lint.ktlint", + "pants.backend.experimental.openapi.codegen.java", + "pants.backend.experimental.scala", + "pants.backend.experimental.scala.lint.scalafmt", + "pants.backend.url_handlers.s3", + "pants.core" + ], + "dependents": ["pants.backend.experimental.codegen.avro.java"], + "documentation": "CompiledAvroSource(output_digest: 'Digest')", + "is_union": false, + "module": "pants.backend.codegen.avro.java.rules", + "name": "CompiledAvroSource", + "provider": "pants.backend.experimental.codegen.avro.java", + "returned_by_rules": [ + "pants.backend.codegen.avro.java.rules.compile_avro_source" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.codegen.avro.java.rules.generate_java_from_avro" + ] + }, + "pants.backend.codegen.avro.java.rules.GenerateJavaFromAvroRequest": { + "consumed_by_rules": [ + "pants.backend.codegen.avro.java.rules.generate_java_from_avro" + ], + "dependencies": ["pants.engine.target"], + "dependents": ["pants.backend.experimental.codegen.avro.java"], + "documentation": null, + "is_union": false, + "module": "pants.backend.codegen.avro.java.rules", + "name": "GenerateJavaFromAvroRequest", + "provider": "pants.backend.experimental.codegen.avro.java", + "returned_by_rules": [], + "union_members": [], + "union_type": "GenerateSourcesRequest", + "used_in_rules": [] + }, + "pants.backend.codegen.avro.java.rules.InferAvroRuntimeDependencyRequest": { + "consumed_by_rules": [ + "pants.backend.codegen.avro.java.rules.infer_apache_avro_java_dependencies" + ], + "dependencies": ["pants.engine.target"], + "dependents": ["pants.backend.experimental.codegen.avro.java"], + "documentation": null, + "is_union": false, + "module": "pants.backend.codegen.avro.java.rules", + "name": "InferAvroRuntimeDependencyRequest", + "provider": "pants.backend.experimental.codegen.avro.java", + "returned_by_rules": [], + "union_members": [], + "union_type": "InferDependenciesRequest", + "used_in_rules": [] + }, + "pants.backend.codegen.avro.java.subsystem.AvroSubsystem": { + "consumed_by_rules": [ + "pants.backend.codegen.avro.java.rules.compile_avro_source", + "pants.backend.codegen.avro.java.rules.generate_avro_tools_lockfile_request" + ], + "dependencies": ["pants.option.scope"], + "dependents": ["pants.backend.experimental.codegen.avro.java"], + "documentation": null, + "is_union": false, + "module": "pants.backend.codegen.avro.java.subsystem", + "name": "AvroSubsystem", + "provider": "pants.backend.experimental.codegen.avro.java", + "returned_by_rules": ["construct_scope_java_avro"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "pants.backend.codegen.avro.tailor.PutativeAvroTargetsRequest": { + "consumed_by_rules": [ + "pants.backend.codegen.avro.tailor.find_putative_targets" + ], + "dependencies": ["pants.core"], + "dependents": ["pants.backend.experimental.codegen.avro.java"], + "documentation": "PutativeAvroTargetsRequest(dirs: 'tuple[str, ...]')", + "is_union": false, + "module": "pants.backend.codegen.avro.tailor", + "name": "PutativeAvroTargetsRequest", + "provider": "pants.backend.experimental.codegen.avro.java", + "returned_by_rules": [], + "union_members": [], + "union_type": "PutativeTargetsRequest", + "used_in_rules": [] + }, + "pants.backend.codegen.avro.target_types.AllAvroTargets": { + "consumed_by_rules": [], + "dependencies": ["pants.backend.experimental.go"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.codegen.avro.target_types", + "name": "AllAvroTargets", + "provider": "pants.backend.experimental.codegen.avro.java", + "returned_by_rules": [ + "pants.backend.codegen.avro.target_types.find_all_avro_targets" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, "pants.backend.codegen.export_codegen_goal.ExportCodegen": { "consumed_by_rules": [], "dependencies": [ @@ -26082,6 +30323,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.engine.fs", "pants.engine.target", "pants.engine.unions" @@ -26189,6 +30431,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.codegen.protobuf.go"], @@ -26338,18 +30581,22 @@ ], "dependencies": [ "builtins", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.scrooge.java", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.experimental.java.lint.google_java_format", + "pants.backend.experimental.javascript", "pants.backend.experimental.kotlin", "pants.backend.experimental.kotlin.lint.ktlint", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.scala", "pants.backend.experimental.scala.lint.scalafmt", + "pants.backend.url_handlers.s3", "pants.core", - "pants.engine.fs", - "pants.engine.platform" + "pants.engine.fs" ], "dependents": ["pants.backend.experimental.codegen.protobuf.java"], "documentation": "ProtobufJavaGrpcPlugin(digest: 'Digest', path: 'str')", @@ -26794,6 +31041,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.codegen.protobuf.scala"], @@ -26817,15 +31065,19 @@ ], "dependencies": [ "builtins", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.java", + "pants.backend.experimental.codegen.thrift.scrooge.java", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.experimental.java.lint.google_java_format", "pants.backend.experimental.kotlin", "pants.backend.experimental.kotlin.lint.ktlint", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.scala", "pants.backend.experimental.scala.lint.scalafmt", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.codegen.protobuf.scala"], @@ -26934,6 +31186,93 @@ "union_type": "TargetFilesGeneratorSettingsRequest", "used_in_rules": [] }, + "pants.backend.codegen.thrift.apache.java.rules.ApacheThriftJavaRuntimeForResolve": { + "consumed_by_rules": [], + "dependencies": [ + "pants.backend.codegen.thrift.apache.java.rules", + "pants.backend.experimental.java" + ], + "dependents": ["pants.backend.experimental.codegen.thrift.apache.java"], + "documentation": "ApacheThriftJavaRuntimeForResolve(addresses: 'frozenset[Address]')", + "is_union": false, + "module": "pants.backend.codegen.thrift.apache.java.rules", + "name": "ApacheThriftJavaRuntimeForResolve", + "provider": "pants.backend.experimental.codegen.thrift.apache.java", + "returned_by_rules": [ + "pants.backend.codegen.thrift.apache.java.rules.resolve_apache_thrift_java_runtime_for_resolve" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.codegen.thrift.apache.java.rules.infer_apache_thrift_java_dependencies" + ] + }, + "pants.backend.codegen.thrift.apache.java.rules.ApacheThriftJavaRuntimeForResolveRequest": { + "consumed_by_rules": [ + "pants.backend.codegen.thrift.apache.java.rules.resolve_apache_thrift_java_runtime_for_resolve" + ], + "dependencies": [], + "dependents": ["pants.backend.experimental.codegen.thrift.apache.java"], + "documentation": "ApacheThriftJavaRuntimeForResolveRequest(resolve_name: 'str')", + "is_union": false, + "module": "pants.backend.codegen.thrift.apache.java.rules", + "name": "ApacheThriftJavaRuntimeForResolveRequest", + "provider": "pants.backend.codegen.thrift.apache.java.rules", + "returned_by_rules": [], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.codegen.thrift.apache.java.rules.infer_apache_thrift_java_dependencies" + ] + }, + "pants.backend.codegen.thrift.apache.java.rules.GenerateJavaFromThriftRequest": { + "consumed_by_rules": [ + "pants.backend.codegen.thrift.apache.java.rules.generate_java_from_thrift" + ], + "dependencies": ["pants.engine.target"], + "dependents": ["pants.backend.experimental.codegen.thrift.apache.java"], + "documentation": null, + "is_union": false, + "module": "pants.backend.codegen.thrift.apache.java.rules", + "name": "GenerateJavaFromThriftRequest", + "provider": "pants.backend.experimental.codegen.thrift.apache.java", + "returned_by_rules": [], + "union_members": [], + "union_type": "GenerateSourcesRequest", + "used_in_rules": [] + }, + "pants.backend.codegen.thrift.apache.java.rules.InferApacheThriftJavaDependencies": { + "consumed_by_rules": [ + "pants.backend.codegen.thrift.apache.java.rules.infer_apache_thrift_java_dependencies" + ], + "dependencies": ["pants.engine.target"], + "dependents": ["pants.backend.experimental.codegen.thrift.apache.java"], + "documentation": null, + "is_union": false, + "module": "pants.backend.codegen.thrift.apache.java.rules", + "name": "InferApacheThriftJavaDependencies", + "provider": "pants.backend.experimental.codegen.thrift.apache.java", + "returned_by_rules": [], + "union_members": [], + "union_type": "InferDependenciesRequest", + "used_in_rules": [] + }, + "pants.backend.codegen.thrift.apache.java.subsystem.ApacheThriftJavaSubsystem": { + "consumed_by_rules": [ + "pants.backend.codegen.thrift.apache.java.rules.generate_java_from_thrift" + ], + "dependencies": ["pants.option.scope"], + "dependents": ["pants.backend.experimental.codegen.thrift.apache.java"], + "documentation": null, + "is_union": false, + "module": "pants.backend.codegen.thrift.apache.java.subsystem", + "name": "ApacheThriftJavaSubsystem", + "provider": "pants.backend.experimental.codegen.thrift.apache.java", + "returned_by_rules": ["construct_scope_java_thrift"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, "pants.backend.codegen.thrift.apache.python.additional_fields.ThriftPythonResolveField": { "consumed_by_rules": [], "dependencies": ["pants.engine.target"], @@ -27019,8 +31358,8 @@ ], "dependencies": [ "pants.backend.experimental.helm", - "pants.core", - "pants.engine.env_vars" + "pants.backend.experimental.javascript", + "pants.core" ], "dependents": ["pants.backend.codegen.thrift.apache.python"], "documentation": "ApacheThriftSetup(path: 'str')", @@ -27050,6 +31389,7 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.codegen.thrift.apache.java.rules.generate_java_from_thrift", "pants.backend.codegen.thrift.apache.python.rules.generate_python_from_thrift" ] }, @@ -27061,9 +31401,13 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.core" ], - "dependents": ["pants.backend.codegen.thrift.apache.python"], + "dependents": [ + "pants.backend.codegen.thrift.apache.python", + "pants.backend.experimental.codegen.thrift.apache.java" + ], "documentation": "GeneratedThriftSources(snapshot: 'Snapshot')", "is_union": false, "module": "pants.backend.codegen.thrift.apache.rules", @@ -27075,6 +31419,7 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.codegen.thrift.apache.java.rules.generate_java_from_thrift", "pants.backend.codegen.thrift.apache.python.rules.generate_python_from_thrift" ] }, @@ -27129,6 +31474,257 @@ "union_type": null, "used_in_rules": [] }, + "pants.backend.codegen.thrift.scrooge.additional_fields.ScroogeFinagleBoolField": { + "consumed_by_rules": [], + "dependencies": ["pants.engine.target"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.codegen.thrift.scrooge.additional_fields", + "name": "ScroogeFinagleBoolField", + "provider": "pants.backend.experimental.codegen.thrift.scrooge.java", + "returned_by_rules": [], + "union_members": [], + "union_type": "PluginField", + "used_in_rules": [] + }, + "pants.backend.codegen.thrift.scrooge.java.rules.GenerateJavaFromThriftRequest": { + "consumed_by_rules": [ + "pants.backend.codegen.thrift.scrooge.java.rules.generate_java_from_thrift_with_scrooge" + ], + "dependencies": ["pants.engine.target"], + "dependents": ["pants.backend.experimental.codegen.thrift.scrooge.java"], + "documentation": null, + "is_union": false, + "module": "pants.backend.codegen.thrift.scrooge.java.rules", + "name": "GenerateJavaFromThriftRequest", + "provider": "pants.backend.experimental.codegen.thrift.scrooge.java", + "returned_by_rules": [], + "union_members": [], + "union_type": "GenerateSourcesRequest", + "used_in_rules": [] + }, + "pants.backend.codegen.thrift.scrooge.java.rules.InferScroogeThriftJavaDependencies": { + "consumed_by_rules": [ + "pants.backend.codegen.thrift.scrooge.java.rules.inject_scrooge_thrift_java_dependencies" + ], + "dependencies": ["pants.engine.target"], + "dependents": ["pants.backend.experimental.codegen.thrift.scrooge.java"], + "documentation": null, + "is_union": false, + "module": "pants.backend.codegen.thrift.scrooge.java.rules", + "name": "InferScroogeThriftJavaDependencies", + "provider": "pants.backend.experimental.codegen.thrift.scrooge.java", + "returned_by_rules": [], + "union_members": [], + "union_type": "InferDependenciesRequest", + "used_in_rules": [] + }, + "pants.backend.codegen.thrift.scrooge.java.rules.ScroogeThriftJavaRuntimeForResolve": { + "consumed_by_rules": [], + "dependencies": [ + "pants.backend.codegen.thrift.scrooge.java.rules", + "pants.backend.experimental.java", + "pants.backend.experimental.scala" + ], + "dependents": ["pants.backend.experimental.codegen.thrift.scrooge.java"], + "documentation": "ScroogeThriftJavaRuntimeForResolve(addresses: 'frozenset[Address]')", + "is_union": false, + "module": "pants.backend.codegen.thrift.scrooge.java.rules", + "name": "ScroogeThriftJavaRuntimeForResolve", + "provider": "pants.backend.experimental.codegen.thrift.scrooge.java", + "returned_by_rules": [ + "pants.backend.codegen.thrift.scrooge.java.rules.resolve_scrooge_thrift_java_runtime_for_resolve" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.codegen.thrift.scrooge.java.rules.inject_scrooge_thrift_java_dependencies" + ] + }, + "pants.backend.codegen.thrift.scrooge.java.rules.ScroogeThriftJavaRuntimeForResolveRequest": { + "consumed_by_rules": [ + "pants.backend.codegen.thrift.scrooge.java.rules.resolve_scrooge_thrift_java_runtime_for_resolve" + ], + "dependencies": [], + "dependents": ["pants.backend.experimental.codegen.thrift.scrooge.java"], + "documentation": "ScroogeThriftJavaRuntimeForResolveRequest(resolve_name: 'str')", + "is_union": false, + "module": "pants.backend.codegen.thrift.scrooge.java.rules", + "name": "ScroogeThriftJavaRuntimeForResolveRequest", + "provider": "pants.backend.codegen.thrift.scrooge.java.rules", + "returned_by_rules": [], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.codegen.thrift.scrooge.java.rules.inject_scrooge_thrift_java_dependencies" + ] + }, + "pants.backend.codegen.thrift.scrooge.rules.GenerateScroogeThriftSourcesRequest": { + "consumed_by_rules": [ + "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_thrift_sources" + ], + "dependencies": [], + "dependents": ["pants.backend.experimental.codegen.thrift.scrooge.java"], + "documentation": "GenerateScroogeThriftSourcesRequest(thrift_source_field: pants.backend.codegen.thrift.target_types.ThriftSourceField, lang_id: str, lang_name: str)", + "is_union": false, + "module": "pants.backend.codegen.thrift.scrooge.rules", + "name": "GenerateScroogeThriftSourcesRequest", + "provider": "pants.backend.codegen.thrift.scrooge.rules", + "returned_by_rules": [], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.codegen.thrift.scrooge.java.rules.generate_java_from_thrift_with_scrooge", + "pants.backend.codegen.thrift.scrooge.scala.rules.generate_scala_from_thrift_with_scrooge" + ] + }, + "pants.backend.codegen.thrift.scrooge.rules.GeneratedScroogeThriftSources": { + "consumed_by_rules": [], + "dependencies": [ + "builtins", + "pants.backend.codegen.thrift.scrooge.rules", + "pants.backend.experimental.codegen.avro.java", + "pants.backend.experimental.codegen.protobuf.java", + "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.go", + "pants.backend.experimental.helm", + "pants.backend.experimental.java", + "pants.backend.experimental.java.lint.google_java_format", + "pants.backend.experimental.kotlin", + "pants.backend.experimental.kotlin.lint.ktlint", + "pants.backend.experimental.openapi.codegen.java", + "pants.backend.experimental.scala", + "pants.backend.experimental.scala.lint.scalafmt", + "pants.backend.url_handlers.s3", + "pants.core" + ], + "dependents": [ + "pants.backend.experimental.codegen.thrift.scrooge.java", + "pants.backend.experimental.codegen.thrift.scrooge.scala" + ], + "documentation": "GeneratedScroogeThriftSources(snapshot: Snapshot)", + "is_union": false, + "module": "pants.backend.codegen.thrift.scrooge.rules", + "name": "GeneratedScroogeThriftSources", + "provider": "pants.backend.experimental.codegen.thrift.scrooge.java", + "returned_by_rules": [ + "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_thrift_sources" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.codegen.thrift.scrooge.java.rules.generate_java_from_thrift_with_scrooge", + "pants.backend.codegen.thrift.scrooge.scala.rules.generate_scala_from_thrift_with_scrooge" + ] + }, + "pants.backend.codegen.thrift.scrooge.rules.ScroogeToolLockfileSentinel": { + "consumed_by_rules": [ + "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_lockfile_request" + ], + "dependencies": ["pants.core"], + "dependents": ["pants.backend.experimental.codegen.thrift.scrooge.java"], + "documentation": null, + "is_union": false, + "module": "pants.backend.codegen.thrift.scrooge.rules", + "name": "ScroogeToolLockfileSentinel", + "provider": "pants.backend.codegen.thrift.scrooge.rules, pants.backend.experimental.codegen.thrift.scrooge.java", + "returned_by_rules": [], + "union_members": [], + "union_type": "GenerateToolLockfileSentinel", + "used_in_rules": [ + "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_thrift_sources" + ] + }, + "pants.backend.codegen.thrift.scrooge.scala.rules.GenerateScalaFromThriftRequest": { + "consumed_by_rules": [ + "pants.backend.codegen.thrift.scrooge.scala.rules.generate_scala_from_thrift_with_scrooge" + ], + "dependencies": ["pants.engine.target"], + "dependents": ["pants.backend.experimental.codegen.thrift.scrooge.scala"], + "documentation": null, + "is_union": false, + "module": "pants.backend.codegen.thrift.scrooge.scala.rules", + "name": "GenerateScalaFromThriftRequest", + "provider": "pants.backend.experimental.codegen.thrift.scrooge.scala", + "returned_by_rules": [], + "union_members": [], + "union_type": "GenerateSourcesRequest", + "used_in_rules": [] + }, + "pants.backend.codegen.thrift.scrooge.scala.rules.InferScroogeThriftScalaDependencies": { + "consumed_by_rules": [ + "pants.backend.codegen.thrift.scrooge.scala.rules.inject_scrooge_thrift_scala_dependencies" + ], + "dependencies": ["pants.engine.target"], + "dependents": ["pants.backend.experimental.codegen.thrift.scrooge.scala"], + "documentation": null, + "is_union": false, + "module": "pants.backend.codegen.thrift.scrooge.scala.rules", + "name": "InferScroogeThriftScalaDependencies", + "provider": "pants.backend.experimental.codegen.thrift.scrooge.scala", + "returned_by_rules": [], + "union_members": [], + "union_type": "InferDependenciesRequest", + "used_in_rules": [] + }, + "pants.backend.codegen.thrift.scrooge.scala.rules.ScroogeThriftScalaRuntimeForResolve": { + "consumed_by_rules": [], + "dependencies": [ + "pants.backend.codegen.thrift.scrooge.scala.rules", + "pants.backend.experimental.java", + "pants.backend.experimental.scala" + ], + "dependents": ["pants.backend.experimental.codegen.thrift.scrooge.scala"], + "documentation": "ScroogeThriftScalaRuntimeForResolve(addresses: 'frozenset[Address]')", + "is_union": false, + "module": "pants.backend.codegen.thrift.scrooge.scala.rules", + "name": "ScroogeThriftScalaRuntimeForResolve", + "provider": "pants.backend.experimental.codegen.thrift.scrooge.scala", + "returned_by_rules": [ + "pants.backend.codegen.thrift.scrooge.scala.rules.resolve_scrooge_thrift_scala_runtime_for_resolve" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.codegen.thrift.scrooge.scala.rules.inject_scrooge_thrift_scala_dependencies" + ] + }, + "pants.backend.codegen.thrift.scrooge.scala.rules.ScroogeThriftScalaRuntimeForResolveRequest": { + "consumed_by_rules": [ + "pants.backend.codegen.thrift.scrooge.scala.rules.resolve_scrooge_thrift_scala_runtime_for_resolve" + ], + "dependencies": [], + "dependents": ["pants.backend.experimental.codegen.thrift.scrooge.scala"], + "documentation": "ScroogeThriftScalaRuntimeForResolveRequest(resolve_name: 'str')", + "is_union": false, + "module": "pants.backend.codegen.thrift.scrooge.scala.rules", + "name": "ScroogeThriftScalaRuntimeForResolveRequest", + "provider": "pants.backend.codegen.thrift.scrooge.scala.rules", + "returned_by_rules": [], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.codegen.thrift.scrooge.scala.rules.inject_scrooge_thrift_scala_dependencies" + ] + }, + "pants.backend.codegen.thrift.scrooge.subsystem.ScroogeSubsystem": { + "consumed_by_rules": [ + "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_lockfile_request", + "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_thrift_sources" + ], + "dependencies": ["pants.option.scope"], + "dependents": ["pants.backend.experimental.codegen.thrift.scrooge.java"], + "documentation": null, + "is_union": false, + "module": "pants.backend.codegen.thrift.scrooge.subsystem", + "name": "ScroogeSubsystem", + "provider": "pants.backend.experimental.codegen.thrift.scrooge.java", + "returned_by_rules": ["construct_scope_scrooge"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, "pants.backend.codegen.thrift.subsystem.ThriftSubsystem": { "consumed_by_rules": [ "pants.backend.codegen.thrift.dependency_inference.infer_thrift_dependencies", @@ -27240,6 +31836,69 @@ "pants.backend.codegen.thrift.dependency_inference.infer_thrift_dependencies" ] }, + "pants.backend.cue.goals.fix.CueFmtRequest": { + "consumed_by_rules": [], + "dependencies": ["pants.core"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.cue.goals.fix", + "name": "CueFmtRequest", + "provider": "pants.backend.experimental.cue", + "returned_by_rules": [], + "union_members": [], + "union_type": "AbstractLintRequest", + "used_in_rules": [] + }, + "pants.backend.cue.goals.lint.CueLintRequest": { + "consumed_by_rules": [], + "dependencies": ["pants.core"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.cue.goals.lint", + "name": "CueLintRequest", + "provider": "pants.backend.experimental.cue", + "returned_by_rules": [], + "union_members": [], + "union_type": "AbstractLintRequest", + "used_in_rules": [] + }, + "pants.backend.cue.subsystem.Cue": { + "consumed_by_rules": [ + "pants.backend.cue.goals.fix.run_cue_fmt", + "pants.backend.cue.goals.lint.run_cue_vet", + "pants.core.util_rules.partitions._single_partition_field_set_rules.partitioner", + "pants.core.util_rules.partitions._single_partition_file_rules.partitioner" + ], + "dependencies": ["pants.option.scope"], + "dependents": ["pants.backend.experimental.cue"], + "documentation": null, + "is_union": false, + "module": "pants.backend.cue.subsystem", + "name": "Cue", + "provider": "pants.backend.experimental.cue", + "returned_by_rules": ["construct_scope_cue"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "pants.backend.debian.rules.DebianPackageFieldSet": { + "consumed_by_rules": [ + "pants.backend.debian.rules.package_debian_package" + ], + "dependencies": ["pants.core"], + "dependents": ["pants.backend.experimental.debian"], + "documentation": "DebianPackageFieldSet(address: 'Address', sources_dir: pants.backend.debian.target_types.DebianSources, install_prefix: pants.backend.debian.target_types.DebianInstallPrefix, packages: pants.backend.debian.target_types.DebianPackageDependencies, output_path: pants.core.goals.package.OutputPathField)", + "is_union": false, + "module": "pants.backend.debian.rules", + "name": "DebianPackageFieldSet", + "provider": "pants.backend.experimental.debian", + "returned_by_rules": [], + "union_members": [], + "union_type": "PackageFieldSet", + "used_in_rules": [] + }, "pants.backend.docker.goals.package_image.DockerPackageFieldSet": { "consumed_by_rules": [ "pants.backend.docker.goals.package_image.build_docker_image" @@ -27396,7 +32055,7 @@ "pants.backend.docker.util_rules.docker_binary.get_docker", "pants.backend.docker.util_rules.docker_build_env.docker_build_environment_vars" ], - "dependencies": ["pants.core", "pants.engine.env_vars"], + "dependencies": ["pants.backend.experimental.javascript", "pants.core"], "dependents": ["pants.backend.docker"], "documentation": null, "is_union": false, @@ -27498,6 +32157,7 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.python", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.docker"], @@ -27629,9 +32289,11 @@ "dependencies": [ "builtins", "pants.backend.awslambda.python", + "pants.backend.experimental.debian", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.python.packaging.pyoxidizer", "pants.backend.google_cloud_function.python", "pants.backend.python", @@ -27691,7 +32353,7 @@ }, "pants.backend.docker.util_rules.docker_build_env.DockerBuildEnvironment": { "consumed_by_rules": [], - "dependencies": ["pants.engine.env_vars"], + "dependencies": ["pants.backend.experimental.javascript"], "dependents": ["pants.backend.docker"], "documentation": "DockerBuildEnvironment(environment: 'EnvironmentVars')", "is_union": false, @@ -27767,7 +32429,8 @@ "dependencies": ["pants.backend.go.target_type_rules"], "dependents": [ "pants.backend.experimental.codegen.protobuf.go", - "pants.backend.experimental.go" + "pants.backend.experimental.go", + "pants.backend.experimental.go.debug_goals" ], "documentation": "Maps import paths (as strings) to one or more addresses of targets providing those import\npath(s) for a single Go module.", "is_union": false, @@ -27782,6 +32445,7 @@ "used_in_rules": [ "pants.backend.codegen.protobuf.go.rules.setup_build_go_package_request_for_protobuf", "pants.backend.codegen.protobuf.go.rules.setup_full_package_build_request", + "pants.backend.go.goals.debug_goals.dump_go_import_paths_for_module", "pants.backend.go.goals.test.prepare_go_test_binary", "pants.backend.go.target_type_rules.infer_go_dependencies", "pants.backend.go.target_type_rules.infer_go_third_party_package_dependencies", @@ -27840,6 +32504,7 @@ "pants.backend.experimental.java", "pants.backend.go.go_sources.load_go_binary", "pants.backend.go.util_rules.build_pkg", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.go"], @@ -27916,11 +32581,158 @@ "union_type": "CheckRequest", "used_in_rules": [] }, + "pants.backend.go.goals.debug_goals.DumpGoImportPathsForModule": { + "consumed_by_rules": [], + "dependencies": [ + "pants.backend.experimental.go", + "pants.engine.console", + "pants.engine.target" + ], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.go.goals.debug_goals", + "name": "DumpGoImportPathsForModule", + "provider": "pants.backend.experimental.go.debug_goals", + "returned_by_rules": [ + "pants.backend.go.goals.debug_goals.dump_go_import_paths_for_module" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "pants.backend.go.goals.debug_goals.DumpGoImportPathsForModuleSubsystem": { + "consumed_by_rules": [], + "dependencies": ["pants.option.scope"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.go.goals.debug_goals", + "name": "DumpGoImportPathsForModuleSubsystem", + "provider": "pants.backend.experimental.go.debug_goals", + "returned_by_rules": ["construct_scope_go_dump_import_path_mapping"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "pants.backend.go.goals.debug_goals.ExportCgoPackageRequest": { + "consumed_by_rules": [ + "pants.backend.go.goals.debug_goals.export_cgo_package" + ], + "dependencies": [], + "dependents": ["pants.backend.experimental.go.debug_goals"], + "documentation": "ExportCgoPackageRequest(address: 'Address', build_opts: 'GoBuildOptions')", + "is_union": false, + "module": "pants.backend.go.goals.debug_goals", + "name": "ExportCgoPackageRequest", + "provider": "pants.backend.go.goals.debug_goals", + "returned_by_rules": [], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.go.goals.debug_goals.go_export_cgo_codegen" + ] + }, + "pants.backend.go.goals.debug_goals.ExportCgoPackageResult": { + "consumed_by_rules": [], + "dependencies": [ + "builtins", + "pants.backend.experimental.codegen.protobuf.go", + "pants.backend.experimental.go", + "pants.backend.experimental.helm", + "pants.backend.experimental.java", + "pants.backend.go.goals.debug_goals", + "pants.backend.url_handlers.s3", + "pants.core" + ], + "dependents": ["pants.backend.experimental.go.debug_goals"], + "documentation": "ExportCgoPackageResult(digest: 'Digest' = Digest('e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', 0), error: 'str | None' = None, skip: 'bool' = False)", + "is_union": false, + "module": "pants.backend.go.goals.debug_goals", + "name": "ExportCgoPackageResult", + "provider": "pants.backend.experimental.go.debug_goals", + "returned_by_rules": [ + "pants.backend.go.goals.debug_goals.export_cgo_package" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.go.goals.debug_goals.go_export_cgo_codegen" + ] + }, + "pants.backend.go.goals.debug_goals.GoExportCgoCodegen": { + "consumed_by_rules": [], + "dependencies": [ + "pants.backend.experimental.go", + "pants.core", + "pants.engine.fs" + ], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.go.goals.debug_goals", + "name": "GoExportCgoCodegen", + "provider": "pants.backend.experimental.go.debug_goals", + "returned_by_rules": [ + "pants.backend.go.goals.debug_goals.go_export_cgo_codegen" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "pants.backend.go.goals.debug_goals.GoExportCgoCodegenSubsystem": { + "consumed_by_rules": [], + "dependencies": ["pants.option.scope"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.go.goals.debug_goals", + "name": "GoExportCgoCodegenSubsystem", + "provider": "pants.backend.experimental.go.debug_goals", + "returned_by_rules": ["construct_scope_go_export_cgo_codegen"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "pants.backend.go.goals.debug_goals.ShowGoPackageAnalysis": { + "consumed_by_rules": [], + "dependencies": [ + "pants.backend.experimental.go", + "pants.core", + "pants.engine.console" + ], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.go.goals.debug_goals", + "name": "ShowGoPackageAnalysis", + "provider": "pants.backend.experimental.go.debug_goals", + "returned_by_rules": [ + "pants.backend.go.goals.debug_goals.go_show_package_analysis" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "pants.backend.go.goals.debug_goals.ShowGoPackageAnalysisSubsystem": { + "consumed_by_rules": [], + "dependencies": ["pants.option.scope"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.go.goals.debug_goals", + "name": "ShowGoPackageAnalysisSubsystem", + "provider": "pants.backend.experimental.go.debug_goals", + "returned_by_rules": ["construct_scope_go_show_package_analysis"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, "pants.backend.go.goals.generate.EnvironmentAware": { "consumed_by_rules": [ "pants.backend.go.goals.generate.run_go_package_generators" ], - "dependencies": ["pants.core", "pants.engine.env_vars"], + "dependencies": ["pants.backend.experimental.javascript", "pants.core"], "dependents": ["pants.backend.experimental.go"], "documentation": null, "is_union": false, @@ -27938,6 +32750,7 @@ "builtins", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.fs" ], @@ -28006,9 +32819,10 @@ "builtins", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.go.goals.generate", + "pants.backend.url_handlers.s3", "pants.core", - "pants.engine.env_vars", "pants.engine.fs" ], "dependents": ["pants.backend.experimental.go"], @@ -28107,6 +32921,7 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.go.goals.test", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.go"], @@ -28211,16 +33026,109 @@ "union_type": null, "used_in_rules": [] }, + "pants.backend.go.lint.golangci_lint.rules.GolangciLintRequest": { + "consumed_by_rules": [], + "dependencies": ["pants.core"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.go.lint.golangci_lint.rules", + "name": "GolangciLintRequest", + "provider": "pants.backend.experimental.go.lint.golangci_lint", + "returned_by_rules": [], + "union_members": [], + "union_type": "AbstractLintRequest", + "used_in_rules": [] + }, + "pants.backend.go.lint.golangci_lint.skip_field.SkipGolangciLintField": { + "consumed_by_rules": [], + "dependencies": ["pants.engine.target"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.go.lint.golangci_lint.skip_field", + "name": "SkipGolangciLintField", + "provider": "pants.backend.experimental.go.lint.golangci_lint", + "returned_by_rules": [], + "union_members": [], + "union_type": "PluginField", + "used_in_rules": [] + }, + "pants.backend.go.lint.golangci_lint.subsystem.GolangciLint": { + "consumed_by_rules": [ + "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint", + "pants.core.util_rules.partitions._single_partition_field_set_rules.partitioner" + ], + "dependencies": ["pants.option.scope"], + "dependents": ["pants.backend.experimental.go.lint.golangci_lint"], + "documentation": null, + "is_union": false, + "module": "pants.backend.go.lint.golangci_lint.subsystem", + "name": "GolangciLint", + "provider": "pants.backend.experimental.go.lint.golangci_lint", + "returned_by_rules": ["construct_scope_golangci_lint"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "pants.backend.go.lint.vet.rules.GoVetRequest": { + "consumed_by_rules": [], + "dependencies": ["pants.core"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.go.lint.vet.rules", + "name": "GoVetRequest", + "provider": "pants.backend.experimental.go.lint.vet", + "returned_by_rules": [], + "union_members": [], + "union_type": "AbstractLintRequest", + "used_in_rules": [] + }, + "pants.backend.go.lint.vet.skip_field.SkipGoVetField": { + "consumed_by_rules": [], + "dependencies": ["pants.engine.target"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.go.lint.vet.skip_field", + "name": "SkipGoVetField", + "provider": "pants.backend.experimental.go.lint.vet", + "returned_by_rules": [], + "union_members": [], + "union_type": "PluginField", + "used_in_rules": [] + }, + "pants.backend.go.lint.vet.subsystem.GoVetSubsystem": { + "consumed_by_rules": [ + "pants.core.util_rules.partitions._single_partition_field_set_rules.partitioner" + ], + "dependencies": ["pants.option.scope"], + "dependents": ["pants.backend.experimental.go.lint.vet"], + "documentation": null, + "is_union": false, + "module": "pants.backend.go.lint.vet.subsystem", + "name": "GoVetSubsystem", + "provider": "pants.backend.experimental.go.lint.vet", + "returned_by_rules": ["construct_scope_go_vet"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, "pants.backend.go.subsystems.golang.EnvironmentAware": { "consumed_by_rules": [ + "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint", "pants.backend.go.util_rules.cgo.cgo_compile_request", "pants.backend.go.util_rules.cgo_binaries.find_cgo_binary_path", "pants.backend.go.util_rules.go_bootstrap.resolve_go_bootstrap", "pants.backend.go.util_rules.link.setup_go_linker", "pants.backend.go.util_rules.sdk.setup_go_sdk_process" ], - "dependencies": ["pants.core", "pants.engine.env_vars"], - "dependents": ["pants.backend.experimental.go"], + "dependencies": ["pants.backend.experimental.javascript", "pants.core"], + "dependents": [ + "pants.backend.experimental.go", + "pants.backend.experimental.go.lint.golangci_lint" + ], "documentation": null, "is_union": false, "module": "pants.backend.go.subsystems.golang", @@ -28235,12 +33143,16 @@ "consumed_by_rules": [ "construct_env_aware_scope_golang", "pants.backend.go.goals.tailor.find_putative_go_targets", + "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint", "pants.backend.go.util_rules.build_opts.go_extract_build_options_from_target", "pants.backend.go.util_rules.go_bootstrap.resolve_go_bootstrap", "pants.backend.go.util_rules.goroot.setup_goroot" ], "dependencies": ["pants.option.scope"], - "dependents": ["pants.backend.experimental.go"], + "dependents": [ + "pants.backend.experimental.go", + "pants.backend.experimental.go.lint.golangci_lint" + ], "documentation": null, "is_union": false, "module": "pants.backend.go.subsystems.golang", @@ -28319,6 +33231,7 @@ "used_in_rules": [ "pants.backend.codegen.protobuf.go.rules.setup_build_go_package_request_for_protobuf", "pants.backend.codegen.protobuf.go.rules.setup_full_package_build_request", + "pants.backend.go.goals.debug_goals.dump_go_import_paths_for_module", "pants.backend.go.goals.test.prepare_go_test_binary", "pants.backend.go.target_type_rules.infer_go_dependencies", "pants.backend.go.target_type_rules.infer_go_third_party_package_dependencies", @@ -28419,6 +33332,7 @@ "pants.backend.experimental.java", "pants.backend.experimental.python.lint.ruff", "pants.backend.go.util_rules.assembly", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.process" ], @@ -28520,7 +33434,11 @@ "pants.backend.go.util_rules.build_opts.GoBuildOptions": { "consumed_by_rules": [], "dependencies": ["pants.backend.go.util_rules.build_opts"], - "dependents": ["pants.backend.experimental.go"], + "dependents": [ + "pants.backend.experimental.go", + "pants.backend.experimental.go.debug_goals", + "pants.backend.experimental.go.lint.golangci_lint" + ], "documentation": "GoBuildOptions(coverage_config: 'GoCoverageConfig | None' = None, cgo_enabled: 'bool' = True, with_race_detector: 'bool' = False, with_msan: 'bool' = False, with_asan: 'bool' = False, compiler_flags: 'tuple[str, ...]' = (), linker_flags: 'tuple[str, ...]' = (), assembler_flags: 'tuple[str, ...]' = ())", "is_union": false, "module": "pants.backend.go.util_rules.build_opts", @@ -28533,9 +33451,12 @@ "union_type": null, "used_in_rules": [ "pants.backend.go.goals.check.check_go", + "pants.backend.go.goals.debug_goals.go_export_cgo_codegen", + "pants.backend.go.goals.debug_goals.go_show_package_analysis", "pants.backend.go.goals.generate.run_go_package_generators", "pants.backend.go.goals.package_binary.package_go_binary", "pants.backend.go.goals.test.prepare_go_test_binary", + "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint", "pants.backend.go.target_type_rules.infer_go_dependencies", "pants.backend.go.target_type_rules.infer_go_third_party_package_dependencies" ] @@ -28556,9 +33477,12 @@ "union_type": null, "used_in_rules": [ "pants.backend.go.goals.check.check_go", + "pants.backend.go.goals.debug_goals.go_export_cgo_codegen", + "pants.backend.go.goals.debug_goals.go_show_package_analysis", "pants.backend.go.goals.generate.run_go_package_generators", "pants.backend.go.goals.package_binary.package_go_binary", "pants.backend.go.goals.test.prepare_go_test_binary", + "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint", "pants.backend.go.target_type_rules.infer_go_dependencies", "pants.backend.go.target_type_rules.infer_go_third_party_package_dependencies" ] @@ -28641,6 +33565,7 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.go.util_rules.build_pkg", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.go"], @@ -28668,18 +33593,20 @@ "pants.backend.codegen.protobuf.python", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.python.lint.ruff", "pants.backend.go.util_rules.build_pkg", "pants.backend.go.util_rules.build_pkg_target", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.fs", - "pants.engine.platform", "pants.engine.process", "pants.engine.unions" ], "dependents": [ "pants.backend.experimental.codegen.protobuf.go", - "pants.backend.experimental.go" + "pants.backend.experimental.go", + "pants.backend.experimental.go.debug_goals" ], "documentation": "Request to build a package, but fallible if determining the request metadata failed.\n\nWhen creating \"synthetic\" packages, use `GoPackageRequest` directly. This type is only intended\nfor determining the package metadata of user code, which may fail to be analyzed.", "is_union": false, @@ -28697,6 +33624,7 @@ "used_in_rules": [ "pants.backend.codegen.protobuf.go.rules.setup_build_go_package_request_for_protobuf", "pants.backend.go.goals.check.check_go", + "pants.backend.go.goals.debug_goals.export_cgo_package", "pants.backend.go.goals.test.prepare_go_test_binary", "pants.backend.go.util_rules.build_pkg_target.setup_build_go_package_target_request", "pants.backend.go.util_rules.build_pkg_target.setup_build_go_package_target_request_for_stdlib" @@ -28712,6 +33640,7 @@ "pants.backend.experimental.java", "pants.backend.experimental.python.lint.ruff", "pants.backend.go.util_rules.build_pkg", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.fs", "pants.engine.process" @@ -28794,6 +33723,7 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.go.util_rules.build_pkg", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.go"], @@ -28819,6 +33749,7 @@ "builtins", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.go"], @@ -28872,6 +33803,7 @@ "used_in_rules": [ "pants.backend.codegen.protobuf.go.rules.setup_full_package_build_request", "pants.backend.go.goals.check.check_go", + "pants.backend.go.goals.debug_goals.export_cgo_package", "pants.backend.go.goals.package_binary.package_go_binary", "pants.backend.go.goals.test.prepare_go_test_binary", "pants.backend.go.util_rules.build_pkg_target.setup_build_go_package_target_request" @@ -28919,6 +33851,7 @@ "pants.backend.experimental.java", "pants.backend.experimental.python.lint.ruff", "pants.backend.go.util_rules.build_pkg_target", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.process" ], @@ -28952,6 +33885,7 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.go.goals.debug_goals.export_cgo_package", "pants.backend.go.util_rules.build_pkg.build_go_package" ] }, @@ -28961,14 +33895,19 @@ "builtins", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.python.lint.ruff", + "pants.backend.experimental.rust", "pants.backend.go.util_rules.cgo", + "pants.backend.url_handlers.s3", "pants.core", - "pants.engine.env_vars", "pants.engine.fs", "pants.engine.process" ], - "dependents": ["pants.backend.experimental.go"], + "dependents": [ + "pants.backend.experimental.go", + "pants.backend.experimental.go.debug_goals" + ], "documentation": "CGoCompileResult(digest: 'Digest', output_go_files: 'tuple[str, ...]', output_obj_files: 'tuple[str, ...]', include_module_sources_with_output: 'bool')", "is_union": false, "module": "pants.backend.go.util_rules.cgo", @@ -28980,6 +33919,7 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.go.goals.debug_goals.export_cgo_package", "pants.backend.go.util_rules.build_pkg.build_go_package" ] }, @@ -28989,6 +33929,7 @@ "builtins", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.go"], @@ -29028,6 +33969,7 @@ "pants.backend.experimental.java", "pants.backend.experimental.python.lint.ruff", "pants.backend.go.util_rules.cgo", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.process" ], @@ -29116,6 +34058,7 @@ "consumed_by_rules": [], "dependencies": [ "pants.backend.experimental.helm", + "pants.backend.experimental.rust", "pants.backend.go.util_rules.cgo_pkgconfig" ], "dependents": ["pants.backend.experimental.go"], @@ -29156,6 +34099,7 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.go.util_rules.coverage", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.go"], @@ -29235,6 +34179,7 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.go.util_rules.coverage", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.go"], @@ -29354,10 +34299,14 @@ "pants.backend.experimental.java", "pants.backend.experimental.python.lint.ruff", "pants.backend.go.util_rules.first_party_pkg", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.process" ], - "dependents": ["pants.backend.experimental.go"], + "dependents": [ + "pants.backend.experimental.go", + "pants.backend.experimental.go.debug_goals" + ], "documentation": "Metadata for a Go package, but fallible if our analysis failed.", "is_union": false, "module": "pants.backend.go.util_rules.first_party_pkg", @@ -29369,6 +34318,7 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.go.goals.debug_goals.go_show_package_analysis", "pants.backend.go.goals.generate.run_go_package_generators", "pants.backend.go.goals.package_binary.package_go_binary", "pants.backend.go.goals.test.prepare_go_test_binary", @@ -29385,6 +34335,7 @@ "pants.backend.experimental.java", "pants.backend.experimental.python.lint.ruff", "pants.backend.go.util_rules.first_party_pkg", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.process" ], @@ -29420,6 +34371,7 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.go.goals.debug_goals.go_show_package_analysis", "pants.backend.go.goals.generate.run_go_package_generators", "pants.backend.go.goals.package_binary.package_go_binary", "pants.backend.go.goals.test.prepare_go_test_binary", @@ -29490,7 +34442,7 @@ }, "pants.backend.go.util_rules.go_bootstrap.GoBootstrap": { "consumed_by_rules": ["pants.backend.go.util_rules.goroot.setup_goroot"], - "dependencies": ["pants.core", "pants.engine.env_vars"], + "dependencies": ["pants.backend.experimental.javascript", "pants.core"], "dependents": ["pants.backend.experimental.go"], "documentation": "GoBootstrap(go_search_paths: 'tuple[str, ...]')", "is_union": false, @@ -29528,7 +34480,12 @@ "pants.backend.experimental.helm", "pants.backend.go.util_rules.go_mod" ], - "dependents": ["pants.backend.experimental.go"], + "dependents": [ + "pants.backend.experimental.go", + "pants.backend.experimental.go.debug_goals", + "pants.backend.experimental.go.lint.golangci_lint", + "pants.backend.experimental.go.lint.vet" + ], "documentation": "GoModInfo(import_path: 'str', digest: 'Digest', mod_path: 'str', minimum_go_version: 'str | None')", "is_union": false, "module": "pants.backend.go.util_rules.go_mod", @@ -29540,7 +34497,10 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.go.goals.debug_goals.go_show_package_analysis", "pants.backend.go.goals.package_binary.package_go_binary", + "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint", + "pants.backend.go.lint.vet.rules.run_go_vet", "pants.backend.go.target_type_rules.generate_targets_from_go_mod", "pants.backend.go.target_type_rules.infer_go_third_party_package_dependencies", "pants.backend.go.util_rules.build_pkg_target.setup_build_go_package_target_request", @@ -29563,7 +34523,10 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.go.goals.debug_goals.go_show_package_analysis", "pants.backend.go.goals.package_binary.package_go_binary", + "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint", + "pants.backend.go.lint.vet.rules.run_go_vet", "pants.backend.go.target_type_rules.generate_targets_from_go_mod", "pants.backend.go.target_type_rules.infer_go_third_party_package_dependencies", "pants.backend.go.util_rules.build_pkg_target.setup_build_go_package_target_request", @@ -29611,7 +34574,9 @@ "dependencies": ["builtins", "pants.backend.go.util_rules.go_mod"], "dependents": [ "pants.backend.experimental.codegen.protobuf.go", - "pants.backend.experimental.go" + "pants.backend.experimental.go", + "pants.backend.experimental.go.lint.golangci_lint", + "pants.backend.experimental.go.lint.vet" ], "documentation": "OwningGoMod(address: 'Address')", "is_union": false, @@ -29628,6 +34593,8 @@ "pants.backend.codegen.protobuf.go.rules.setup_build_go_package_request_for_protobuf", "pants.backend.codegen.protobuf.go.rules.setup_full_package_build_request", "pants.backend.go.goals.test.prepare_go_test_binary", + "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint", + "pants.backend.go.lint.vet.rules.run_go_vet", "pants.backend.go.target_type_rules.go_map_import_paths_by_module", "pants.backend.go.target_type_rules.infer_go_dependencies", "pants.backend.go.util_rules.build_opts.go_extract_build_options_from_target", @@ -29656,6 +34623,8 @@ "pants.backend.codegen.protobuf.go.rules.setup_build_go_package_request_for_protobuf", "pants.backend.codegen.protobuf.go.rules.setup_full_package_build_request", "pants.backend.go.goals.test.prepare_go_test_binary", + "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint", + "pants.backend.go.lint.vet.rules.run_go_vet", "pants.backend.go.target_type_rules.go_map_import_paths_by_module", "pants.backend.go.target_type_rules.infer_go_dependencies", "pants.backend.go.util_rules.build_opts.go_extract_build_options_from_target", @@ -29672,6 +34641,7 @@ "pants.backend.go.goals.generate.run_go_package_generators", "pants.backend.go.goals.test.run_go_tests", "pants.backend.go.lint.gofmt.rules.gofmt_fmt", + "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint", "pants.backend.go.util_rules.assembly.assemble_go_assembly_files", "pants.backend.go.util_rules.assembly.generate_go_assembly_symabisfile", "pants.backend.go.util_rules.build_opts.go_extract_build_options_from_target", @@ -29687,7 +34657,10 @@ "pants.backend.go.util_rules.sdk.setup_go_sdk_process" ], "dependencies": ["pants.backend.experimental.helm", "pants.core"], - "dependents": ["pants.backend.experimental.go"], + "dependents": [ + "pants.backend.experimental.go", + "pants.backend.experimental.go.lint.golangci_lint" + ], "documentation": "Path to the Go installation (the `GOROOT`).", "is_union": false, "module": "pants.backend.go.util_rules.goroot", @@ -29770,6 +34743,7 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.go.util_rules.import_config", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.go"], @@ -29832,6 +34806,7 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.go.util_rules.link", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.unions" ], @@ -29856,6 +34831,8 @@ "builtins", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.rust", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.go"], @@ -29875,6 +34852,7 @@ "builtins", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.go"], @@ -29944,6 +34922,7 @@ "union_type": null, "used_in_rules": [ "pants.backend.codegen.protobuf.go.rules.setup_go_protoc_plugin", + "pants.backend.go.lint.vet.rules.run_go_vet", "pants.backend.go.util_rules.assembly.assemble_go_assembly_files", "pants.backend.go.util_rules.assembly.generate_go_assembly_symabisfile", "pants.backend.go.util_rules.build_pkg.build_go_package", @@ -29966,6 +34945,7 @@ "builtins", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.go"], @@ -30054,6 +35034,7 @@ "pants.backend.experimental.java", "pants.backend.experimental.python.lint.ruff", "pants.backend.go.util_rules.tests_analysis", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.process" ], @@ -30077,6 +35058,7 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.go.util_rules.third_party_pkg", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.go"], @@ -30181,6 +35163,7 @@ "pants.backend.experimental.java", "pants.backend.experimental.python.lint.ruff", "pants.backend.go.util_rules.third_party_pkg", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.process" ], @@ -30241,7 +35224,10 @@ "pants.backend.go.util_rules.third_party_pkg.ThirdPartyPkgAnalysis": { "consumed_by_rules": [], "dependencies": ["pants.backend.go.util_rules.third_party_pkg"], - "dependents": ["pants.backend.experimental.go"], + "dependents": [ + "pants.backend.experimental.go", + "pants.backend.experimental.go.debug_goals" + ], "documentation": "All the info and files needed to build a third-party package.\n\nThe digest only contains the files for the package, with all prefixes stripped.", "is_union": false, "module": "pants.backend.go.util_rules.third_party_pkg", @@ -30253,6 +35239,7 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.go.goals.debug_goals.go_show_package_analysis", "pants.backend.go.goals.package_binary.package_go_binary", "pants.backend.go.target_type_rules.infer_go_third_party_package_dependencies", "pants.backend.go.util_rules.build_pkg_target.setup_build_go_package_target_request" @@ -30273,6 +35260,7 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.go.goals.debug_goals.go_show_package_analysis", "pants.backend.go.goals.package_binary.package_go_binary", "pants.backend.go.target_type_rules.infer_go_third_party_package_dependencies", "pants.backend.go.util_rules.build_pkg_target.setup_build_go_package_target_request" @@ -30294,6 +35282,232 @@ "union_type": "PackageFieldSet", "used_in_rules": [] }, + "pants.backend.helm.check.kubeconform.chart.KubeconformChartFieldSet": { + "consumed_by_rules": [ + "pants.backend.helm.check.kubeconform.chart.run_kubeconform_on_chart" + ], + "dependencies": [], + "dependents": ["pants.backend.experimental.helm.check.kubeconform"], + "documentation": "KubeconformChartFieldSet(address: 'Address', skip: 'KubeconformSkipField', ignore_sources: 'KubeconformIgnoreSourcesField', ignore_missing_schemas: 'KubeconformIgnoreMissingSchemasField', strict: 'KubeconformStrictField', reject_kinds: 'KubeconformRejectKindsField', skip_kinds: 'KubeconformSkipKindsField', kubernetes_version: 'KubeconformKubernetesVersionField', chart: 'HelmChartMetaSourceField', sources: 'HelmChartSourcesField', dependencies: 'HelmChartDependenciesField', description: 'DescriptionField', version: 'HelmChartVersionField')", + "is_union": false, + "module": "pants.backend.helm.check.kubeconform.chart", + "name": "KubeconformChartFieldSet", + "provider": "pants.backend.helm.check.kubeconform.chart", + "returned_by_rules": [], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.helm.check.kubeconform.chart.run_check_chart" + ] + }, + "pants.backend.helm.check.kubeconform.chart.KubeconformCheckChartRequest": { + "consumed_by_rules": [ + "pants.backend.helm.check.kubeconform.chart.run_check_chart" + ], + "dependencies": ["pants.core"], + "dependents": ["pants.backend.experimental.helm.check.kubeconform"], + "documentation": null, + "is_union": false, + "module": "pants.backend.helm.check.kubeconform.chart", + "name": "KubeconformCheckChartRequest", + "provider": "pants.backend.experimental.helm.check.kubeconform", + "returned_by_rules": [], + "union_members": [], + "union_type": "CheckRequest", + "used_in_rules": [] + }, + "pants.backend.helm.check.kubeconform.common.KubeconformSetup": { + "consumed_by_rules": [ + "pants.backend.helm.check.kubeconform.common.run_kubeconform" + ], + "dependencies": [ + "pants.backend.experimental.helm", + "pants.backend.experimental.javascript", + "pants.core" + ], + "dependents": ["pants.backend.experimental.helm.check.kubeconform"], + "documentation": "KubeconformSetup(binary: 'DownloadedExternalTool', env: 'FrozenDict[str, str]')", + "is_union": false, + "module": "pants.backend.helm.check.kubeconform.common", + "name": "KubeconformSetup", + "provider": "pants.backend.experimental.helm.check.kubeconform", + "returned_by_rules": [ + "pants.backend.helm.check.kubeconform.common.setup_kube_conform" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "pants.backend.helm.check.kubeconform.common.RunKubeconformRequest": { + "consumed_by_rules": [ + "pants.backend.helm.check.kubeconform.common.run_kubeconform" + ], + "dependencies": [], + "dependents": ["pants.backend.experimental.helm.check.kubeconform"], + "documentation": "RunKubeconformRequest(field_set: 'KubeconformFieldSet', rendered_files: 'RenderedHelmFiles')", + "is_union": false, + "module": "pants.backend.helm.check.kubeconform.common", + "name": "RunKubeconformRequest", + "provider": "pants.backend.helm.check.kubeconform.common", + "returned_by_rules": [], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.helm.check.kubeconform.chart.run_kubeconform_on_chart", + "pants.backend.helm.check.kubeconform.deployment.run_kubeconform_on_deployment" + ] + }, + "pants.backend.helm.check.kubeconform.deployment.KubeconformCheckDeploymentRequest": { + "consumed_by_rules": [ + "pants.backend.helm.check.kubeconform.deployment.run_check_deployment" + ], + "dependencies": ["pants.core"], + "dependents": ["pants.backend.experimental.helm.check.kubeconform"], + "documentation": null, + "is_union": false, + "module": "pants.backend.helm.check.kubeconform.deployment", + "name": "KubeconformCheckDeploymentRequest", + "provider": "pants.backend.experimental.helm.check.kubeconform", + "returned_by_rules": [], + "union_members": [], + "union_type": "CheckRequest", + "used_in_rules": [] + }, + "pants.backend.helm.check.kubeconform.deployment.KubeconformDeploymentFieldSet": { + "consumed_by_rules": [ + "pants.backend.helm.check.kubeconform.deployment.run_kubeconform_on_deployment" + ], + "dependencies": [], + "dependents": ["pants.backend.experimental.helm.check.kubeconform"], + "documentation": "KubeconformDeploymentFieldSet(address: 'Address', skip: 'KubeconformSkipField', ignore_sources: 'KubeconformIgnoreSourcesField', ignore_missing_schemas: 'KubeconformIgnoreMissingSchemasField', strict: 'KubeconformStrictField', reject_kinds: 'KubeconformRejectKindsField', skip_kinds: 'KubeconformSkipKindsField', kubernetes_version: 'KubeconformKubernetesVersionField', chart: 'HelmDeploymentChartField', description: 'DescriptionField', release_name: 'HelmDeploymentReleaseNameField', namespace: 'HelmDeploymentNamespaceField', create_namespace: 'HelmDeploymentCreateNamespaceField', sources: 'HelmDeploymentSourcesField', skip_crds: 'HelmDeploymentSkipCrdsField', no_hooks: 'HelmDeploymentNoHooksField', dependencies: 'HelmDeploymentDependenciesField', values: 'HelmDeploymentValuesField', post_renderers: 'HelmDeploymentPostRenderersField', enable_dns: 'HelmDeploymentEnableDNSField')", + "is_union": false, + "module": "pants.backend.helm.check.kubeconform.deployment", + "name": "KubeconformDeploymentFieldSet", + "provider": "pants.backend.helm.check.kubeconform.deployment", + "returned_by_rules": [], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.helm.check.kubeconform.deployment.run_check_deployment" + ] + }, + "pants.backend.helm.check.kubeconform.extra_fields.KubeconformIgnoreMissingSchemasField": { + "consumed_by_rules": [], + "dependencies": ["pants.engine.target"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.helm.check.kubeconform.extra_fields", + "name": "KubeconformIgnoreMissingSchemasField", + "provider": "pants.backend.experimental.helm.check.kubeconform", + "returned_by_rules": [], + "union_members": [], + "union_type": "PluginField", + "used_in_rules": [] + }, + "pants.backend.helm.check.kubeconform.extra_fields.KubeconformIgnoreSourcesField": { + "consumed_by_rules": [], + "dependencies": ["pants.engine.target"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.helm.check.kubeconform.extra_fields", + "name": "KubeconformIgnoreSourcesField", + "provider": "pants.backend.experimental.helm.check.kubeconform", + "returned_by_rules": [], + "union_members": [], + "union_type": "PluginField", + "used_in_rules": [] + }, + "pants.backend.helm.check.kubeconform.extra_fields.KubeconformKubernetesVersionField": { + "consumed_by_rules": [], + "dependencies": ["pants.engine.target"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.helm.check.kubeconform.extra_fields", + "name": "KubeconformKubernetesVersionField", + "provider": "pants.backend.experimental.helm.check.kubeconform", + "returned_by_rules": [], + "union_members": [], + "union_type": "PluginField", + "used_in_rules": [] + }, + "pants.backend.helm.check.kubeconform.extra_fields.KubeconformRejectKindsField": { + "consumed_by_rules": [], + "dependencies": ["pants.engine.target"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.helm.check.kubeconform.extra_fields", + "name": "KubeconformRejectKindsField", + "provider": "pants.backend.experimental.helm.check.kubeconform", + "returned_by_rules": [], + "union_members": [], + "union_type": "PluginField", + "used_in_rules": [] + }, + "pants.backend.helm.check.kubeconform.extra_fields.KubeconformSkipField": { + "consumed_by_rules": [], + "dependencies": ["pants.engine.target"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.helm.check.kubeconform.extra_fields", + "name": "KubeconformSkipField", + "provider": "pants.backend.experimental.helm.check.kubeconform", + "returned_by_rules": [], + "union_members": [], + "union_type": "PluginField", + "used_in_rules": [] + }, + "pants.backend.helm.check.kubeconform.extra_fields.KubeconformSkipKindsField": { + "consumed_by_rules": [], + "dependencies": ["pants.engine.target"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.helm.check.kubeconform.extra_fields", + "name": "KubeconformSkipKindsField", + "provider": "pants.backend.experimental.helm.check.kubeconform", + "returned_by_rules": [], + "union_members": [], + "union_type": "PluginField", + "used_in_rules": [] + }, + "pants.backend.helm.check.kubeconform.extra_fields.KubeconformStrictField": { + "consumed_by_rules": [], + "dependencies": ["pants.engine.target"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.helm.check.kubeconform.extra_fields", + "name": "KubeconformStrictField", + "provider": "pants.backend.experimental.helm.check.kubeconform", + "returned_by_rules": [], + "union_members": [], + "union_type": "PluginField", + "used_in_rules": [] + }, + "pants.backend.helm.check.kubeconform.subsystem.KubeconformSubsystem": { + "consumed_by_rules": [ + "pants.backend.helm.check.kubeconform.chart.run_check_chart", + "pants.backend.helm.check.kubeconform.common.run_kubeconform", + "pants.backend.helm.check.kubeconform.common.setup_kube_conform", + "pants.backend.helm.check.kubeconform.deployment.run_check_deployment" + ], + "dependencies": ["pants.option.scope"], + "dependents": ["pants.backend.experimental.helm.check.kubeconform"], + "documentation": null, + "is_union": false, + "module": "pants.backend.helm.check.kubeconform.subsystem", + "name": "KubeconformSubsystem", + "provider": "pants.backend.experimental.helm.check.kubeconform", + "returned_by_rules": ["construct_scope_kubeconform"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, "pants.backend.helm.dependency_inference.chart.FirstPartyHelmChartMapping": { "consumed_by_rules": [ "pants.backend.helm.dependency_inference.chart.infer_chart_dependencies_via_metadata" @@ -30615,6 +35829,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.java", "pants.backend.helm.resolve.fetch", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.helm"], @@ -30632,6 +35847,7 @@ }, "pants.backend.helm.subsystems.helm.HelmSubsystem": { "consumed_by_rules": [ + "pants.backend.helm.check.kubeconform.common.setup_kube_conform", "pants.backend.helm.dependency_inference.chart.infer_chart_dependencies_via_metadata", "pants.backend.helm.goals.deploy.run_helm_deploy", "pants.backend.helm.goals.lint.run_helm_lint", @@ -30644,7 +35860,10 @@ "pants.backend.helm.util_rules.tool.setup_helm" ], "dependencies": ["pants.option.scope"], - "dependents": ["pants.backend.experimental.helm"], + "dependents": [ + "pants.backend.experimental.helm", + "pants.backend.experimental.helm.check.kubeconform" + ], "documentation": null, "is_union": false, "module": "pants.backend.helm.subsystems.helm", @@ -30697,6 +35916,7 @@ "pants.backend.experimental.java", "pants.backend.experimental.python.lint.ruff", "pants.backend.helm.subsystems.k8s_parser", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.process" ], @@ -30724,6 +35944,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.java", "pants.backend.python", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.helm"], @@ -30747,17 +35968,26 @@ "pants.backend.experimental.adhoc", "pants.backend.experimental.go", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.kotlin", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.openapi.lint.spectral", "pants.backend.experimental.python.packaging.pyoxidizer", + "pants.backend.experimental.rust", "pants.backend.experimental.scala", "pants.backend.experimental.terraform", "pants.backend.python", + "pants.backend.python.providers.experimental.pyenv", + "pants.backend.python.providers.experimental.pyenv.custom_install", "pants.backend.shell", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.process" ], - "dependents": ["pants.backend.experimental.helm"], + "dependents": [ + "pants.backend.experimental.helm", + "pants.backend.experimental.helm.check.kubeconform" + ], "documentation": "HelmPostRenderer(*, exe: 'str', digest: 'Digest', description_of_origin: 'str', env: 'Mapping[str, str] | None' = None, immutable_input_digests: 'Mapping[str, Digest] | None' = None, append_only_caches: 'Mapping[str, str] | None' = None) -> 'None'", "is_union": false, "module": "pants.backend.helm.subsystems.post_renderer", @@ -30768,7 +35998,10 @@ ], "union_members": [], "union_type": null, - "used_in_rules": ["pants.backend.helm.goals.deploy.run_helm_deploy"] + "used_in_rules": [ + "pants.backend.helm.check.kubeconform.deployment.run_kubeconform_on_deployment", + "pants.backend.helm.goals.deploy.run_helm_deploy" + ] }, "pants.backend.helm.subsystems.post_renderer.HelmPostRendererSubsystem": { "consumed_by_rules": [ @@ -30819,6 +36052,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.java", "pants.backend.python", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.helm"], @@ -30994,6 +36228,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.java", "pants.backend.helm.test.unittest", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.helm"], @@ -31057,6 +36292,7 @@ "pants.backend.experimental.java", "pants.backend.helm.util_rules.chart", "pants.backend.helm.util_rules.chart_metadata", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.helm"], @@ -31114,6 +36350,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.java", "pants.backend.helm.target_types", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.fs" ], @@ -31170,7 +36407,10 @@ "returned_by_rules": [], "union_members": [], "union_type": null, - "used_in_rules": ["pants.backend.helm.goals.deploy.run_helm_deploy"] + "used_in_rules": [ + "pants.backend.helm.check.kubeconform.deployment.run_kubeconform_on_deployment", + "pants.backend.helm.goals.deploy.run_helm_deploy" + ] }, "pants.backend.helm.util_rules.renderer.HelmDeploymentRequest": { "consumed_by_rules": [ @@ -31187,10 +36427,29 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.helm.check.kubeconform.deployment.run_kubeconform_on_deployment", "pants.backend.helm.dependency_inference.deployment.analyse_deployment", "pants.backend.helm.goals.deploy.run_helm_deploy" ] }, + "pants.backend.helm.util_rules.renderer.RenderHelmChartRequest": { + "consumed_by_rules": [ + "pants.backend.helm.util_rules.renderer.render_helm_chart" + ], + "dependencies": [], + "dependents": ["pants.backend.experimental.helm"], + "documentation": "RenderHelmChartRequest(field_set: 'HelmChartFieldSet', release_name: 'str | None' = None)", + "is_union": false, + "module": "pants.backend.helm.util_rules.renderer", + "name": "RenderHelmChartRequest", + "provider": "pants.backend.helm.util_rules.renderer", + "returned_by_rules": [], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.helm.check.kubeconform.chart.run_kubeconform_on_chart" + ] + }, "pants.backend.helm.util_rules.renderer.RenderedHelmFiles": { "consumed_by_rules": [], "dependencies": [ @@ -31198,9 +36457,13 @@ "pants.backend.experimental.go", "pants.backend.experimental.java", "pants.backend.helm.util_rules.renderer", + "pants.backend.url_handlers.s3", "pants.core" ], - "dependents": ["pants.backend.experimental.helm"], + "dependents": [ + "pants.backend.experimental.helm", + "pants.backend.experimental.helm.check.kubeconform" + ], "documentation": "RenderedHelmFiles(address: 'Address', chart: 'HelmChart', snapshot: 'Snapshot', post_processed: 'bool')", "is_union": false, "module": "pants.backend.helm.util_rules.renderer", @@ -31213,6 +36476,8 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.helm.check.kubeconform.chart.run_kubeconform_on_chart", + "pants.backend.helm.check.kubeconform.deployment.run_kubeconform_on_deployment", "pants.backend.helm.dependency_inference.deployment.analyse_deployment" ] }, @@ -31225,9 +36490,10 @@ "builtins", "pants.backend.experimental.go", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.helm.util_rules.renderer", - "pants.core", - "pants.engine.env_vars" + "pants.backend.url_handlers.s3", + "pants.core" ], "dependents": ["pants.backend.experimental.helm"], "documentation": "Intermediate representation of a `HelmProcess` that will produce a fully rendered set of\nmanifests from a given chart.\n\nThe encapsulated `process` will be side-effecting dependening on the `cmd` that was originally requested.\n\nThis is meant to only be used internally by this module.", @@ -31292,6 +36558,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.java", "pants.backend.helm.util_rules.sources", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.helm"], @@ -31341,7 +36608,7 @@ "consumed_by_rules": [ "pants.backend.helm.util_rules.tool.download_external_helm_plugin" ], - "dependencies": ["pants.engine.platform"], + "dependencies": ["pants.backend.experimental.javascript"], "dependents": ["pants.backend.experimental.helm"], "documentation": "Helper class to create a download request for an external Helm plugin.", "is_union": false, @@ -31361,9 +36628,9 @@ "builtins", "pants.backend.experimental.go", "pants.backend.experimental.java", - "pants.core", - "pants.engine.env_vars", - "pants.engine.platform" + "pants.backend.experimental.javascript", + "pants.backend.url_handlers.s3", + "pants.core" ], "dependents": ["pants.backend.experimental.helm"], "documentation": "HelmBinary(path: 'str', *, helm_env: 'Mapping[str, str]', local_env: 'Mapping[str, str]', immutable_input_digests: 'Mapping[str, Digest]') -> 'None'", @@ -31382,6 +36649,7 @@ "builtins", "pants.backend.experimental.go", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.fs" ], @@ -31588,17 +36856,21 @@ ], "dependencies": [ "builtins", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.scrooge.java", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java.lint.google_java_format", "pants.backend.experimental.kotlin", "pants.backend.experimental.kotlin.lint.ktlint", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.python.lint.ruff", "pants.backend.experimental.scala", "pants.backend.experimental.scala.lint.scalafmt", "pants.backend.java.dependency_inference.java_parser", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.process" ], @@ -31621,15 +36893,19 @@ ], "dependencies": [ "builtins", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.scrooge.java", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java.lint.google_java_format", "pants.backend.experimental.kotlin", "pants.backend.experimental.kotlin.lint.ktlint", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.scala", "pants.backend.experimental.scala.lint.scalafmt", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.java"], @@ -31779,7 +37055,10 @@ "pants.backend.java.dependency_inference.types.JavaSourceDependencyAnalysis": { "consumed_by_rules": [], "dependencies": ["pants.engine.fs", "pants.option.global_options"], - "dependents": ["pants.backend.experimental.java"], + "dependents": [ + "pants.backend.experimental.java", + "pants.backend.experimental.java.debug_goals" + ], "documentation": "JavaSourceDependencyAnalysis(declared_package: 'str | None', imports: 'Sequence[JavaImport]', top_level_types: 'Sequence[str]', consumed_types: 'Sequence[str]', export_types: 'Sequence[str]')", "is_union": false, "module": "pants.backend.java.dependency_inference.types", @@ -31792,7 +37071,8 @@ "union_type": null, "used_in_rules": [ "pants.backend.java.dependency_inference.rules.infer_java_dependencies_and_exports_via_source_analysis", - "pants.backend.java.dependency_inference.symbol_mapper.map_first_party_java_targets_to_symbols" + "pants.backend.java.dependency_inference.symbol_mapper.map_first_party_java_targets_to_symbols", + "pants.backend.java.goals.debug_goals.dump_java_source_analysis" ] }, "pants.backend.java.goals.check.JavacCheckRequest": { @@ -31809,6 +37089,41 @@ "union_type": "CheckRequest", "used_in_rules": [] }, + "pants.backend.java.goals.debug_goals.DumpJavaSourceAnalysis": { + "consumed_by_rules": [], + "dependencies": [ + "pants.backend.experimental.go", + "pants.backend.experimental.java", + "pants.core", + "pants.engine.console" + ], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.java.goals.debug_goals", + "name": "DumpJavaSourceAnalysis", + "provider": "pants.backend.experimental.java.debug_goals", + "returned_by_rules": [ + "pants.backend.java.goals.debug_goals.dump_java_source_analysis" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "pants.backend.java.goals.debug_goals.DumpJavaSourceAnalysisSubsystem": { + "consumed_by_rules": [], + "dependencies": ["pants.option.scope"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.java.goals.debug_goals", + "name": "DumpJavaSourceAnalysisSubsystem", + "provider": "pants.backend.experimental.java.debug_goals", + "returned_by_rules": ["construct_scope_java_dump_source_analysis"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, "pants.backend.java.goals.tailor.PutativeJavaTargetsRequest": { "consumed_by_rules": [ "pants.backend.java.goals.tailor.find_putative_targets" @@ -31964,12 +37279,12 @@ "pants.backend.javascript.dependency_inference.rules.infer_js_source_dependencies" ], "dependencies": ["pants.engine.target"], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": null, "is_union": false, "module": "pants.backend.javascript.dependency_inference.rules", "name": "InferJSDependenciesRequest", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": [], "union_members": [], "union_type": "InferDependenciesRequest", @@ -31980,12 +37295,12 @@ "pants.backend.javascript.dependency_inference.rules.infer_node_package_dependencies" ], "dependencies": ["pants.engine.target"], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": null, "is_union": false, "module": "pants.backend.javascript.dependency_inference.rules", "name": "InferNodePackageDependenciesRequest", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": [], "union_members": [], "union_type": "InferDependenciesRequest", @@ -31994,12 +37309,12 @@ "pants.backend.javascript.dependency_inference.rules.NodePackageCandidateMap": { "consumed_by_rules": [], "dependencies": ["pants.backend.javascript.dependency_inference.rules"], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": null, "is_union": false, "module": "pants.backend.javascript.dependency_inference.rules", "name": "NodePackageCandidateMap", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": [ "pants.backend.javascript.dependency_inference.rules.map_candidate_node_packages" ], @@ -32014,7 +37329,7 @@ "pants.backend.javascript.dependency_inference.rules.map_candidate_node_packages" ], "dependencies": [], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": "RequestNodePackagesCandidateMap(address: 'Address')", "is_union": false, "module": "pants.backend.javascript.dependency_inference.rules", @@ -32027,6 +37342,130 @@ "pants.backend.javascript.dependency_inference.rules.infer_js_source_dependencies" ] }, + "pants.backend.javascript.goals.lockfile.GeneratePackageLockJsonFile": { + "consumed_by_rules": [ + "pants.backend.javascript.goals.lockfile.generate_lockfile_from_package_jsons" + ], + "dependencies": ["pants.core"], + "dependents": ["pants.backend.experimental.javascript"], + "documentation": "GeneratePackageLockJsonFile(resolve_name: 'str', lockfile_dest: 'str', diff: 'bool', project: 'NodeJSProject')", + "is_union": false, + "module": "pants.backend.javascript.goals.lockfile", + "name": "GeneratePackageLockJsonFile", + "provider": "pants.backend.experimental.javascript", + "returned_by_rules": [], + "union_members": [], + "union_type": "GenerateLockfile", + "used_in_rules": [] + }, + "pants.backend.javascript.goals.lockfile.KnownPackageJsonUserResolveNamesRequest": { + "consumed_by_rules": [ + "pants.backend.javascript.goals.lockfile.determine_package_json_user_resolves" + ], + "dependencies": ["pants.core"], + "dependents": ["pants.backend.experimental.javascript"], + "documentation": null, + "is_union": false, + "module": "pants.backend.javascript.goals.lockfile", + "name": "KnownPackageJsonUserResolveNamesRequest", + "provider": "pants.backend.experimental.javascript", + "returned_by_rules": [], + "union_members": [], + "union_type": "KnownUserResolveNamesRequest", + "used_in_rules": [] + }, + "pants.backend.javascript.goals.lockfile.RequestedPackageJsonUserResolveNames": { + "consumed_by_rules": [ + "pants.backend.javascript.goals.lockfile.setup_user_lockfile_requests" + ], + "dependencies": ["pants.core"], + "dependents": ["pants.backend.experimental.javascript"], + "documentation": null, + "is_union": false, + "module": "pants.backend.javascript.goals.lockfile", + "name": "RequestedPackageJsonUserResolveNames", + "provider": "pants.backend.experimental.javascript", + "returned_by_rules": [], + "union_members": [], + "union_type": "RequestedUserResolveNames", + "used_in_rules": [] + }, + "pants.backend.javascript.goals.tailor.PutativeJSTargetsRequest": { + "consumed_by_rules": [ + "pants.backend.javascript.goals.tailor.find_putative_js_targets" + ], + "dependencies": ["pants.core"], + "dependents": ["pants.backend.experimental.javascript"], + "documentation": "PutativeJSTargetsRequest(dirs: 'tuple[str, ...]')", + "is_union": false, + "module": "pants.backend.javascript.goals.tailor", + "name": "PutativeJSTargetsRequest", + "provider": "pants.backend.experimental.javascript", + "returned_by_rules": [], + "union_members": [], + "union_type": "PutativeTargetsRequest", + "used_in_rules": [] + }, + "pants.backend.javascript.goals.tailor.PutativePackageJsonTargetsRequest": { + "consumed_by_rules": [ + "pants.backend.javascript.goals.tailor.find_putative_package_json_targets" + ], + "dependencies": ["pants.core"], + "dependents": ["pants.backend.experimental.javascript"], + "documentation": "PutativePackageJsonTargetsRequest(dirs: 'tuple[str, ...]')", + "is_union": false, + "module": "pants.backend.javascript.goals.tailor", + "name": "PutativePackageJsonTargetsRequest", + "provider": "pants.backend.experimental.javascript", + "returned_by_rules": [], + "union_members": [], + "union_type": "PutativeTargetsRequest", + "used_in_rules": [] + }, + "pants.backend.javascript.goals.test.JSCoverageDataCollection": { + "consumed_by_rules": [ + "pants.backend.javascript.goals.test.collect_coverage_reports" + ], + "dependencies": ["pants.core"], + "dependents": ["pants.backend.experimental.javascript"], + "documentation": null, + "is_union": false, + "module": "pants.backend.javascript.goals.test", + "name": "JSCoverageDataCollection", + "provider": "pants.backend.experimental.javascript", + "returned_by_rules": [], + "union_members": [], + "union_type": "CoverageDataCollection", + "used_in_rules": [] + }, + "pants.backend.javascript.goals.test.JSTestFieldSet": { + "consumed_by_rules": [], + "dependencies": ["pants.core"], + "dependents": [], + "documentation": "JSTestFieldSet(address: 'Address', sources: 'SourcesField', batch_compatibility_tag: 'JSTestBatchCompatibilityTagField', source: 'JSTestSourceField', dependencies: 'Dependencies', timeout: 'JSTestTimeoutField', extra_env_vars: 'JSTestExtraEnvVarsField')", + "is_union": false, + "module": "pants.backend.javascript.goals.test", + "name": "JSTestFieldSet", + "provider": "pants.backend.experimental.javascript", + "returned_by_rules": [], + "union_members": [], + "union_type": "TestFieldSet", + "used_in_rules": [] + }, + "pants.backend.javascript.goals.test.JSTestRequest": { + "consumed_by_rules": [], + "dependencies": ["pants.core"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.javascript.goals.test", + "name": "JSTestRequest", + "provider": "pants.backend.experimental.javascript", + "returned_by_rules": [], + "union_members": [], + "union_type": "TestRequest", + "used_in_rules": [] + }, "pants.backend.javascript.install_node_package.InstalledNodePackage": { "consumed_by_rules": [], "dependencies": [ @@ -32035,21 +37474,26 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.javascript.install_node_package", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.unions" ], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": [ + "pants.backend.experimental.javascript", + "pants.backend.experimental.openapi.lint.spectral" + ], "documentation": "InstalledNodePackage(project_env: 'NodeJsProjectEnvironment', digest: 'Digest')", "is_union": false, "module": "pants.backend.javascript.install_node_package", "name": "InstalledNodePackage", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": [ "pants.backend.javascript.install_node_package.install_node_packages_for_address" ], "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.javascript.goals.test.run_javascript_tests", "pants.backend.javascript.install_node_package.add_sources_to_installed_node_package", "pants.backend.javascript.subsystems.nodejs_tool.prepare_tool_process" ] @@ -32060,7 +37504,7 @@ "pants.backend.javascript.install_node_package.install_node_packages_for_address" ], "dependencies": [], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": "InstalledNodePackageRequest(address: 'Address')", "is_union": false, "module": "pants.backend.javascript.install_node_package", @@ -32070,8 +37514,12 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.javascript.goals.test.run_javascript_tests", "pants.backend.javascript.install_node_package.add_sources_to_installed_node_package", "pants.backend.javascript.install_node_package.install_node_packages_for_address", + "pants.backend.javascript.package.rules.pack_node_package_into_tgz_for_publication", + "pants.backend.javascript.package.rules.run_node_build_script", + "pants.backend.javascript.run.rules.run_node_build_script", "pants.backend.javascript.subsystems.nodejs_tool.prepare_tool_process" ] }, @@ -32083,35 +37531,85 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.javascript.install_node_package", + "pants.backend.url_handlers.s3", "pants.core" ], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": "InstalledNodePackageWithSource(project_env: 'NodeJsProjectEnvironment', digest: 'Digest')", "is_union": false, "module": "pants.backend.javascript.install_node_package", "name": "InstalledNodePackageWithSource", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": [ "pants.backend.javascript.install_node_package.add_sources_to_installed_node_package" ], "union_members": [], "union_type": null, "used_in_rules": [ - "pants.backend.javascript.install_node_package.install_node_packages_for_address" + "pants.backend.javascript.install_node_package.install_node_packages_for_address", + "pants.backend.javascript.package.rules.pack_node_package_into_tgz_for_publication", + "pants.backend.javascript.package.rules.run_node_build_script", + "pants.backend.javascript.run.rules.run_node_build_script" ] }, + "pants.backend.javascript.lint.prettier.rules.PrettierFmtRequest": { + "consumed_by_rules": [], + "dependencies": ["pants.core"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.javascript.lint.prettier.rules", + "name": "PrettierFmtRequest", + "provider": "pants.backend.experimental.javascript.lint.prettier", + "returned_by_rules": [], + "union_members": [], + "union_type": "AbstractLintRequest", + "used_in_rules": [] + }, + "pants.backend.javascript.lint.prettier.skip_field.SkipPrettierField": { + "consumed_by_rules": [], + "dependencies": ["pants.engine.target"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.javascript.lint.prettier.skip_field", + "name": "SkipPrettierField", + "provider": "pants.backend.experimental.javascript.lint.prettier", + "returned_by_rules": [], + "union_members": [], + "union_type": "PluginField", + "used_in_rules": [] + }, + "pants.backend.javascript.lint.prettier.subsystem.Prettier": { + "consumed_by_rules": [ + "pants.backend.javascript.lint.prettier.rules.prettier_fmt", + "pants.core.util_rules.partitions._single_partition_file_rules.partitioner" + ], + "dependencies": ["pants.option.scope"], + "dependents": ["pants.backend.experimental.javascript.lint.prettier"], + "documentation": null, + "is_union": false, + "module": "pants.backend.javascript.lint.prettier.subsystem", + "name": "Prettier", + "provider": "pants.backend.experimental.javascript.lint.prettier", + "returned_by_rules": ["construct_scope_prettier"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, "pants.backend.javascript.nodejs_project.AllNodeJSProjects": { "consumed_by_rules": [ + "pants.backend.javascript.goals.lockfile.determine_package_json_user_resolves", "pants.backend.javascript.resolve.resolve_for_package", "pants.backend.javascript.resolve.resolve_to_projects" ], "dependencies": ["pants.core"], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": null, "is_union": false, "module": "pants.backend.javascript.nodejs_project", "name": "AllNodeJSProjects", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": [ "pants.backend.javascript.nodejs_project.find_node_js_projects" ], @@ -32124,7 +37622,7 @@ "pants.backend.javascript.nodejs_project_environment.get_nodejs_environment" ], "dependencies": [], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": "NodeJSProjectEnvironmentRequest(address: 'Address')", "is_union": false, "module": "pants.backend.javascript.nodejs_project_environment", @@ -32140,12 +37638,12 @@ "pants.backend.javascript.nodejs_project_environment.NodeJsProjectEnvironment": { "consumed_by_rules": [], "dependencies": ["pants.backend.javascript.nodejs_project_environment"], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": "NodeJsProjectEnvironment(resolve: 'ChosenNodeResolve', package: 'OwningNodePackage | None' = None)", "is_union": false, "module": "pants.backend.javascript.nodejs_project_environment", "name": "NodeJsProjectEnvironment", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": [ "pants.backend.javascript.nodejs_project_environment.get_nodejs_environment" ], @@ -32160,7 +37658,7 @@ "pants.backend.javascript.nodejs_project_environment.setup_nodejs_project_environment_process" ], "dependencies": [], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": "NodeJsProjectEnvironmentProcess(env: 'NodeJsProjectEnvironment', args: 'Iterable[str]', description: 'str', level: 'LogLevel' = , input_digest: 'Digest' = Digest('e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', 0), output_files: 'tuple[str, ...]' = (), output_directories: 'tuple[str, ...]' = (), per_package_caches: 'FrozenDict[str, str]' = , timeout_seconds: 'int | None' = None, extra_env: 'FrozenDict[str, str]' = )", "is_union": false, "module": "pants.backend.javascript.nodejs_project_environment", @@ -32170,10 +37668,104 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.javascript.goals.lockfile.generate_lockfile_from_package_jsons", + "pants.backend.javascript.goals.test.run_javascript_tests", "pants.backend.javascript.install_node_package.install_node_packages_for_address", + "pants.backend.javascript.package.rules.pack_node_package_into_tgz_for_publication", + "pants.backend.javascript.package.rules.run_node_build_script", + "pants.backend.javascript.run.rules.run_node_build_script", "pants.backend.javascript.subsystems.nodejs_tool.prepare_tool_process" ] }, + "pants.backend.javascript.package.rules.GenerateResourcesFromNodeBuildScriptRequest": { + "consumed_by_rules": [ + "pants.backend.javascript.package.rules.generate_resources_from_node_build_script" + ], + "dependencies": ["pants.engine.target"], + "dependents": ["pants.backend.experimental.javascript"], + "documentation": "GenerateResourcesFromNodeBuildScriptRequest(protocol_sources: 'Snapshot', protocol_target: 'Target')", + "is_union": false, + "module": "pants.backend.javascript.package.rules", + "name": "GenerateResourcesFromNodeBuildScriptRequest", + "provider": "pants.backend.experimental.javascript", + "returned_by_rules": [], + "union_members": [], + "union_type": "GenerateSourcesRequest", + "used_in_rules": [] + }, + "pants.backend.javascript.package.rules.NodeBuildScriptPackageFieldSet": { + "consumed_by_rules": [ + "pants.backend.javascript.package.rules.generate_package_artifact_from_node_build_script" + ], + "dependencies": ["pants.core"], + "dependents": ["pants.backend.experimental.javascript"], + "documentation": "NodeBuildScriptPackageFieldSet(address: 'Address', source: 'NodeBuildScriptSourcesField', output_path: 'OutputPathField', script_name: 'NodeBuildScriptEntryPointField', output_directories: 'NodeBuildScriptOutputDirectoriesField', output_files: 'NodeBuildScriptOutputFilesField', extra_caches: 'NodeBuildScriptExtraCaches', extra_env_vars: 'NodeBuildScriptExtraEnvVarsField')", + "is_union": false, + "module": "pants.backend.javascript.package.rules", + "name": "NodeBuildScriptPackageFieldSet", + "provider": "pants.backend.experimental.javascript", + "returned_by_rules": [], + "union_members": [], + "union_type": "PackageFieldSet", + "used_in_rules": [] + }, + "pants.backend.javascript.package.rules.NodeBuildScriptRequest": { + "consumed_by_rules": [ + "pants.backend.javascript.package.rules.run_node_build_script" + ], + "dependencies": [], + "dependents": ["pants.backend.experimental.javascript"], + "documentation": "NodeBuildScriptRequest(address: 'Address', output_files: 'tuple[str, ...]', output_directories: 'tuple[str, ...]', script_name: 'str', extra_caches: 'tuple[str, ...]', extra_env_vars: 'tuple[str, ...]')", + "is_union": false, + "module": "pants.backend.javascript.package.rules", + "name": "NodeBuildScriptRequest", + "provider": "pants.backend.javascript.package.rules", + "returned_by_rules": [], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.javascript.package.rules.generate_package_artifact_from_node_build_script", + "pants.backend.javascript.package.rules.generate_resources_from_node_build_script" + ] + }, + "pants.backend.javascript.package.rules.NodeBuildScriptResult": { + "consumed_by_rules": [], + "dependencies": [ + "pants.backend.experimental.helm", + "pants.backend.javascript.package.rules" + ], + "dependents": ["pants.backend.experimental.javascript"], + "documentation": "NodeBuildScriptResult(process: 'ProcessResult', project_directory: 'str')", + "is_union": false, + "module": "pants.backend.javascript.package.rules", + "name": "NodeBuildScriptResult", + "provider": "pants.backend.experimental.javascript", + "returned_by_rules": [ + "pants.backend.javascript.package.rules.run_node_build_script" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.javascript.package.rules.generate_package_artifact_from_node_build_script", + "pants.backend.javascript.package.rules.generate_resources_from_node_build_script" + ] + }, + "pants.backend.javascript.package.rules.NodePackageTarFieldSet": { + "consumed_by_rules": [ + "pants.backend.javascript.package.rules.pack_node_package_into_tgz_for_publication" + ], + "dependencies": ["pants.core"], + "dependents": ["pants.backend.experimental.javascript"], + "documentation": "NodePackageTarFieldSet(address: 'Address', source: 'PackageJsonSourceField', output_path: 'OutputPathField')", + "is_union": false, + "module": "pants.backend.javascript.package.rules", + "name": "NodePackageTarFieldSet", + "provider": "pants.backend.experimental.javascript", + "returned_by_rules": [], + "union_members": [], + "union_type": "PackageFieldSet", + "used_in_rules": [] + }, "pants.backend.javascript.package_json.AllPackageJson": { "consumed_by_rules": [ "pants.backend.javascript.nodejs_project.find_node_js_projects", @@ -32181,12 +37773,12 @@ "pants.backend.javascript.package_json.pnpm_workspace_files" ], "dependencies": ["pants.backend.experimental.go"], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": null, "is_union": false, "module": "pants.backend.javascript.package_json", "name": "AllPackageJson", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": [ "pants.backend.javascript.package_json.all_package_json" ], @@ -32199,12 +37791,12 @@ "pants.backend.javascript.package_json.generate_node_package_targets" ], "dependencies": [], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": "Used to not invalidate all generated node package targets when any package.json contents are\nchanged.", "is_union": false, "module": "pants.backend.javascript.package_json", "name": "AllPackageJsonNames", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": [ "pants.backend.javascript.package_json.all_package_json_names" ], @@ -32218,12 +37810,12 @@ "pants.backend.javascript.resolve.resolve_to_first_party_node_package" ], "dependencies": ["pants.backend.experimental.go"], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": null, "is_union": false, "module": "pants.backend.javascript.package_json", "name": "FirstPartyNodePackageTargets", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": [ "pants.backend.javascript.package_json.all_first_party_node_package_targets" ], @@ -32236,12 +37828,12 @@ "pants.backend.javascript.package_json.generate_node_package_targets" ], "dependencies": ["pants.engine.target"], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": null, "is_union": false, "module": "pants.backend.javascript.package_json", "name": "GenerateNodePackageTargets", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": [], "union_members": [], "union_type": "GenerateTargetsRequest", @@ -32254,12 +37846,12 @@ "pants.backend.javascript.package_json", "pants.core" ], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": "OwningNodePackage(target: 'Target | None' = None, third_party: 'tuple[Target, ...]' = ())", "is_union": false, "module": "pants.backend.javascript.package_json", "name": "OwningNodePackage", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": [ "pants.backend.javascript.package_json.find_owning_package" ], @@ -32268,6 +37860,7 @@ "used_in_rules": [ "pants.backend.javascript.dependency_inference.rules.infer_js_source_dependencies", "pants.backend.javascript.dependency_inference.rules.map_candidate_node_packages", + "pants.backend.javascript.goals.test.partition_nodejs_tests", "pants.backend.javascript.nodejs_project_environment.get_nodejs_environment", "pants.backend.javascript.resolve.resolve_for_package" ] @@ -32277,7 +37870,7 @@ "pants.backend.javascript.package_json.find_owning_package" ], "dependencies": [], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": "OwningNodePackageRequest(address: 'Address')", "is_union": false, "module": "pants.backend.javascript.package_json", @@ -32289,6 +37882,7 @@ "used_in_rules": [ "pants.backend.javascript.dependency_inference.rules.infer_js_source_dependencies", "pants.backend.javascript.dependency_inference.rules.map_candidate_node_packages", + "pants.backend.javascript.goals.test.partition_nodejs_tests", "pants.backend.javascript.nodejs_project_environment.get_nodejs_environment", "pants.backend.javascript.resolve.resolve_for_package" ] @@ -32300,12 +37894,12 @@ "pants.backend.javascript.package_json", "pants.engine.fs" ], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": "PackageJson(content: 'FrozenDict[str, Any]', name: 'str', version: 'str | None', snapshot: 'Snapshot', workspaces: 'tuple[str, ...]' = (), module: \"Literal['commonjs', 'module'] | None\" = None, dependencies: 'FrozenDict[str, str]' = , package_manager: 'str | None' = None)", "is_union": false, "module": "pants.backend.javascript.package_json", "name": "PackageJson", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": [ "pants.backend.javascript.package_json.package_json_for_source", "pants.backend.javascript.package_json.parse_package_json" @@ -32322,12 +37916,12 @@ "pants.backend.javascript.package_json.PackageJsonEntryPoints": { "consumed_by_rules": [], "dependencies": ["pants.backend.javascript.package_json"], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": "See https://nodejs.org/api/packages.html#package-entry-points and\nhttps://docs.npmjs.com/cli/v9/configuring-npm/package-json#browser.", "is_union": false, "module": "pants.backend.javascript.package_json", "name": "PackageJsonEntryPoints", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": [ "pants.backend.javascript.package_json.script_entrypoints_for_source" ], @@ -32340,12 +37934,12 @@ "pants.backend.javascript.package_json.PackageJsonForGlobs": { "consumed_by_rules": [], "dependencies": ["builtins", "pants.engine.fs"], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": null, "is_union": false, "module": "pants.backend.javascript.package_json", "name": "PackageJsonForGlobs", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": [ "pants.backend.javascript.package_json.read_package_jsons" ], @@ -32361,12 +37955,12 @@ "pants.backend.javascript.dependency_inference.rules.prepare_inference_metadata" ], "dependencies": ["pants.backend.javascript.package_json"], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": "https://nodejs.org/api/packages.html#subpath-imports.", "is_union": false, "module": "pants.backend.javascript.package_json", "name": "PackageJsonImports", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": [ "pants.backend.javascript.package_json.subpath_imports_for_source" ], @@ -32381,7 +37975,7 @@ "pants.backend.javascript.package_json.subpath_imports_for_source" ], "dependencies": [], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": null, "is_union": false, "module": "pants.backend.javascript.package_json", @@ -32407,15 +38001,16 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.fs" ], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": null, "is_union": false, "module": "pants.backend.javascript.package_json", "name": "PnpmWorkspaces", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": [ "pants.backend.javascript.package_json.pnpm_workspace_files" ], @@ -32429,12 +38024,12 @@ "pants.backend.experimental.go", "pants.backend.javascript.resolve" ], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": "ChosenNodeResolve(project: 'NodeJSProject')", "is_union": false, "module": "pants.backend.javascript.resolve", "name": "ChosenNodeResolve", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": [ "pants.backend.javascript.resolve.resolve_for_package" ], @@ -32452,7 +38047,7 @@ "is_union": false, "module": "pants.backend.javascript.resolve", "name": "FirstPartyNodePackageResolves", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": [ "pants.backend.javascript.resolve.resolve_to_first_party_node_package" ], @@ -32464,15 +38059,19 @@ }, "pants.backend.javascript.resolve.NodeJSProjectResolves": { "consumed_by_rules": [ + "pants.backend.javascript.goals.lockfile.setup_user_lockfile_requests", "pants.backend.javascript.resolve.resolve_to_first_party_node_package" ], "dependencies": [], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": [ + "pants.backend.experimental.javascript", + "pants.backend.experimental.openapi.lint.spectral" + ], "documentation": null, "is_union": false, "module": "pants.backend.javascript.resolve", "name": "NodeJSProjectResolves", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": [ "pants.backend.javascript.resolve.resolve_to_projects" ], @@ -32487,7 +38086,7 @@ "pants.backend.javascript.resolve.resolve_for_package" ], "dependencies": [], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": "RequestNodeResolve(address: 'Address')", "is_union": false, "module": "pants.backend.javascript.resolve", @@ -32500,18 +38099,36 @@ "pants.backend.javascript.nodejs_project_environment.get_nodejs_environment" ] }, + "pants.backend.javascript.run.rules.RunNodeBuildScriptFieldSet": { + "consumed_by_rules": [ + "pants.backend.javascript.run.rules.run_node_build_script", + "pants.core.goals.run._run_in_sandbox_behavior_rule.run_request_hermetic", + "pants.core.goals.run._unsupported_debug_adapter_rules.get_run_debug_adapter_request" + ], + "dependencies": ["pants.core"], + "dependents": ["pants.backend.experimental.javascript"], + "documentation": "RunNodeBuildScriptFieldSet(address: 'Address', entry_point: 'NodeBuildScriptEntryPointField', extra_env_vars: 'NodeBuildScriptExtraEnvVarsField', environment: 'EnvironmentField')", + "is_union": false, + "module": "pants.backend.javascript.run.rules", + "name": "RunNodeBuildScriptFieldSet", + "provider": "pants.backend.experimental.javascript", + "returned_by_rules": [], + "union_members": [], + "union_type": "RunFieldSet", + "used_in_rules": [] + }, "pants.backend.javascript.subsystems.nodejs.CorepackToolDigest": { "consumed_by_rules": [], "dependencies": [ "pants.backend.experimental.helm", "pants.backend.javascript.subsystems.nodejs" ], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": "CorepackToolDigest(digest: 'Digest')", "is_union": false, "module": "pants.backend.javascript.subsystems.nodejs", "name": "CorepackToolDigest", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": [ "pants.backend.javascript.subsystems.nodejs.prepare_corepack_tool" ], @@ -32526,7 +38143,7 @@ "pants.backend.javascript.subsystems.nodejs.prepare_corepack_tool" ], "dependencies": [], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": "CorepackToolRequest(tool: 'str', input_digest: 'Digest', working_directory: 'str | None' = None, version: 'str | None' = None)", "is_union": false, "module": "pants.backend.javascript.subsystems.nodejs", @@ -32544,13 +38161,13 @@ "pants.backend.javascript.subsystems.nodejs.node_process_environment", "pants.backend.javascript.subsystems.nodejs.nodejs_bootstrap" ], - "dependencies": ["pants.core", "pants.engine.env_vars"], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependencies": ["pants.core"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": null, "is_union": false, "module": "pants.backend.javascript.subsystems.nodejs", "name": "EnvironmentAware", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": ["construct_env_aware_scope_nodejs"], "union_members": [], "union_type": null, @@ -32565,12 +38182,15 @@ "pants.backend.javascript.subsystems.nodejs.user_chosen_resolve_aliases" ], "dependencies": ["pants.option.scope"], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": [ + "pants.backend.experimental.javascript", + "pants.backend.experimental.openapi.lint.spectral" + ], "documentation": null, "is_union": false, "module": "pants.backend.javascript.subsystems.nodejs", "name": "NodeJS", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": ["construct_scope_nodejs"], "union_members": [], "union_type": null, @@ -32582,13 +38202,13 @@ "consumed_by_rules": [ "pants.backend.javascript.subsystems.nodejs.node_process_environment" ], - "dependencies": ["pants.core", "pants.engine.platform"], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependencies": ["pants.core"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": "NodeJSBinaries(binary_dir: 'str', digest: 'Digest | None' = None)", "is_union": false, "module": "pants.backend.javascript.subsystems.nodejs", "name": "NodeJSBinaries", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": [ "pants.backend.javascript.subsystems.nodejs.determine_nodejs_binaries" ], @@ -32600,13 +38220,13 @@ "consumed_by_rules": [ "pants.backend.javascript.subsystems.nodejs.get_valid_nodejs_paths_by_version" ], - "dependencies": ["pants.core", "pants.engine.env_vars"], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependencies": ["pants.core"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": "NodeJSBootstrap(nodejs_search_paths: 'tuple[str, ...]')", "is_union": false, "module": "pants.backend.javascript.subsystems.nodejs", "name": "NodeJSBootstrap", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": [ "pants.backend.javascript.subsystems.nodejs.nodejs_bootstrap" ], @@ -32624,15 +38244,15 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", - "pants.core", - "pants.engine.env_vars" + "pants.backend.url_handlers.s3", + "pants.core" ], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": "NodeJSProcessEnvironment(binaries: 'NodeJSBinaries', npm_config_cache: 'str', tool_binaries: 'BinaryShims', corepack_home: 'str', corepack_shims: 'str', corepack_env_vars: 'EnvironmentVars')", "is_union": false, "module": "pants.backend.javascript.subsystems.nodejs", "name": "NodeJSProcessEnvironment", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": [ "pants.backend.javascript.subsystems.nodejs.node_process_environment" ], @@ -32645,7 +38265,7 @@ "pants.backend.javascript.subsystems.nodejs.setup_node_tool_process" ], "dependencies": [], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": "A request for a tool installed with NodeJS.", "is_union": false, "module": "pants.backend.javascript.subsystems.nodejs", @@ -32661,16 +38281,17 @@ }, "pants.backend.javascript.subsystems.nodejs.UserChosenNodeJSResolveAliases": { "consumed_by_rules": [ + "pants.backend.javascript.goals.lockfile.determine_package_json_user_resolves", "pants.backend.javascript.nodejs_project.find_node_js_projects", "pants.backend.javascript.resolve.resolve_to_projects" ], "dependencies": [], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": null, "is_union": false, "module": "pants.backend.javascript.subsystems.nodejs", "name": "UserChosenNodeJSResolveAliases", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": [ "pants.backend.javascript.subsystems.nodejs.user_chosen_resolve_aliases" ], @@ -32683,12 +38304,12 @@ "pants.backend.javascript.subsystems.nodejs.determine_nodejs_binaries" ], "dependencies": ["pants.core"], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": null, "is_union": false, "module": "pants.backend.javascript.subsystems.nodejs", "name": "_BinaryPathsPerVersion", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": [ "pants.backend.javascript.subsystems.nodejs.get_valid_nodejs_paths_by_version" ], @@ -32702,12 +38323,12 @@ "pants.backend.javascript.dependency_inference.rules.infer_node_package_dependencies" ], "dependencies": ["pants.option.scope"], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": null, "is_union": false, "module": "pants.backend.javascript.subsystems.nodejs_infer", "name": "NodeJSInfer", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "returned_by_rules": ["construct_scope_nodejs_infer"], "union_members": [], "union_type": null, @@ -32728,9 +38349,27 @@ "union_members": [], "union_type": null, "used_in_rules": [ - "pants.backend.openapi.lint.spectral.rules.run_spectral" + "pants.backend.javascript.lint.prettier.rules.prettier_fmt", + "pants.backend.openapi.lint.spectral.rules.run_spectral", + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck_partition" ] }, + "pants.backend.javascript.subsystems.nodejstest.NodeJSTest": { + "consumed_by_rules": [ + "pants.backend.javascript.goals.test.collect_coverage_reports" + ], + "dependencies": ["pants.option.scope"], + "dependents": ["pants.backend.experimental.javascript"], + "documentation": null, + "is_union": false, + "module": "pants.backend.javascript.subsystems.nodejstest", + "name": "NodeJSTest", + "provider": "pants.backend.experimental.javascript", + "returned_by_rules": ["construct_scope_nodejs_test"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, "pants.backend.kotlin.compile.kotlinc.CompileKotlinSourceRequest": { "consumed_by_rules": [ "pants.backend.kotlin.compile.kotlinc.compile_kotlin_source" @@ -32796,8 +38435,10 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.scala", "pants.backend.kotlin.compile.kotlinc_plugins", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.target" ], @@ -32860,16 +38501,20 @@ ], "dependencies": [ "builtins", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.scrooge.java", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.experimental.java.lint.google_java_format", "pants.backend.experimental.kotlin.lint.ktlint", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.python.lint.ruff", "pants.backend.experimental.scala", "pants.backend.experimental.scala.lint.scalafmt", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.process" ], @@ -32892,15 +38537,19 @@ ], "dependencies": [ "builtins", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.scrooge.java", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.experimental.java.lint.google_java_format", "pants.backend.experimental.kotlin.lint.ktlint", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.scala", "pants.backend.experimental.scala.lint.scalafmt", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.kotlin"], @@ -32938,7 +38587,10 @@ "pants.backend.kotlin.dependency_inference.kotlin_parser.KotlinSourceDependencyAnalysis": { "consumed_by_rules": [], "dependencies": ["pants.engine.fs", "pants.option.global_options"], - "dependents": ["pants.backend.experimental.kotlin"], + "dependents": [ + "pants.backend.experimental.kotlin", + "pants.backend.experimental.kotlin.debug_goals" + ], "documentation": "KotlinSourceDependencyAnalysis(package: 'str', imports: 'frozenset[KotlinImport]', named_declarations: 'frozenset[str]', consumed_symbols_by_scope: 'FrozenDict[str, frozenset[str]]', scopes: 'frozenset[str]')", "is_union": false, "module": "pants.backend.kotlin.dependency_inference.kotlin_parser", @@ -32951,7 +38603,8 @@ "union_type": null, "used_in_rules": [ "pants.backend.kotlin.dependency_inference.rules.infer_kotlin_dependencies_via_source_analysis", - "pants.backend.kotlin.dependency_inference.symbol_mapper.map_first_party_kotlin_targets_to_symbols" + "pants.backend.kotlin.dependency_inference.symbol_mapper.map_first_party_kotlin_targets_to_symbols", + "pants.backend.kotlin.goals.debug_goals.dump_kotlin_source_analysis" ] }, "pants.backend.kotlin.dependency_inference.rules.InferKotlinRuntimeDependencyRequest": { @@ -33073,6 +38726,41 @@ "union_type": "CheckRequest", "used_in_rules": [] }, + "pants.backend.kotlin.goals.debug_goals.DumpKotlinSourceAnalysis": { + "consumed_by_rules": [], + "dependencies": [ + "pants.backend.experimental.go", + "pants.backend.experimental.kotlin", + "pants.core", + "pants.engine.console" + ], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.kotlin.goals.debug_goals", + "name": "DumpKotlinSourceAnalysis", + "provider": "pants.backend.experimental.kotlin.debug_goals", + "returned_by_rules": [ + "pants.backend.kotlin.goals.debug_goals.dump_kotlin_source_analysis" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "pants.backend.kotlin.goals.debug_goals.DumpKotlinSourceAnalysisSubsystem": { + "consumed_by_rules": [], + "dependencies": ["pants.option.scope"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.kotlin.goals.debug_goals", + "name": "DumpKotlinSourceAnalysisSubsystem", + "provider": "pants.backend.experimental.kotlin.debug_goals", + "returned_by_rules": ["construct_scope_kotlin_dump_source_analysis"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, "pants.backend.kotlin.goals.tailor.PutativeKotlinTargetsRequest": { "consumed_by_rules": [ "pants.backend.kotlin.goals.tailor.find_putative_targets" @@ -33276,6 +38964,126 @@ "pants.backend.kotlin.test.junit.infer_kotlin_junit_dependency" ] }, + "pants.backend.openapi.codegen.java.extra_fields.OpenApiJavaApiPackageField": { + "consumed_by_rules": [], + "dependencies": ["pants.engine.target"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.openapi.codegen.java.extra_fields", + "name": "OpenApiJavaApiPackageField", + "provider": "pants.backend.experimental.openapi.codegen.java", + "returned_by_rules": [], + "union_members": [], + "union_type": "PluginField", + "used_in_rules": [] + }, + "pants.backend.openapi.codegen.java.extra_fields.OpenApiJavaModelPackageField": { + "consumed_by_rules": [], + "dependencies": ["pants.engine.target"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.openapi.codegen.java.extra_fields", + "name": "OpenApiJavaModelPackageField", + "provider": "pants.backend.experimental.openapi.codegen.java", + "returned_by_rules": [], + "union_members": [], + "union_type": "PluginField", + "used_in_rules": [] + }, + "pants.backend.openapi.codegen.java.extra_fields.OpenApiJavaSkipField": { + "consumed_by_rules": [], + "dependencies": ["pants.engine.target"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.openapi.codegen.java.extra_fields", + "name": "OpenApiJavaSkipField", + "provider": "pants.backend.experimental.openapi.codegen.java", + "returned_by_rules": [], + "union_members": [], + "union_type": "PluginField", + "used_in_rules": [] + }, + "pants.backend.openapi.codegen.java.rules.CompileOpenApiIntoJavaRequest": { + "consumed_by_rules": [ + "pants.backend.openapi.codegen.java.rules.compile_openapi_into_java" + ], + "dependencies": [], + "dependents": ["pants.backend.experimental.openapi.codegen.java"], + "documentation": "CompileOpenApiIntoJavaRequest(input_file: 'str', input_digest: 'Digest', description: 'str', api_package: 'str | None' = None, model_package: 'str | None' = None)", + "is_union": false, + "module": "pants.backend.openapi.codegen.java.rules", + "name": "CompileOpenApiIntoJavaRequest", + "provider": "pants.backend.openapi.codegen.java.rules", + "returned_by_rules": [], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.openapi.codegen.java.rules.generate_java_from_openapi", + "pants.backend.openapi.codegen.java.rules.infer_openapi_java_dependencies" + ] + }, + "pants.backend.openapi.codegen.java.rules.CompiledJavaFromOpenApi": { + "consumed_by_rules": [], + "dependencies": [ + "builtins", + "pants.backend.experimental.go", + "pants.backend.experimental.helm", + "pants.backend.experimental.java", + "pants.backend.openapi.codegen.java.rules", + "pants.backend.url_handlers.s3", + "pants.core" + ], + "dependents": ["pants.backend.experimental.openapi.codegen.java"], + "documentation": "CompiledJavaFromOpenApi(output_digest: 'Digest', runtime_dependencies: 'tuple[Coordinate, ...]')", + "is_union": false, + "module": "pants.backend.openapi.codegen.java.rules", + "name": "CompiledJavaFromOpenApi", + "provider": "pants.backend.experimental.openapi.codegen.java", + "returned_by_rules": [ + "pants.backend.openapi.codegen.java.rules.compile_openapi_into_java" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.openapi.codegen.java.rules.generate_java_from_openapi", + "pants.backend.openapi.codegen.java.rules.infer_openapi_java_dependencies" + ] + }, + "pants.backend.openapi.codegen.java.rules.GenerateJavaFromOpenAPIRequest": { + "consumed_by_rules": [ + "pants.backend.openapi.codegen.java.rules.generate_java_from_openapi" + ], + "dependencies": ["pants.engine.target"], + "dependents": ["pants.backend.experimental.openapi.codegen.java"], + "documentation": null, + "is_union": false, + "module": "pants.backend.openapi.codegen.java.rules", + "name": "GenerateJavaFromOpenAPIRequest", + "provider": "pants.backend.experimental.openapi.codegen.java", + "returned_by_rules": [], + "union_members": [], + "union_type": "GenerateSourcesRequest", + "used_in_rules": [] + }, + "pants.backend.openapi.codegen.java.rules.InferOpenApiJavaRuntimeDependencyRequest": { + "consumed_by_rules": [ + "pants.backend.openapi.codegen.java.rules.infer_openapi_java_dependencies" + ], + "dependencies": ["pants.engine.target"], + "dependents": ["pants.backend.experimental.openapi.codegen.java"], + "documentation": null, + "is_union": false, + "module": "pants.backend.openapi.codegen.java.rules", + "name": "InferOpenApiJavaRuntimeDependencyRequest", + "provider": "pants.backend.experimental.openapi.codegen.java", + "returned_by_rules": [], + "union_members": [], + "union_type": "InferDependenciesRequest", + "used_in_rules": [] + }, "pants.backend.openapi.dependency_inference.InferOpenApiDocumentDependenciesRequest": { "consumed_by_rules": [ "pants.backend.openapi.dependency_inference.infer_openapi_document_dependencies" @@ -33426,6 +39234,99 @@ "union_type": null, "used_in_rules": [] }, + "pants.backend.openapi.subsystems.openapi_generator.OpenAPIGenerator": { + "consumed_by_rules": [ + "pants.backend.openapi.codegen.java.rules.infer_openapi_java_dependencies", + "pants.backend.openapi.subsystems.openapi_generator.generate_openapi_generator_lockfile_request", + "pants.backend.openapi.util_rules.generator_process.openapi_generator_process" + ], + "dependencies": ["pants.option.scope"], + "dependents": ["pants.backend.experimental.openapi.codegen.java"], + "documentation": null, + "is_union": false, + "module": "pants.backend.openapi.subsystems.openapi_generator", + "name": "OpenAPIGenerator", + "provider": "pants.backend.experimental.openapi.codegen.java", + "returned_by_rules": ["construct_scope_openapi_generator"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "pants.backend.openapi.subsystems.openapi_generator.OpenAPIGeneratorLockfileSentinel": { + "consumed_by_rules": [ + "pants.backend.openapi.subsystems.openapi_generator.generate_openapi_generator_lockfile_request" + ], + "dependencies": ["pants.core"], + "dependents": ["pants.backend.experimental.openapi.codegen.java"], + "documentation": null, + "is_union": false, + "module": "pants.backend.openapi.subsystems.openapi_generator", + "name": "OpenAPIGeneratorLockfileSentinel", + "provider": "pants.backend.experimental.openapi.codegen.java, pants.backend.openapi.subsystems.openapi_generator", + "returned_by_rules": [], + "union_members": [], + "union_type": "GenerateToolLockfileSentinel", + "used_in_rules": [ + "pants.backend.openapi.util_rules.generator_process.openapi_generator_process" + ] + }, + "pants.backend.openapi.util_rules.generator_process.OpenAPIGeneratorProcess": { + "consumed_by_rules": [ + "pants.backend.openapi.util_rules.generator_process.openapi_generator_process" + ], + "dependencies": [], + "dependents": ["pants.backend.experimental.openapi.codegen.java"], + "documentation": "OpenAPIGeneratorProcess(*, generator_type: 'OpenAPIGeneratorType', argv: 'Iterable[str]', input_digest: 'Digest', description: 'str', level: 'LogLevel' = , output_directories: 'Iterable[str] | None' = None, output_files: 'Iterable[str] | None' = None, extra_env: 'Mapping[str, str] | None' = None, extra_classpath_entries: 'Iterable[str] | None' = None, extra_immutable_input_digests: 'Mapping[str, Digest] | None' = None, extra_jvm_options: 'Iterable[str] | None' = None, cache_scope: 'ProcessCacheScope | None' = None)", + "is_union": false, + "module": "pants.backend.openapi.util_rules.generator_process", + "name": "OpenAPIGeneratorProcess", + "provider": "pants.backend.openapi.util_rules.generator_process", + "returned_by_rules": [], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.openapi.codegen.java.rules.compile_openapi_into_java" + ] + }, + "pants.backend.openapi.util_rules.pom_parser.AnalysePomRequest": { + "consumed_by_rules": [ + "pants.backend.openapi.util_rules.pom_parser.analyse_pom" + ], + "dependencies": [], + "dependents": ["pants.backend.experimental.openapi.codegen.java"], + "documentation": "AnalysePomRequest(pom_digest: 'Digest')", + "is_union": false, + "module": "pants.backend.openapi.util_rules.pom_parser", + "name": "AnalysePomRequest", + "provider": "pants.backend.openapi.util_rules.pom_parser", + "returned_by_rules": [], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.openapi.codegen.java.rules.compile_openapi_into_java" + ] + }, + "pants.backend.openapi.util_rules.pom_parser.PomReport": { + "consumed_by_rules": [], + "dependencies": [ + "pants.backend.openapi.util_rules.pom_parser", + "pants.engine.fs" + ], + "dependents": ["pants.backend.experimental.openapi.codegen.java"], + "documentation": "PomReport(dependencies: 'tuple[Coordinate, ...]')", + "is_union": false, + "module": "pants.backend.openapi.util_rules.pom_parser", + "name": "PomReport", + "provider": "pants.backend.experimental.openapi.codegen.java", + "returned_by_rules": [ + "pants.backend.openapi.util_rules.pom_parser.analyse_pom" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.openapi.codegen.java.rules.compile_openapi_into_java" + ] + }, "pants.backend.plugin_development.pants_requirements.GenerateFromPantsRequirementsRequest": { "consumed_by_rules": [ "pants.backend.plugin_development.pants_requirements.generate_from_pants_requirements" @@ -33449,10 +39350,11 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.console", - "pants.engine.fs", - "pants.engine.platform" + "pants.engine.fs" ], "dependents": [], "documentation": null, @@ -34172,6 +40074,8 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.python.providers.experimental.pyenv", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.internals.native_dep_inference", "pants.engine.unions" @@ -34204,6 +40108,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.unions" ], @@ -34227,6 +40132,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.python"], @@ -34331,6 +40237,7 @@ "dependencies": ["pants.backend.experimental.go", "pants.core"], "dependents": [ "pants.backend.experimental.python", + "pants.backend.experimental.python.framework.django", "pants.backend.python" ], "documentation": "ResolvedParsedPythonDependencies(resolve_results: 'dict[str, ImportResolveResult]', assets: 'dict[str, ImportResolveResult]', explicit: 'ExplicitlyProvidedDependencies')", @@ -34345,6 +40252,7 @@ "union_type": null, "used_in_rules": [ "pants.backend.python.dependency_inference.rules.infer_python_dependencies_via_source", + "pants.backend.python.framework.django.dependency_inference.django_parser_script", "pants.backend.python.goals.debug_goals.dump_python_source_analysis_single" ] }, @@ -34364,6 +40272,7 @@ "union_type": null, "used_in_rules": [ "pants.backend.python.dependency_inference.rules.infer_python_dependencies_via_source", + "pants.backend.python.framework.django.dependency_inference.django_parser_script", "pants.backend.python.goals.debug_goals.dump_python_source_analysis_single" ] }, @@ -34433,6 +40342,48 @@ "union_type": null, "used_in_rules": [] }, + "pants.backend.python.framework.django.dependency_inference.InferDjangoDependencies": { + "consumed_by_rules": [ + "pants.backend.python.framework.django.dependency_inference.django_parser_script" + ], + "dependencies": ["pants.engine.target"], + "dependents": ["pants.backend.experimental.python.framework.django"], + "documentation": null, + "is_union": false, + "module": "pants.backend.python.framework.django.dependency_inference", + "name": "InferDjangoDependencies", + "provider": "pants.backend.experimental.python.framework.django", + "returned_by_rules": [], + "union_members": [], + "union_type": "InferDependenciesRequest", + "used_in_rules": [] + }, + "pants.backend.python.framework.django.detect_apps.DjangoApps": { + "consumed_by_rules": [ + "pants.backend.python.framework.django.dependency_inference.django_parser_script" + ], + "dependencies": [ + "builtins", + "pants.backend.experimental.go", + "pants.backend.experimental.helm", + "pants.backend.experimental.java", + "pants.backend.python.providers.experimental.pyenv", + "pants.backend.url_handlers.s3", + "pants.core" + ], + "dependents": ["pants.backend.experimental.python.framework.django"], + "documentation": "DjangoApps(label_to_name: 'FrozenDict[str, str]')", + "is_union": false, + "module": "pants.backend.python.framework.django.detect_apps", + "name": "DjangoApps", + "provider": "pants.backend.experimental.python.framework.django", + "returned_by_rules": [ + "pants.backend.python.framework.django.detect_apps.detect_django_apps" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, "pants.backend.python.framework.stevedore.python_target_dependencies.InferStevedoreNamespacesDependencies": { "consumed_by_rules": [ "pants.backend.python.framework.stevedore.python_target_dependencies.infer_stevedore_namespaces_dependencies" @@ -34564,6 +40515,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.fs" ], @@ -34628,6 +40580,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.fs" ], @@ -35015,6 +40968,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.fs" ], @@ -35080,11 +41034,14 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.openapi.lint.spectral", + "pants.backend.experimental.rust", "pants.backend.experimental.terraform", "pants.backend.shell", + "pants.backend.url_handlers.s3", "pants.core", - "pants.engine.env_vars", "pants.engine.fs", "pants.engine.process" ], @@ -35500,6 +41457,7 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.python", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.addresses" ], @@ -35663,6 +41621,7 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.python", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.addresses" ], @@ -35970,6 +41929,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.python.packaging.pyoxidizer"], @@ -36001,6 +41961,101 @@ "union_type": null, "used_in_rules": [] }, + "pants.backend.python.providers.pyenv.custom_install.rules.RunPyenvInstallFieldSet": { + "consumed_by_rules": [ + "pants.backend.python.providers.pyenv.custom_install.rules.run_pyenv_install", + "pants.core.goals.run._run_in_sandbox_behavior_rule.not_supported", + "pants.core.goals.run._unsupported_debug_adapter_rules.get_run_debug_adapter_request" + ], + "dependencies": ["pants.core"], + "dependents": [ + "pants.backend.python.providers.experimental.pyenv.custom_install" + ], + "documentation": "RunPyenvInstallFieldSet(address: 'Address', _sentinel: pants.backend.python.providers.pyenv.custom_install.target_types.PyenvInstallSentinelField)", + "is_union": false, + "module": "pants.backend.python.providers.pyenv.custom_install.rules", + "name": "RunPyenvInstallFieldSet", + "provider": "pants.backend.python.providers.experimental.pyenv.custom_install", + "returned_by_rules": [], + "union_members": [], + "union_type": "RunFieldSet", + "used_in_rules": [] + }, + "pants.backend.python.providers.pyenv.custom_install.rules.SyntheticPyenvTargetsRequest": { + "consumed_by_rules": [ + "pants.backend.python.providers.pyenv.custom_install.rules.make_synthetic_targets" + ], + "dependencies": ["pants.engine.internals.synthetic_targets"], + "dependents": [ + "pants.backend.python.providers.experimental.pyenv.custom_install" + ], + "documentation": "SyntheticPyenvTargetsRequest(path: str = '')", + "is_union": false, + "module": "pants.backend.python.providers.pyenv.custom_install.rules", + "name": "SyntheticPyenvTargetsRequest", + "provider": "pants.backend.python.providers.experimental.pyenv.custom_install", + "returned_by_rules": [], + "union_members": [], + "union_type": "SyntheticTargetsRequest", + "used_in_rules": [] + }, + "pants.backend.python.providers.pyenv.rules.PyenvInstallInfoRequest": { + "consumed_by_rules": [ + "pants.backend.python.providers.pyenv.rules.get_pyenv_install_info" + ], + "dependencies": [], + "dependents": ["pants.backend.python.providers.experimental.pyenv"], + "documentation": null, + "is_union": false, + "module": "pants.backend.python.providers.pyenv.rules", + "name": "PyenvInstallInfoRequest", + "provider": "pants.backend.python", + "returned_by_rules": [], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.python.providers.pyenv.custom_install.rules.run_pyenv_install", + "pants.backend.python.providers.pyenv.rules.get_python" + ] + }, + "pants.backend.python.providers.pyenv.rules.PyenvPythonProvider": { + "consumed_by_rules": [ + "pants.backend.python.providers.pyenv.rules.get_python" + ], + "dependencies": ["pants.backend.python"], + "dependents": ["pants.backend.python.providers.experimental.pyenv"], + "documentation": null, + "is_union": false, + "module": "pants.backend.python.providers.pyenv.rules", + "name": "PyenvPythonProvider", + "provider": "pants.backend.python.providers.experimental.pyenv", + "returned_by_rules": [], + "union_members": [], + "union_type": "PythonProvider", + "used_in_rules": [] + }, + "pants.backend.python.providers.pyenv.rules.PyenvPythonProviderSubsystem": { + "consumed_by_rules": [ + "construct_env_aware_scope_pyenv_python_provider", + "pants.backend.python.providers.pyenv.custom_install.rules.run_pyenv_install", + "pants.backend.python.providers.pyenv.rules.get_pyenv_install_info", + "pants.backend.python.providers.pyenv.rules.get_python" + ], + "dependencies": ["pants.option.scope"], + "dependents": [ + "pants.backend.python.providers.experimental.pyenv", + "pants.backend.python.providers.experimental.pyenv.custom_install" + ], + "documentation": null, + "is_union": false, + "module": "pants.backend.python.providers.pyenv.rules", + "name": "PyenvPythonProviderSubsystem", + "provider": "pants.backend.python.providers.experimental.pyenv", + "returned_by_rules": ["construct_scope_pyenv_python_provider"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, "pants.backend.python.subsystems.debugpy.DebugPy": { "consumed_by_rules": [ "pants.backend.python.goals.pytest_runner.debugpy_python_test", @@ -36090,7 +42145,7 @@ "consumed_by_rules": [ "pants.backend.python.util_rules.pex_cli.setup_pex_cli_process" ], - "dependencies": ["pants.engine.env_vars"], + "dependencies": ["pants.backend.experimental.javascript"], "dependents": ["pants.core"], "documentation": null, "is_union": false, @@ -36144,6 +42199,8 @@ "pants.backend.python.dependency_inference.rules.infer_python_conftest_dependencies", "pants.backend.python.dependency_inference.rules.infer_python_dependencies_via_source", "pants.backend.python.dependency_inference.rules.infer_python_init_dependencies", + "pants.backend.python.framework.django.dependency_inference.django_parser_script", + "pants.backend.python.framework.django.detect_apps.detect_django_apps", "pants.backend.python.goals.debug_goals.dump_python_source_analysis_single", "pants.backend.python.goals.export.export_virtualenv_for_resolve", "pants.backend.python.goals.lockfile.determine_python_user_resolves", @@ -36168,11 +42225,13 @@ "pants.backend.python.macros.poetry_requirements.generate_from_python_requirement", "pants.backend.python.macros.python_requirements.generate_from_python_requirement", "pants.backend.python.mixed_interpreter_constraints.py_constraints.py_constraints", + "pants.backend.python.providers.pyenv.rules.get_python", "pants.backend.python.target_types_rules.infer_pex_binary_entry_point_dependency", "pants.backend.python.target_types_rules.python_resolve_field_default_factory", "pants.backend.python.target_types_rules.validate_python_dependencies", "pants.backend.python.typecheck.mypy.rules.mypy_determine_partitions", "pants.backend.python.typecheck.mypy.rules.mypy_typecheck_partition", + "pants.backend.python.typecheck.pyright.rules.pyright_determine_partitions", "pants.backend.python.typecheck.pytype.rules.pytype_determine_partitions", "pants.backend.python.util_rules.dists.run_pep517_build", "pants.backend.python.util_rules.faas.infer_faas_handler_dependency", @@ -36199,6 +42258,8 @@ "pants.backend.codegen.protobuf.python", "pants.backend.codegen.thrift.apache.python", "pants.backend.experimental.python", + "pants.backend.experimental.python.framework.django", + "pants.backend.experimental.python.typecheck.pyright", "pants.backend.experimental.python.typecheck.pytype", "pants.backend.python", "pants.backend.python.lint.bandit", @@ -36206,6 +42267,7 @@ "pants.backend.python.lint.flake8", "pants.backend.python.lint.pylint", "pants.backend.python.mixed_interpreter_constraints", + "pants.backend.python.providers.experimental.pyenv", "pants.backend.python.typecheck.mypy", "pants.core" ], @@ -36698,6 +42760,98 @@ "union_type": null, "used_in_rules": [] }, + "pants.backend.python.typecheck.pyright.rules.PyrightPartition": { + "consumed_by_rules": [ + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck_partition" + ], + "dependencies": [], + "dependents": ["pants.backend.experimental.python.typecheck.pyright"], + "documentation": "PyrightPartition(field_sets: 'FrozenOrderedSet[PyrightFieldSet]', root_targets: 'CoarsenedTargets', resolve_description: 'str | None', interpreter_constraints: 'InterpreterConstraints')", + "is_union": false, + "module": "pants.backend.python.typecheck.pyright.rules", + "name": "PyrightPartition", + "provider": "pants.backend.python", + "returned_by_rules": [], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck" + ] + }, + "pants.backend.python.typecheck.pyright.rules.PyrightPartitions": { + "consumed_by_rules": [], + "dependencies": [ + "pants.backend.experimental.go", + "pants.backend.python", + "pants.core", + "pants.engine.target" + ], + "dependents": ["pants.backend.experimental.python.typecheck.pyright"], + "documentation": null, + "is_union": false, + "module": "pants.backend.python.typecheck.pyright.rules", + "name": "PyrightPartitions", + "provider": "pants.backend.experimental.python.typecheck.pyright", + "returned_by_rules": [ + "pants.backend.python.typecheck.pyright.rules.pyright_determine_partitions" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck" + ] + }, + "pants.backend.python.typecheck.pyright.rules.PyrightRequest": { + "consumed_by_rules": [ + "pants.backend.python.typecheck.pyright.rules.pyright_determine_partitions", + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck" + ], + "dependencies": ["pants.core"], + "dependents": ["pants.backend.experimental.python.typecheck.pyright"], + "documentation": null, + "is_union": false, + "module": "pants.backend.python.typecheck.pyright.rules", + "name": "PyrightRequest", + "provider": "pants.backend.experimental.python.typecheck.pyright, pants.backend.python", + "returned_by_rules": [], + "union_members": [], + "union_type": "CheckRequest", + "used_in_rules": [ + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck" + ] + }, + "pants.backend.python.typecheck.pyright.skip_field.SkipPyrightField": { + "consumed_by_rules": [], + "dependencies": ["pants.engine.target"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.python.typecheck.pyright.skip_field", + "name": "SkipPyrightField", + "provider": "pants.backend.experimental.python.typecheck.pyright", + "returned_by_rules": [], + "union_members": [], + "union_type": "PluginField", + "used_in_rules": [] + }, + "pants.backend.python.typecheck.pyright.subsystem.Pyright": { + "consumed_by_rules": [ + "pants.backend.python.typecheck.pyright.rules.pyright_determine_partitions", + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck", + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck_partition" + ], + "dependencies": ["pants.option.scope"], + "dependents": ["pants.backend.experimental.python.typecheck.pyright"], + "documentation": null, + "is_union": false, + "module": "pants.backend.python.typecheck.pyright.subsystem", + "name": "Pyright", + "provider": "pants.backend.experimental.python.typecheck.pyright", + "returned_by_rules": ["construct_scope_pyright"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, "pants.backend.python.typecheck.pytype.rules.PytypePartition": { "consumed_by_rules": [ "pants.backend.python.typecheck.pytype.rules.pytype_typecheck_partition" @@ -36895,6 +43049,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.python"], @@ -37084,6 +43239,7 @@ "union_type": null, "used_in_rules": [ "pants.backend.python.dependency_inference.parse_python_dependencies.parse_python_dependencies", + "pants.backend.python.framework.django.detect_apps.detect_django_apps", "pants.backend.python.goals.repl.create_ipython_repl_request", "pants.backend.python.goals.repl.create_python_repl_request", "pants.backend.python.goals.run_python_source.create_python_source_debug_adapter_request", @@ -37102,9 +43258,11 @@ "builtins", "pants.backend.awslambda.python", "pants.backend.docker", + "pants.backend.experimental.debian", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.python.packaging.pyoxidizer", "pants.backend.google_cloud_function.python", "pants.core" @@ -37131,6 +43289,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.python"], @@ -37197,6 +43356,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.python"], @@ -37239,9 +43399,10 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.python.typecheck.mypy", + "pants.backend.url_handlers.s3", "pants.core", - "pants.engine.env_vars", "pants.engine.unions" ], "dependents": ["pants.backend.python"], @@ -37266,6 +43427,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.base.build_root", "pants.core" ], @@ -37330,6 +43492,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.python"], @@ -37516,6 +43679,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.python"], @@ -37614,7 +43778,9 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", - "pants.backend.python" + "pants.backend.python", + "pants.backend.python.providers.experimental.pyenv", + "pants.backend.url_handlers.s3" ], "dependents": ["pants.core"], "documentation": "BuildPexResult(result: 'ProcessResult', pex_filename: 'str', digest: 'Digest', python: 'PythonExecutable | None')", @@ -37710,7 +43876,9 @@ "dependencies": [], "dependents": [ "pants.backend.awslambda.python", + "pants.backend.experimental.cc.lint.clangformat", "pants.backend.experimental.python.packaging.pyoxidizer", + "pants.backend.experimental.python.typecheck.pyright", "pants.backend.experimental.python.typecheck.pytype", "pants.backend.experimental.tools.yamllint", "pants.backend.python", @@ -37727,6 +43895,7 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.cc.lint.clangformat.rules.clangformat_fmt", "pants.backend.python.goals.export.do_export", "pants.backend.python.goals.package_pex_binary.built_pacakge_for_pex_from_targets_request", "pants.backend.python.goals.pytest_runner.debugpy_python_test", @@ -37738,6 +43907,7 @@ "pants.backend.python.packaging.pyoxidizer.rules.package_pyoxidizer_binary", "pants.backend.python.typecheck.mypy.mypyc.get_mypyc_build_environment", "pants.backend.python.typecheck.mypy.rules.mypy_typecheck_partition", + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck_partition", "pants.backend.python.typecheck.pytype.rules.pytype_typecheck_partition", "pants.backend.python.util_rules.faas.build_lambdex", "pants.backend.python.util_rules.faas.build_python_faas", @@ -37761,6 +43931,7 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.cc.lint.clangformat.rules.clangformat_fmt", "pants.backend.python.goals.export.do_export", "pants.backend.python.packaging.pyoxidizer.rules.package_pyoxidizer_binary", "pants.backend.python.util_rules.pex.determine_pex_resolve_info", @@ -37778,6 +43949,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.unions" ], @@ -37795,9 +43967,11 @@ "used_in_rules": [ "pants.backend.build_files.fmt.black.register.black_fmt", "pants.backend.build_files.fmt.yapf.register.yapf_fmt", + "pants.backend.cc.lint.clangformat.rules.clangformat_fmt", "pants.backend.docker.subsystems.dockerfile_parser.setup_parser", "pants.backend.helm.subsystems.k8s_parser.build_k8s_parser_tool", "pants.backend.helm.subsystems.post_renderer.setup_post_renderer_tool", + "pants.backend.python.framework.django.dependency_inference.django_parser_script", "pants.backend.python.goals.coverage_py.setup_coverage", "pants.backend.python.goals.export.do_export", "pants.backend.python.goals.publish.twine_upload", @@ -37823,6 +43997,7 @@ "pants.backend.python.packaging.pyoxidizer.rules.package_pyoxidizer_binary", "pants.backend.python.typecheck.mypy.mypyc.get_mypyc_build_environment", "pants.backend.python.typecheck.mypy.rules.mypy_typecheck_partition", + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck_partition", "pants.backend.python.typecheck.pytype.rules.pytype_typecheck_partition", "pants.backend.python.util_rules.dists.run_pep517_build", "pants.backend.python.util_rules.faas.build_lambdex", @@ -37894,14 +44069,14 @@ "pants.backend.python.util_rules.pex.PythonProvider": { "consumed_by_rules": [], "dependencies": [], - "dependents": [], + "dependents": ["pants.backend.python.providers.experimental.pyenv"], "documentation": "Union which should have 0 or 1 implementations registered which provide Python.\n\nSubclasses should provide a rule from their subclass type to `PythonExecutable`.", "is_union": true, "module": "pants.backend.python.util_rules.pex", "name": "PythonProvider", "provider": "pants.backend.python", "returned_by_rules": [], - "union_members": [], + "union_members": ["PyenvPythonProvider"], "union_type": null, "used_in_rules": ["pants.backend.python.util_rules.pex.find_interpreter"] }, @@ -37913,7 +44088,8 @@ "builtins", "pants.backend.experimental.go", "pants.backend.experimental.helm", - "pants.backend.experimental.java" + "pants.backend.experimental.java", + "pants.backend.url_handlers.s3" ], "dependents": [ "pants.backend.awslambda.python", @@ -37923,8 +44099,10 @@ "pants.backend.docker", "pants.backend.experimental.helm", "pants.backend.experimental.python", + "pants.backend.experimental.python.framework.django", "pants.backend.experimental.python.lint.add_trailing_comma", "pants.backend.experimental.python.lint.ruff", + "pants.backend.experimental.python.typecheck.pyright", "pants.backend.experimental.python.typecheck.pytype", "pants.backend.experimental.terraform", "pants.backend.python", @@ -37958,6 +44136,7 @@ "pants.backend.docker.subsystems.dockerfile_parser.setup_parser", "pants.backend.helm.subsystems.k8s_parser.build_k8s_parser_tool", "pants.backend.helm.subsystems.post_renderer.setup_post_renderer_tool", + "pants.backend.python.framework.django.dependency_inference.django_parser_script", "pants.backend.python.goals.coverage_py.setup_coverage", "pants.backend.python.goals.export.do_export", "pants.backend.python.goals.publish.twine_upload", @@ -37979,6 +44158,7 @@ "pants.backend.python.lint.ruff.rules.run_ruff", "pants.backend.python.lint.yapf.rules.yapf_fmt", "pants.backend.python.typecheck.mypy.rules.mypy_typecheck_partition", + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck_partition", "pants.backend.python.typecheck.pytype.rules.pytype_typecheck_partition", "pants.backend.python.util_rules.dists.run_pep517_build", "pants.backend.python.util_rules.faas.build_lambdex", @@ -38009,6 +44189,7 @@ "pants.backend.docker.subsystems.dockerfile_parser.setup_process_for_parse_dockerfile", "pants.backend.helm.subsystems.k8s_parser.parse_kube_manifest", "pants.backend.helm.subsystems.post_renderer.setup_post_renderer_launcher", + "pants.backend.python.framework.django.dependency_inference.django_parser_script", "pants.backend.python.goals.coverage_py.generate_coverage_reports", "pants.backend.python.goals.coverage_py.merge_coverage_data", "pants.backend.python.goals.export.do_export", @@ -38107,7 +44288,7 @@ "pants.backend.python.util_rules.pex.determine_pex_resolve_info", "pants.backend.python.util_rules.pex_cli.setup_pex_cli_process" ], - "dependencies": ["pants.engine.platform"], + "dependencies": ["pants.backend.experimental.javascript"], "dependents": ["pants.backend.python", "pants.core"], "documentation": "The Pex PEX binary.", "is_union": false, @@ -38125,7 +44306,7 @@ "consumed_by_rules": [ "pants.backend.python.util_rules.pex_environment.find_pex_python" ], - "dependencies": ["pants.engine.env_vars"], + "dependencies": ["pants.backend.experimental.javascript"], "dependents": ["pants.core"], "documentation": null, "is_union": false, @@ -38148,6 +44329,7 @@ "pants.backend.python.goals.run_python_source.create_python_source_run_in_sandbox_request", "pants.backend.python.goals.run_python_source.create_python_source_run_request", "pants.backend.python.lint.pylint.rules.run_pylint", + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck_partition", "pants.backend.python.typecheck.pytype.rules.pytype_typecheck_partition", "pants.backend.python.util_rules.pex.create_venv_pex", "pants.backend.python.util_rules.pex.setup_pex_process", @@ -38158,6 +44340,7 @@ "dependencies": ["pants.option.global_options"], "dependents": [ "pants.backend.codegen.protobuf.python", + "pants.backend.experimental.python.typecheck.pyright", "pants.backend.experimental.python.typecheck.pytype", "pants.backend.python", "pants.backend.python.lint.pylint", @@ -38198,23 +44381,39 @@ "pants.backend.python.util_rules.pex_environment.PythonExecutable": { "consumed_by_rules": [], "dependencies": [ + "pants.backend.docker", + "pants.backend.experimental.adhoc", + "pants.backend.experimental.go", "pants.backend.experimental.helm", + "pants.backend.experimental.java", + "pants.backend.experimental.javascript", + "pants.backend.experimental.kotlin", + "pants.backend.experimental.python.packaging.pyoxidizer", + "pants.backend.experimental.scala", "pants.backend.python", + "pants.backend.python.providers.experimental.pyenv.custom_install", + "pants.backend.shell", "pants.engine.unions" ], - "dependents": ["pants.backend.python", "pants.core"], + "dependents": [ + "pants.backend.experimental.python.framework.django", + "pants.backend.python", + "pants.core" + ], "documentation": "The BinaryPath of a Python executable for user code, along with some extras.", "is_union": false, "module": "pants.backend.python.util_rules.pex_environment", "name": "PythonExecutable", - "provider": "pants.core", + "provider": "pants.backend.python.providers.experimental.pyenv, pants.core", "returned_by_rules": [ + "pants.backend.python.providers.pyenv.rules.get_python", "pants.backend.python.util_rules.pex.find_interpreter" ], "union_members": [], "union_type": null, "used_in_rules": [ "pants.backend.python.dependency_inference.parse_python_dependencies.parse_python_dependencies", + "pants.backend.python.framework.django.detect_apps.detect_django_apps", "pants.backend.python.goals.run_pex_binary.create_pex_binary_run_request", "pants.backend.python.goals.run_python_source.create_python_source_debug_adapter_request", "pants.backend.python.goals.run_python_source.create_python_source_run_in_sandbox_request", @@ -38351,6 +44550,7 @@ "pants.backend.python.lint.pylint.rules.run_pylint", "pants.backend.python.typecheck.mypy.mypyc.get_mypyc_build_environment", "pants.backend.python.typecheck.mypy.rules.mypy_typecheck_partition", + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck_partition", "pants.backend.python.typecheck.pytype.rules.pytype_typecheck_partition" ] }, @@ -38416,6 +44616,7 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.python", + "pants.backend.url_handlers.s3", "pants.engine.fs" ], "dependents": [ @@ -38551,6 +44752,7 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.python", + "pants.backend.url_handlers.s3", "pants.engine.fs", "pants.engine.unions" ], @@ -38597,6 +44799,7 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.python", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.awslambda.python"], @@ -38643,6 +44846,7 @@ "pants.engine.unions" ], "dependents": [ + "pants.backend.experimental.python.typecheck.pyright", "pants.backend.python", "pants.backend.python.lint.pylint", "pants.backend.python.typecheck.mypy" @@ -38668,6 +44872,7 @@ "pants.backend.python.lint.pylint.rules.run_pylint", "pants.backend.python.typecheck.mypy.rules.mypy_typecheck_partition", "pants.backend.python.typecheck.mypy.subsystem.mypy_first_party_plugins", + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck_partition", "pants.backend.python.util_rules.package_dists.generate_chroot", "pants.backend.python.util_rules.pex_from_targets.create_pex_from_targets" ] @@ -38699,6 +44904,7 @@ "pants.backend.python.lint.pylint.subsystem.pylint_first_party_plugins", "pants.backend.python.typecheck.mypy.rules.mypy_typecheck_partition", "pants.backend.python.typecheck.mypy.subsystem.mypy_first_party_plugins", + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck_partition", "pants.backend.python.util_rules.package_dists.generate_chroot", "pants.backend.python.util_rules.package_dists.get_sources", "pants.backend.python.util_rules.pex_from_targets.create_pex_from_targets" @@ -38793,6 +44999,135 @@ "union_type": "PluginField", "used_in_rules": [] }, + "pants.backend.rust.goals.tailor.PutativeRustTargetsRequest": { + "consumed_by_rules": [ + "pants.backend.rust.goals.tailor.find_putative_rust_targets" + ], + "dependencies": ["pants.core"], + "dependents": ["pants.backend.experimental.rust"], + "documentation": "PutativeRustTargetsRequest(dirs: 'tuple[str, ...]')", + "is_union": false, + "module": "pants.backend.rust.goals.tailor", + "name": "PutativeRustTargetsRequest", + "provider": "pants.backend.experimental.rust", + "returned_by_rules": [], + "union_members": [], + "union_type": "PutativeTargetsRequest", + "used_in_rules": [] + }, + "pants.backend.rust.lint.rustfmt.rules.RustfmtRequest": { + "consumed_by_rules": [], + "dependencies": ["pants.core"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.rust.lint.rustfmt.rules", + "name": "RustfmtRequest", + "provider": "pants.backend.experimental.rust", + "returned_by_rules": [], + "union_members": [], + "union_type": "AbstractLintRequest", + "used_in_rules": [] + }, + "pants.backend.rust.lint.rustfmt.skip_field.SkipRustfmtField": { + "consumed_by_rules": [], + "dependencies": ["pants.engine.target"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.rust.lint.rustfmt.skip_field", + "name": "SkipRustfmtField", + "provider": "pants.backend.experimental.rust", + "returned_by_rules": [], + "union_members": [], + "union_type": "PluginField", + "used_in_rules": [] + }, + "pants.backend.rust.lint.rustfmt.subsystem.RustfmtSubsystem": { + "consumed_by_rules": [ + "pants.core.util_rules.partitions._single_partition_file_rules.partitioner" + ], + "dependencies": ["pants.option.scope"], + "dependents": ["pants.backend.experimental.rust"], + "documentation": null, + "is_union": false, + "module": "pants.backend.rust.lint.rustfmt.subsystem", + "name": "RustfmtSubsystem", + "provider": "pants.backend.experimental.rust", + "returned_by_rules": ["construct_scope_rustfmt"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "pants.backend.rust.subsystems.rust.RustSubsystem": { + "consumed_by_rules": [ + "pants.backend.rust.util_rules.toolchains.find_rustup", + "pants.backend.rust.util_rules.toolchains.rust_binary_path" + ], + "dependencies": ["pants.option.scope"], + "dependents": ["pants.backend.experimental.rust"], + "documentation": null, + "is_union": false, + "module": "pants.backend.rust.subsystems.rust", + "name": "RustSubsystem", + "provider": "pants.backend.experimental.rust", + "returned_by_rules": ["construct_scope_rust"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "pants.backend.rust.util_rules.toolchains.RustBinaryPathRequest": { + "consumed_by_rules": [ + "pants.backend.rust.util_rules.toolchains.rust_binary_path" + ], + "dependencies": [], + "dependents": ["pants.backend.experimental.rust"], + "documentation": "RustBinaryPathRequest(binary: 'str')", + "is_union": false, + "module": "pants.backend.rust.util_rules.toolchains", + "name": "RustBinaryPathRequest", + "provider": "pants.backend.rust.util_rules.toolchains", + "returned_by_rules": [], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.rust.util_rules.toolchains.rust_toolchain_process" + ] + }, + "pants.backend.rust.util_rules.toolchains.RustToolchainProcess": { + "consumed_by_rules": [ + "pants.backend.rust.util_rules.toolchains.rust_toolchain_process" + ], + "dependencies": [], + "dependents": ["pants.backend.experimental.rust"], + "documentation": "RustToolchainProcess(binary: 'str', args: 'Iterable[str]', input_digest: 'Digest', description: 'str', level: 'LogLevel' = , output_files: 'Iterable[str] | None' = None, output_directories: 'Iterable[str] | None' = None, platform: 'Platform | None' = None, cache_scope: 'ProcessCacheScope | None' = None)", + "is_union": false, + "module": "pants.backend.rust.util_rules.toolchains", + "name": "RustToolchainProcess", + "provider": "pants.backend.rust.util_rules.toolchains", + "returned_by_rules": [], + "union_members": [], + "union_type": null, + "used_in_rules": ["pants.backend.rust.lint.rustfmt.rules.rustfmt_fmt"] + }, + "pants.backend.rust.util_rules.toolchains.RustupBinary": { + "consumed_by_rules": [ + "pants.backend.rust.util_rules.toolchains.rust_binary_path" + ], + "dependencies": ["pants.backend.experimental.javascript", "pants.core"], + "dependents": ["pants.backend.experimental.rust"], + "documentation": "Path to the rustup binary used to select and gain access to Rust toolchains.", + "is_union": false, + "module": "pants.backend.rust.util_rules.toolchains", + "name": "RustupBinary", + "provider": "pants.backend.experimental.rust", + "returned_by_rules": [ + "pants.backend.rust.util_rules.toolchains.find_rustup" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, "pants.backend.scala.bsp.rules.HandleScalacOptionsRequest": { "consumed_by_rules": [ "pants.backend.scala.bsp.rules.handle_bsp_scalac_options_request" @@ -38819,6 +45154,7 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.scala.bsp.rules", + "pants.backend.url_handlers.s3", "pants.base.build_root", "pants.core", "pants.engine.fs" @@ -38966,6 +45302,7 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.scala.bsp.rules", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.target", "pants.jvm.compile", @@ -39122,7 +45459,9 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.experimental.kotlin", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.scala.compile.scalac_plugins", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.target" ], @@ -39312,16 +45651,20 @@ ], "dependencies": [ "builtins", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.scrooge.java", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.experimental.java.lint.google_java_format", "pants.backend.experimental.kotlin", "pants.backend.experimental.kotlin.lint.ktlint", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.python.lint.ruff", "pants.backend.experimental.scala.lint.scalafmt", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.process" ], @@ -39344,15 +45687,19 @@ ], "dependencies": [ "builtins", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.scrooge.java", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.experimental.java.lint.google_java_format", "pants.backend.experimental.kotlin", "pants.backend.experimental.kotlin.lint.ktlint", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.scala.lint.scalafmt", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.scala"], @@ -39390,7 +45737,10 @@ "pants.backend.scala.dependency_inference.scala_parser.ScalaSourceDependencyAnalysis": { "consumed_by_rules": [], "dependencies": ["pants.backend.experimental.helm", "pants.engine.fs"], - "dependents": ["pants.backend.experimental.scala"], + "dependents": [ + "pants.backend.experimental.scala", + "pants.backend.experimental.scala.debug_goals" + ], "documentation": "ScalaSourceDependencyAnalysis(provided_symbols: 'FrozenOrderedSet[ScalaProvidedSymbol]', provided_symbols_encoded: 'FrozenOrderedSet[ScalaProvidedSymbol]', imports_by_scope: 'FrozenDict[str, tuple[ScalaImport, ...]]', consumed_symbols_by_scope: 'FrozenDict[str, FrozenOrderedSet[str]]', scopes: 'FrozenOrderedSet[str]')", "is_union": false, "module": "pants.backend.scala.dependency_inference.scala_parser", @@ -39403,7 +45753,8 @@ "union_type": null, "used_in_rules": [ "pants.backend.scala.dependency_inference.rules.infer_scala_dependencies_via_source_analysis", - "pants.backend.scala.dependency_inference.symbol_mapper.map_first_party_scala_targets_to_symbols" + "pants.backend.scala.dependency_inference.symbol_mapper.map_first_party_scala_targets_to_symbols", + "pants.backend.scala.goals.debug_goals.dump_scala_source_analysis" ] }, "pants.backend.scala.dependency_inference.symbol_mapper.AllScalaTargets": { @@ -39455,6 +45806,41 @@ "union_type": "CheckRequest", "used_in_rules": [] }, + "pants.backend.scala.goals.debug_goals.DumpScalaSourceAnalysis": { + "consumed_by_rules": [], + "dependencies": [ + "pants.backend.experimental.go", + "pants.backend.experimental.scala", + "pants.core", + "pants.engine.console" + ], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.scala.goals.debug_goals", + "name": "DumpScalaSourceAnalysis", + "provider": "pants.backend.experimental.scala.debug_goals", + "returned_by_rules": [ + "pants.backend.scala.goals.debug_goals.dump_scala_source_analysis" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "pants.backend.scala.goals.debug_goals.DumpScalaSourceAnalysisSubsystem": { + "consumed_by_rules": [], + "dependencies": ["pants.option.scope"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.scala.goals.debug_goals", + "name": "DumpScalaSourceAnalysisSubsystem", + "provider": "pants.backend.experimental.scala.debug_goals", + "returned_by_rules": ["construct_scope_scala_dump_source_analysis"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, "pants.backend.scala.goals.repl.ScalaRepl": { "consumed_by_rules": [ "pants.backend.scala.goals.repl.create_scala_repl_request" @@ -39622,6 +46008,8 @@ "pants.backend.scala.subsystems.scala.ScalaSubsystem": { "consumed_by_rules": [ "pants.backend.codegen.protobuf.scala.dependency_inference.resolve_scalapb_runtime_for_resolve", + "pants.backend.codegen.thrift.scrooge.java.rules.resolve_scrooge_thrift_java_runtime_for_resolve", + "pants.backend.codegen.thrift.scrooge.scala.rules.resolve_scrooge_thrift_scala_runtime_for_resolve", "pants.backend.scala.bsp.rules.bsp_resolve_scala_metadata", "pants.backend.scala.compile.scalac.compile_scala_source", "pants.backend.scala.dependency_inference.rules.resolve_scala_library_for_resolve", @@ -39634,6 +46022,8 @@ "dependencies": ["pants.option.scope"], "dependents": [ "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.scrooge.java", + "pants.backend.experimental.codegen.thrift.scrooge.scala", "pants.backend.experimental.scala" ], "documentation": null, @@ -39799,18 +46189,22 @@ "consumed_by_rules": [], "dependencies": [ "builtins", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.scrooge.java", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.experimental.java.lint.google_java_format", + "pants.backend.experimental.javascript", "pants.backend.experimental.kotlin", "pants.backend.experimental.kotlin.lint.ktlint", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.scala.lint.scalafmt", "pants.backend.scala.test.scalatest", - "pants.core", - "pants.engine.env_vars" + "pants.backend.url_handlers.s3", + "pants.core" ], "dependents": ["pants.backend.experimental.scala"], "documentation": "TestSetup(process: 'JvmProcess', reports_dir_prefix: 'str')", @@ -39862,6 +46256,7 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.scala.bsp.rules.bsp_resolve_scala_metadata", "pants.backend.scala.compile.scalac.compile_scala_source", "pants.backend.scala.compile.scalac.fetch_scala_library", "pants.backend.scala.dependency_inference.rules.resolve_scala_library_for_resolve", @@ -39884,6 +46279,7 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.scala.bsp.rules.bsp_resolve_scala_metadata", "pants.backend.scala.compile.scalac.compile_scala_source", "pants.backend.scala.compile.scalac.fetch_scala_library", "pants.backend.scala.dependency_inference.rules.resolve_scala_library_for_resolve", @@ -39950,9 +46346,10 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.python.lint.ruff", + "pants.backend.url_handlers.s3", "pants.core", - "pants.engine.platform", "pants.engine.process" ], "dependents": ["pants.backend.shell"], @@ -40197,9 +46594,10 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", + "pants.backend.url_handlers.s3", "pants.core", - "pants.engine.fs", - "pants.engine.platform" + "pants.engine.fs" ], "dependents": ["pants.backend.shell"], "documentation": "TestSetup(process: pants.engine.process.Process)", @@ -40243,7 +46641,7 @@ "pants.backend.shell.util_rules.shell_command.prepare_process_request_from_target", "pants.backend.shell.util_rules.shell_command.run_adhoc_result_from_target" ], - "dependencies": ["pants.core", "pants.engine.env_vars"], + "dependencies": ["pants.backend.experimental.javascript", "pants.core"], "dependents": ["pants.backend.shell"], "documentation": null, "is_union": false, @@ -40377,6 +46775,22 @@ "pants.backend.shell.util_rules.shell_command.shell_command_in_sandbox" ] }, + "pants.backend.swift.goals.tailor.PutativeSwiftTargetsRequest": { + "consumed_by_rules": [ + "pants.backend.swift.goals.tailor.find_putative_targets" + ], + "dependencies": ["pants.core"], + "dependents": ["pants.backend.experimental.swift"], + "documentation": "PutativeSwiftTargetsRequest(dirs: 'tuple[str, ...]')", + "is_union": false, + "module": "pants.backend.swift.goals.tailor", + "name": "PutativeSwiftTargetsRequest", + "provider": "pants.backend.experimental.swift", + "returned_by_rules": [], + "union_members": [], + "union_type": "PutativeTargetsRequest", + "used_in_rules": [] + }, "pants.backend.terraform.dependencies.TerraformDependenciesRequest": { "consumed_by_rules": [ "pants.backend.terraform.dependencies.get_terraform_providers" @@ -40402,6 +46816,7 @@ "pants.backend.experimental.java", "pants.backend.experimental.python.lint.ruff", "pants.backend.terraform.dependencies", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.process" ], @@ -40445,6 +46860,7 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.terraform.dependencies", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.terraform"], @@ -40507,6 +46923,7 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.python", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.terraform"], @@ -40651,6 +47068,51 @@ "union_type": "AbstractLintRequest", "used_in_rules": [] }, + "pants.backend.terraform.lint.tfsec.tfsec.SkipTfSecField": { + "consumed_by_rules": [], + "dependencies": ["pants.engine.target"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.terraform.lint.tfsec.tfsec", + "name": "SkipTfSecField", + "provider": "pants.backend.experimental.terraform.lint.tfsec", + "returned_by_rules": [], + "union_members": [], + "union_type": "PluginField", + "used_in_rules": [] + }, + "pants.backend.terraform.lint.tfsec.tfsec.TFSec": { + "consumed_by_rules": [ + "pants.backend.terraform.lint.tfsec.rules.run_tfsec", + "pants.core.util_rules.partitions._single_partition_field_set_rules.partitioner" + ], + "dependencies": ["pants.option.scope"], + "dependents": ["pants.backend.experimental.terraform.lint.tfsec"], + "documentation": "Static analysis of Terraform, by Aqua Security.", + "is_union": false, + "module": "pants.backend.terraform.lint.tfsec.tfsec", + "name": "TFSec", + "provider": "pants.backend.experimental.terraform.lint.tfsec", + "returned_by_rules": ["construct_scope_terraform_tfsec"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "pants.backend.terraform.lint.tfsec.tfsec.TfSecRequest": { + "consumed_by_rules": [], + "dependencies": ["pants.core"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.terraform.lint.tfsec.tfsec", + "name": "TfSecRequest", + "provider": "pants.backend.experimental.terraform.lint.tfsec", + "returned_by_rules": [], + "union_members": [], + "union_type": "AbstractLintRequest", + "used_in_rules": [] + }, "pants.backend.terraform.target_types.AllTerraformDeploymentTargets": { "consumed_by_rules": [], "dependencies": ["pants.backend.experimental.go"], @@ -40737,6 +47199,37 @@ "union_type": null, "used_in_rules": [] }, + "pants.backend.tools.taplo.rules.TaploFmtRequest": { + "consumed_by_rules": [], + "dependencies": ["pants.core"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.tools.taplo.rules", + "name": "TaploFmtRequest", + "provider": "pants.backend.tools.taplo", + "returned_by_rules": [], + "union_members": [], + "union_type": "AbstractLintRequest", + "used_in_rules": [] + }, + "pants.backend.tools.taplo.subsystem.Taplo": { + "consumed_by_rules": [ + "pants.backend.tools.taplo.rules.partition_inputs", + "pants.backend.tools.taplo.rules.taplo_fmt" + ], + "dependencies": ["pants.option.scope"], + "dependents": ["pants.backend.tools.taplo"], + "documentation": null, + "is_union": false, + "module": "pants.backend.tools.taplo.subsystem", + "name": "Taplo", + "provider": "pants.backend.tools.taplo", + "returned_by_rules": ["construct_scope_taplo"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, "pants.backend.tools.workunit_logger.rules.WorkunitLogger": { "consumed_by_rules": [ "pants.backend.tools.workunit_logger.rules.construct_callback" @@ -40833,6 +47326,157 @@ "union_type": null, "used_in_rules": [] }, + "pants.backend.url_handlers.s3.register.AWSCredentials": { + "consumed_by_rules": [ + "pants.backend.url_handlers.s3.register.download_file_from_path_s3_authority", + "pants.backend.url_handlers.s3.register.download_file_from_virtual_hosted_s3_authority", + "pants.backend.url_handlers.s3.register.download_from_s3" + ], + "dependencies": [], + "dependents": ["pants.backend.url_handlers.s3"], + "documentation": "AWSCredentials(creds: 'Any')", + "is_union": false, + "module": "pants.backend.url_handlers.s3.register", + "name": "AWSCredentials", + "provider": "pants.backend.url_handlers.s3", + "returned_by_rules": [ + "pants.backend.url_handlers.s3.register.access_aws_credentials" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "pants.backend.url_handlers.s3.register.DownloadS3AuthorityPathStyleURL": { + "consumed_by_rules": [ + "pants.backend.url_handlers.s3.register.download_file_from_path_s3_authority" + ], + "dependencies": ["pants.engine.download_file"], + "dependents": ["pants.backend.url_handlers.s3"], + "documentation": null, + "is_union": false, + "module": "pants.backend.url_handlers.s3.register", + "name": "DownloadS3AuthorityPathStyleURL", + "provider": "pants.backend.url_handlers.s3", + "returned_by_rules": [], + "union_members": [], + "union_type": "URLDownloadHandler", + "used_in_rules": [] + }, + "pants.backend.url_handlers.s3.register.DownloadS3AuthorityVirtualHostedStyleURL": { + "consumed_by_rules": [ + "pants.backend.url_handlers.s3.register.download_file_from_virtual_hosted_s3_authority" + ], + "dependencies": ["pants.engine.download_file"], + "dependents": ["pants.backend.url_handlers.s3"], + "documentation": null, + "is_union": false, + "module": "pants.backend.url_handlers.s3.register", + "name": "DownloadS3AuthorityVirtualHostedStyleURL", + "provider": "pants.backend.url_handlers.s3", + "returned_by_rules": [], + "union_members": [], + "union_type": "URLDownloadHandler", + "used_in_rules": [] + }, + "pants.backend.url_handlers.s3.register.DownloadS3SchemeURL": { + "consumed_by_rules": [ + "pants.backend.url_handlers.s3.register.download_file_from_s3_scheme" + ], + "dependencies": ["pants.engine.download_file"], + "dependents": ["pants.backend.url_handlers.s3"], + "documentation": null, + "is_union": false, + "module": "pants.backend.url_handlers.s3.register", + "name": "DownloadS3SchemeURL", + "provider": "pants.backend.url_handlers.s3", + "returned_by_rules": [], + "union_members": [], + "union_type": "URLDownloadHandler", + "used_in_rules": [] + }, + "pants.backend.url_handlers.s3.register.S3DownloadFile": { + "consumed_by_rules": [ + "pants.backend.url_handlers.s3.register.download_from_s3" + ], + "dependencies": [], + "dependents": ["pants.backend.url_handlers.s3"], + "documentation": "S3DownloadFile(region: 'str', bucket: 'str', key: 'str', query: 'str', expected_digest: 'FileDigest')", + "is_union": false, + "module": "pants.backend.url_handlers.s3.register", + "name": "S3DownloadFile", + "provider": "pants.backend.url_handlers.s3", + "returned_by_rules": [], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.url_handlers.s3.register.download_file_from_path_s3_authority", + "pants.backend.url_handlers.s3.register.download_file_from_s3_scheme", + "pants.backend.url_handlers.s3.register.download_file_from_virtual_hosted_s3_authority" + ] + }, + "pants.backend.visibility.lint.EnforceVisibilityRules": { + "consumed_by_rules": [], + "dependencies": ["pants.core"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.backend.visibility.lint", + "name": "EnforceVisibilityRules", + "provider": "pants.backend.experimental.visibility", + "returned_by_rules": [], + "union_members": [], + "union_type": "AbstractLintRequest", + "used_in_rules": [] + }, + "pants.backend.visibility.rules.BuildFileVisibilityImplementationRequest": { + "consumed_by_rules": [ + "pants.backend.visibility.rules.build_file_visibility_implementation" + ], + "dependencies": ["pants.engine.internals.dep_rules"], + "dependents": ["pants.backend.experimental.visibility"], + "documentation": null, + "is_union": false, + "module": "pants.backend.visibility.rules", + "name": "BuildFileVisibilityImplementationRequest", + "provider": "pants.backend.experimental.visibility", + "returned_by_rules": [], + "union_members": [], + "union_type": "BuildFileDependencyRulesImplementationRequest", + "used_in_rules": [] + }, + "pants.backend.visibility.rules.VisibilityValidateDependenciesRequest": { + "consumed_by_rules": [ + "pants.backend.visibility.rules.visibility_validate_dependencies" + ], + "dependencies": ["pants.engine.target"], + "dependents": ["pants.backend.experimental.visibility"], + "documentation": null, + "is_union": false, + "module": "pants.backend.visibility.rules", + "name": "VisibilityValidateDependenciesRequest", + "provider": "pants.backend.experimental.visibility", + "returned_by_rules": [], + "union_members": [], + "union_type": "ValidateDependenciesRequest", + "used_in_rules": [] + }, + "pants.backend.visibility.subsystem.VisibilitySubsystem": { + "consumed_by_rules": [ + "pants.backend.visibility.rules.visibility_validate_dependencies", + "pants.core.util_rules.partitions._single_partition_field_set_rules.partitioner" + ], + "dependencies": ["pants.option.scope"], + "dependents": ["pants.backend.experimental.visibility"], + "documentation": null, + "is_union": false, + "module": "pants.backend.visibility.subsystem", + "name": "VisibilitySubsystem", + "provider": "pants.backend.experimental.visibility", + "returned_by_rules": ["construct_scope_visibility"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, "pants.base.specs.RawSpecs": { "consumed_by_rules": [], "dependencies": [], @@ -40852,6 +47496,7 @@ "pants.backend.javascript.package_json.find_owning_package", "pants.backend.openapi.dependency_inference.infer_openapi_document_dependencies", "pants.backend.openapi.dependency_inference.infer_openapi_module_dependencies", + "pants.backend.python.framework.django.detect_apps.detect_django_apps", "pants.backend.python.goals.tailor.find_putative_targets", "pants.backend.python.util_rules.package_dists.get_exporting_owner", "pants.backend.terraform.dependency_inference.infer_terraform_module_dependencies", @@ -40998,6 +47643,7 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.experimental.scala", + "pants.backend.url_handlers.s3", "pants.bsp.spec.compile", "pants.bsp.util_rules.targets", "pants.engine.fs" @@ -41037,6 +47683,7 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.experimental.scala", + "pants.backend.url_handlers.s3", "pants.bsp.spec.resources", "pants.bsp.util_rules.targets", "pants.engine.fs" @@ -41061,6 +47708,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.bsp.spec.targets", "pants.engine.fs" ], @@ -41116,6 +47764,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.bsp.spec.targets", "pants.engine.fs" ], @@ -41319,6 +47968,7 @@ "builtins", "pants.backend.experimental.go", "pants.backend.experimental.helm", + "pants.backend.url_handlers.s3", "pants.base.build_root", "pants.core" ], @@ -41362,6 +48012,8 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.kotlin", + "pants.backend.experimental.openapi.codegen.java", + "pants.backend.url_handlers.s3", "pants.bsp.util_rules.compile", "pants.engine.target", "pants.engine.unions", @@ -41408,6 +48060,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.base.build_root", "pants.core" ], @@ -41449,6 +48102,7 @@ "builtins", "pants.backend.experimental.go", "pants.backend.experimental.helm", + "pants.backend.url_handlers.s3", "pants.base.build_root", "pants.bsp.util_rules.resources", "pants.engine.target", @@ -41540,6 +48194,7 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.experimental.scala", + "pants.backend.url_handlers.s3", "pants.base.build_root", "pants.bsp.util_rules.targets", "pants.engine.unions" @@ -41615,6 +48270,7 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.experimental.scala", + "pants.backend.url_handlers.s3", "pants.bsp.util_rules.targets", "pants.engine.unions" ], @@ -41684,8 +48340,10 @@ "consumed_by_rules": [], "dependencies": [ "pants.backend.experimental.go", + "pants.backend.experimental.helm.check.kubeconform", "pants.backend.experimental.java", "pants.backend.experimental.kotlin", + "pants.backend.experimental.python.typecheck.pyright", "pants.backend.experimental.python.typecheck.pytype", "pants.backend.experimental.scala", "pants.backend.experimental.terraform", @@ -41712,8 +48370,10 @@ "dependencies": [], "dependents": [ "pants.backend.experimental.go", + "pants.backend.experimental.helm.check.kubeconform", "pants.backend.experimental.java", "pants.backend.experimental.kotlin", + "pants.backend.experimental.python.typecheck.pyright", "pants.backend.experimental.python.typecheck.pytype", "pants.backend.experimental.scala", "pants.backend.experimental.terraform", @@ -41729,7 +48389,10 @@ "GoCheckRequest", "JavacCheckRequest", "KotlincCheckRequest", + "KubeconformCheckChartRequest", + "KubeconformCheckDeploymentRequest", "MyPyRequest", + "PyrightRequest", "PytypeRequest", "ScalacCheckRequest", "TerraformCheckRequest" @@ -41745,16 +48408,26 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.openapi.lint.spectral", "pants.backend.experimental.python.lint.ruff", + "pants.backend.experimental.rust", "pants.backend.experimental.terraform", + "pants.backend.helm.check.kubeconform.chart", + "pants.backend.helm.check.kubeconform.common", + "pants.backend.helm.check.kubeconform.deployment", "pants.backend.python", "pants.backend.shell", + "pants.backend.url_handlers.s3", "pants.base.build_root", "pants.core", + "pants.engine.fs", "pants.engine.process" ], "dependents": [ + "pants.backend.experimental.helm.check.kubeconform", + "pants.backend.experimental.python.typecheck.pyright", "pants.backend.experimental.python.typecheck.pytype", "pants.backend.python.typecheck.mypy" ], @@ -41762,15 +48435,24 @@ "is_union": false, "module": "pants.core.goals.check", "name": "CheckResult", - "provider": "pants.backend.experimental.python.typecheck.pytype, pants.backend.python.typecheck.mypy", + "provider": "pants.backend.experimental.helm.check.kubeconform, pants.backend.experimental.python.typecheck.pyright, pants.backend.experimental.python.typecheck.pytype, pants.backend.python.typecheck.mypy", "returned_by_rules": [ + "pants.backend.helm.check.kubeconform.chart.run_kubeconform_on_chart", + "pants.backend.helm.check.kubeconform.common.run_kubeconform", + "pants.backend.helm.check.kubeconform.deployment.run_kubeconform_on_deployment", "pants.backend.python.typecheck.mypy.rules.mypy_typecheck_partition", + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck_partition", "pants.backend.python.typecheck.pytype.rules.pytype_typecheck_partition" ], "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.helm.check.kubeconform.chart.run_check_chart", + "pants.backend.helm.check.kubeconform.chart.run_kubeconform_on_chart", + "pants.backend.helm.check.kubeconform.deployment.run_check_deployment", + "pants.backend.helm.check.kubeconform.deployment.run_kubeconform_on_deployment", "pants.backend.python.typecheck.mypy.rules.mypy_typecheck", + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck", "pants.backend.python.typecheck.pytype.rules.pytype_typecheck" ] }, @@ -41778,6 +48460,7 @@ "consumed_by_rules": [], "dependencies": [ "pants.backend.experimental.codegen.protobuf.go", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.python.lint.ruff", "pants.backend.python", "pants.engine.process", @@ -41789,12 +48472,15 @@ "is_union": false, "module": "pants.core.goals.check", "name": "CheckResults", - "provider": "pants.backend.experimental.go, pants.backend.experimental.java, pants.backend.experimental.kotlin, pants.backend.experimental.python.typecheck.pytype, pants.backend.experimental.scala, pants.backend.experimental.terraform, pants.backend.python.typecheck.mypy", + "provider": "pants.backend.experimental.go, pants.backend.experimental.helm.check.kubeconform, pants.backend.experimental.java, pants.backend.experimental.kotlin, pants.backend.experimental.python.typecheck.pyright, pants.backend.experimental.python.typecheck.pytype, pants.backend.experimental.scala, pants.backend.experimental.terraform, pants.backend.python.typecheck.mypy", "returned_by_rules": [ "pants.backend.go.goals.check.check_go", + "pants.backend.helm.check.kubeconform.chart.run_check_chart", + "pants.backend.helm.check.kubeconform.deployment.run_check_deployment", "pants.backend.java.goals.check.javac_check", "pants.backend.kotlin.goals.check.kotlinc_check", "pants.backend.python.typecheck.mypy.rules.mypy_typecheck", + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck", "pants.backend.python.typecheck.pytype.rules.pytype_typecheck", "pants.backend.scala.goals.check.scalac_check", "pants.backend.terraform.goals.check.terraform_check" @@ -41917,10 +48603,11 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.python", + "pants.backend.url_handlers.s3", "pants.base.build_root", "pants.engine.console", - "pants.engine.env_vars", "pants.engine.fs", "pants.engine.process", "pants.engine.target", @@ -41958,6 +48645,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.python"], @@ -42017,11 +48705,15 @@ "pants.backend.build_files.fmt.buildifier", "pants.backend.build_files.fmt.yapf", "pants.backend.codegen.protobuf.lint.buf", + "pants.backend.experimental.cc.lint.clangformat", + "pants.backend.experimental.cue", "pants.backend.experimental.go", "pants.backend.experimental.java.lint.google_java_format", + "pants.backend.experimental.javascript.lint.prettier", "pants.backend.experimental.kotlin.lint.ktlint", "pants.backend.experimental.python.lint.add_trailing_comma", "pants.backend.experimental.python.lint.ruff", + "pants.backend.experimental.rust", "pants.backend.experimental.scala.lint.scalafmt", "pants.backend.experimental.terraform", "pants.backend.python.lint.autoflake", @@ -42031,7 +48723,8 @@ "pants.backend.python.lint.pyupgrade", "pants.backend.python.lint.yapf", "pants.backend.shell.lint.shfmt", - "pants.backend.tools.preamble" + "pants.backend.tools.preamble", + "pants.backend.tools.taplo" ], "documentation": null, "is_union": true, @@ -42046,18 +48739,23 @@ "BlackRequest", "BufFormatRequest", "BuildifierRequest", + "ClangFormatRequest", + "CueFmtRequest", "DocformatterRequest", "GofmtRequest", "GoogleJavaFormatRequest", "IsortRequest", "KtlintRequest", "PreambleRequest", + "PrettierFmtRequest", "PyUpgradeRequest", "RenameFieldsInFilesRequest", "RenameTargetsInFilesRequest", "RuffFixRequest", + "RustfmtRequest", "ScalafmtRequest", "ShfmtRequest", + "TaploFmtRequest", "TffmtRequest", "YapfRequest", "YapfRequest" @@ -42066,14 +48764,16 @@ "used_in_rules": [] }, "pants.core.goals.fix.Batch": { - "consumed_by_rules": ["pants.backend.python.lint.black.rules.black_fmt"], + "consumed_by_rules": [ + "pants.backend.python.lint.docformatter.rules.docformatter_fmt" + ], "dependencies": ["pants.core"], - "dependents": ["pants.backend.python.lint.black"], + "dependents": ["pants.backend.python.lint.docformatter"], "documentation": "Batch(tool_name: 'str', elements: 'tuple[PartitionElementT, ...]', partition_metadata: 'PartitionMetadataT', snapshot: 'Snapshot')", "is_union": true, "module": "pants.core.goals.fix", "name": "Batch", - "provider": "pants.backend.python.lint.black", + "provider": "pants.backend.python.lint.docformatter", "returned_by_rules": [], "union_members": [], "union_type": "Batch", @@ -42089,18 +48789,27 @@ "pants.backend.build_files.fmt.yapf", "pants.backend.codegen.protobuf.lint.buf", "pants.backend.docker.lint.hadolint", + "pants.backend.experimental.cc.lint.clangformat", + "pants.backend.experimental.cue", "pants.backend.experimental.go", + "pants.backend.experimental.go.lint.golangci_lint", + "pants.backend.experimental.go.lint.vet", "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.experimental.java.lint.google_java_format", + "pants.backend.experimental.javascript", + "pants.backend.experimental.javascript.lint.prettier", "pants.backend.experimental.kotlin.lint.ktlint", "pants.backend.experimental.openapi.lint.spectral", "pants.backend.experimental.python.lint.add_trailing_comma", "pants.backend.experimental.python.lint.ruff", + "pants.backend.experimental.rust", "pants.backend.experimental.scala", "pants.backend.experimental.scala.lint.scalafmt", "pants.backend.experimental.terraform", + "pants.backend.experimental.terraform.lint.tfsec", "pants.backend.experimental.tools.yamllint", + "pants.backend.experimental.visibility", "pants.backend.project_info", "pants.backend.python", "pants.backend.python.lint.autoflake", @@ -42117,6 +48826,8 @@ "pants.backend.shell.lint.shellcheck", "pants.backend.shell.lint.shfmt", "pants.backend.tools.preamble", + "pants.backend.tools.taplo", + "pants.backend.url_handlers.s3", "pants.base.specs", "pants.engine.console", "pants.engine.fs", @@ -42141,15 +48852,19 @@ "dependencies": [ "builtins", "pants.backend.build_files.fix.deprecations", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.scrooge.java", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.kotlin", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.scala", "pants.backend.python", + "pants.backend.url_handlers.s3", "pants.engine.fs", - "pants.engine.platform", "pants.engine.process", "pants.option.global_options" ], @@ -42158,16 +48873,19 @@ "is_union": false, "module": "pants.core.goals.fix", "name": "FixResult", - "provider": "pants.backend.build_files.fmt.black, pants.backend.build_files.fmt.buildifier, pants.backend.build_files.fmt.yapf, pants.backend.codegen.protobuf.lint.buf, pants.backend.experimental.go, pants.backend.experimental.java.lint.google_java_format, pants.backend.experimental.kotlin.lint.ktlint, pants.backend.experimental.python.lint.add_trailing_comma, pants.backend.experimental.python.lint.ruff, pants.backend.experimental.scala.lint.scalafmt, pants.backend.experimental.terraform, pants.backend.python.lint.autoflake, pants.backend.python.lint.black, pants.backend.python.lint.docformatter, pants.backend.python.lint.isort, pants.backend.python.lint.pyupgrade, pants.backend.python.lint.yapf, pants.backend.shell.lint.shfmt, pants.backend.tools.preamble, pants.core", + "provider": "pants.backend.build_files.fmt.black, pants.backend.build_files.fmt.buildifier, pants.backend.build_files.fmt.yapf, pants.backend.codegen.protobuf.lint.buf, pants.backend.experimental.cc.lint.clangformat, pants.backend.experimental.cue, pants.backend.experimental.go, pants.backend.experimental.java.lint.google_java_format, pants.backend.experimental.javascript.lint.prettier, pants.backend.experimental.kotlin.lint.ktlint, pants.backend.experimental.python.lint.add_trailing_comma, pants.backend.experimental.python.lint.ruff, pants.backend.experimental.rust, pants.backend.experimental.scala.lint.scalafmt, pants.backend.experimental.terraform, pants.backend.python.lint.autoflake, pants.backend.python.lint.black, pants.backend.python.lint.docformatter, pants.backend.python.lint.isort, pants.backend.python.lint.pyupgrade, pants.backend.python.lint.yapf, pants.backend.shell.lint.shfmt, pants.backend.tools.preamble, pants.backend.tools.taplo, pants.core", "returned_by_rules": [ "pants.backend.build_files.fix.deprecations.renamed_fields_rules.fix", "pants.backend.build_files.fix.deprecations.renamed_targets_rules.fix", "pants.backend.build_files.fmt.black.register.black_fmt", "pants.backend.build_files.fmt.buildifier.rules.buildfier_fmt", "pants.backend.build_files.fmt.yapf.register.yapf_fmt", + "pants.backend.cc.lint.clangformat.rules.clangformat_fmt", "pants.backend.codegen.protobuf.lint.buf.format_rules.run_buf_format", + "pants.backend.cue.goals.fix.run_cue_fmt", "pants.backend.go.lint.gofmt.rules.gofmt_fmt", "pants.backend.java.lint.google_java_format.rules.google_java_format_fmt", + "pants.backend.javascript.lint.prettier.rules.prettier_fmt", "pants.backend.kotlin.lint.ktlint.rules.ktlint_fmt", "pants.backend.python.lint.add_trailing_comma.rules.add_trailing_comma_fmt", "pants.backend.python.lint.autoflake.rules.autoflake_fix", @@ -42177,10 +48895,12 @@ "pants.backend.python.lint.pyupgrade.rules.pyupgrade_fix", "pants.backend.python.lint.ruff.rules.ruff_fix", "pants.backend.python.lint.yapf.rules.yapf_fmt", + "pants.backend.rust.lint.rustfmt.rules.rustfmt_fmt", "pants.backend.scala.lint.scalafmt.rules.scalafmt_fmt", "pants.backend.shell.lint.shfmt.rules.shfmt_fmt", "pants.backend.terraform.lint.tffmt.tffmt.tffmt_fmt", - "pants.backend.tools.preamble.rules.preamble_fmt" + "pants.backend.tools.preamble.rules.preamble_fmt", + "pants.backend.tools.taplo.rules.taplo_fmt" ], "union_members": [], "union_type": null, @@ -42222,11 +48942,15 @@ "pants.backend.build_files.fmt.buildifier", "pants.backend.build_files.fmt.yapf", "pants.backend.codegen.protobuf.lint.buf", + "pants.backend.experimental.cc.lint.clangformat", + "pants.backend.experimental.cue", "pants.backend.experimental.go", "pants.backend.experimental.java.lint.google_java_format", + "pants.backend.experimental.javascript.lint.prettier", "pants.backend.experimental.kotlin.lint.ktlint", "pants.backend.experimental.python.lint.add_trailing_comma", "pants.backend.experimental.python.lint.ruff", + "pants.backend.experimental.rust", "pants.backend.experimental.scala.lint.scalafmt", "pants.backend.experimental.terraform", "pants.backend.python.lint.autoflake", @@ -42236,7 +48960,8 @@ "pants.backend.python.lint.pyupgrade", "pants.backend.python.lint.yapf", "pants.backend.shell.lint.shfmt", - "pants.backend.tools.preamble" + "pants.backend.tools.preamble", + "pants.backend.tools.taplo" ], "dependents": ["pants.core"], "documentation": "_FixBatchResult(results: 'tuple[FixResult, ...]')", @@ -42257,10 +48982,14 @@ "pants.backend.build_files.fmt.buildifier", "pants.backend.build_files.fmt.yapf", "pants.backend.codegen.protobuf.lint.buf", + "pants.backend.experimental.cc.lint.clangformat", + "pants.backend.experimental.cue", "pants.backend.experimental.go", "pants.backend.experimental.java.lint.google_java_format", + "pants.backend.experimental.javascript.lint.prettier", "pants.backend.experimental.kotlin.lint.ktlint", "pants.backend.experimental.python.lint.add_trailing_comma", + "pants.backend.experimental.rust", "pants.backend.experimental.scala.lint.scalafmt", "pants.backend.experimental.terraform", "pants.backend.python.lint.black", @@ -42268,7 +48997,8 @@ "pants.backend.python.lint.isort", "pants.backend.python.lint.yapf", "pants.backend.shell.lint.shfmt", - "pants.backend.tools.preamble" + "pants.backend.tools.preamble", + "pants.backend.tools.taplo" ], "documentation": null, "is_union": true, @@ -42282,14 +49012,19 @@ "BlackRequest", "BufFormatRequest", "BuildifierRequest", + "ClangFormatRequest", + "CueFmtRequest", "DocformatterRequest", "GofmtRequest", "GoogleJavaFormatRequest", "IsortRequest", "KtlintRequest", "PreambleRequest", + "PrettierFmtRequest", + "RustfmtRequest", "ScalafmtRequest", "ShfmtRequest", + "TaploFmtRequest", "TffmtRequest", "YapfRequest", "YapfRequest" @@ -42307,18 +49042,27 @@ "pants.backend.build_files.fmt.yapf", "pants.backend.codegen.protobuf.lint.buf", "pants.backend.docker.lint.hadolint", + "pants.backend.experimental.cc.lint.clangformat", + "pants.backend.experimental.cue", "pants.backend.experimental.go", + "pants.backend.experimental.go.lint.golangci_lint", + "pants.backend.experimental.go.lint.vet", "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.experimental.java.lint.google_java_format", + "pants.backend.experimental.javascript", + "pants.backend.experimental.javascript.lint.prettier", "pants.backend.experimental.kotlin.lint.ktlint", "pants.backend.experimental.openapi.lint.spectral", "pants.backend.experimental.python.lint.add_trailing_comma", "pants.backend.experimental.python.lint.ruff", + "pants.backend.experimental.rust", "pants.backend.experimental.scala", "pants.backend.experimental.scala.lint.scalafmt", "pants.backend.experimental.terraform", + "pants.backend.experimental.terraform.lint.tfsec", "pants.backend.experimental.tools.yamllint", + "pants.backend.experimental.visibility", "pants.backend.project_info", "pants.backend.python", "pants.backend.python.lint.autoflake", @@ -42335,6 +49079,8 @@ "pants.backend.shell.lint.shellcheck", "pants.backend.shell.lint.shfmt", "pants.backend.tools.preamble", + "pants.backend.tools.taplo", + "pants.backend.url_handlers.s3", "pants.base.specs", "pants.engine.console", "pants.engine.fs", @@ -42369,14 +49115,22 @@ "pants.core.goals.generate_lockfiles.GenerateLockfile": { "consumed_by_rules": [], "dependencies": [], - "dependents": ["pants.backend.experimental.java", "pants.core"], + "dependents": [ + "pants.backend.experimental.java", + "pants.backend.experimental.javascript", + "pants.core" + ], "documentation": "A union base for generating ecosystem-specific lockfiles.\n\nEach language ecosystem should set up a subclass of `GenerateLockfile`, like\n`GeneratePythonLockfile` and `GenerateJVMLockfile`, and register a union rule. They should\nalso set up a simple rule that goes from that class -> `WrappedGenerateLockfile`.\n\nSubclasses will usually want to add additional properties, such as what requirements to\ninstall and Python interpreter constraints.", "is_union": true, "module": "pants.core.goals.generate_lockfiles", "name": "GenerateLockfile", "provider": "pants.core", "returned_by_rules": [], - "union_members": ["GenerateJvmLockfile", "GeneratePythonLockfile"], + "union_members": [ + "GenerateJvmLockfile", + "GeneratePackageLockJsonFile", + "GeneratePythonLockfile" + ], "union_type": null, "used_in_rules": [ "pants.core.goals.generate_lockfiles.generate_lockfiles_goal" @@ -42388,6 +49142,7 @@ "builtins", "pants.backend.experimental.go", "pants.backend.experimental.helm", + "pants.backend.url_handlers.s3", "pants.engine.fs", "pants.jvm.resolve.coursier_fetch" ], @@ -42396,8 +49151,9 @@ "is_union": false, "module": "pants.core.goals.generate_lockfiles", "name": "GenerateLockfileResult", - "provider": "pants.backend.experimental.java, pants.core", + "provider": "pants.backend.experimental.java, pants.backend.experimental.javascript, pants.core", "returned_by_rules": [ + "pants.backend.javascript.goals.lockfile.generate_lockfile_from_package_jsons", "pants.backend.python.goals.lockfile.generate_lockfile", "pants.jvm.goals.lockfile.generate_jvm_lockfile" ], @@ -42414,6 +49170,8 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", + "pants.backend.url_handlers.s3", "pants.engine.console", "pants.engine.environment", "pants.engine.fs", @@ -42454,12 +49212,15 @@ "consumed_by_rules": [], "dependencies": [], "dependents": [ + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.scrooge.java", "pants.backend.experimental.java", "pants.backend.experimental.java.lint.google_java_format", "pants.backend.experimental.kotlin", "pants.backend.experimental.kotlin.lint.ktlint", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.scala", "pants.backend.experimental.scala.lint.scalafmt" ], @@ -42470,6 +49231,7 @@ "provider": "pants.core", "returned_by_rules": [], "union_members": [ + "AvroToolLockfileSentinel", "GoogleJavaFormatToolLockfileSentinel", "GrpcJavaToolLockfileSentinel", "JarJarGeneratorLockfileSentinel", @@ -42478,10 +49240,12 @@ "JunitToolLockfileSentinel", "KotlinParserToolLockfileSentinel", "KtlintToolLockfileSentinel", + "OpenAPIGeneratorLockfileSentinel", "ScalaParserToolLockfileSentinel", "ScalafmtToolLockfileSentinel", "ScalapbcToolLockfileSentinel", "ScalatestToolLockfileSentinel", + "ScroogeToolLockfileSentinel", "StripJarToolLockfileSentinel" ], "union_type": null, @@ -42497,8 +49261,9 @@ "is_union": false, "module": "pants.core.goals.generate_lockfiles", "name": "KnownUserResolveNames", - "provider": "pants.backend.experimental.java, pants.core", + "provider": "pants.backend.experimental.java, pants.backend.experimental.javascript, pants.core", "returned_by_rules": [ + "pants.backend.javascript.goals.lockfile.determine_package_json_user_resolves", "pants.backend.python.goals.lockfile.determine_python_user_resolves", "pants.jvm.goals.lockfile.determine_jvm_user_resolves" ], @@ -42512,7 +49277,11 @@ "pants.core.goals.generate_lockfiles.KnownUserResolveNamesRequest": { "consumed_by_rules": [], "dependencies": [], - "dependents": ["pants.backend.experimental.java", "pants.core"], + "dependents": [ + "pants.backend.experimental.java", + "pants.backend.experimental.javascript", + "pants.core" + ], "documentation": "A hook for a language ecosystem to declare which resolves it has defined.\n\nEach language ecosystem should set up a subclass and register it with a UnionRule. Implement a\nrule that goes from the subclass -> KnownUserResolveNames, usually by simply reading the\n`resolves` option from the relevant subsystem.", "is_union": true, "module": "pants.core.goals.generate_lockfiles", @@ -42521,6 +49290,7 @@ "returned_by_rules": [], "union_members": [ "KnownJVMUserResolveNamesRequest", + "KnownPackageJsonUserResolveNamesRequest", "KnownPythonUserResolveNamesRequest" ], "union_type": null, @@ -42532,7 +49302,11 @@ "pants.core.goals.generate_lockfiles.RequestedUserResolveNames": { "consumed_by_rules": [], "dependencies": [], - "dependents": ["pants.backend.experimental.java", "pants.core"], + "dependents": [ + "pants.backend.experimental.java", + "pants.backend.experimental.javascript", + "pants.core" + ], "documentation": "The user resolves requested for a particular language ecosystem.\n\nEach language ecosystem should set up a subclass and register it with a UnionRule. Implement a\nrule that goes from the subclass -> UserGenerateLockfiles.", "is_union": true, "module": "pants.core.goals.generate_lockfiles", @@ -42541,6 +49315,7 @@ "returned_by_rules": [], "union_members": [ "RequestedJVMUserResolveNames", + "RequestedPackageJsonUserResolveNames", "RequestedPythonUserResolveNames" ], "union_type": null, @@ -42556,8 +49331,9 @@ "is_union": false, "module": "pants.core.goals.generate_lockfiles", "name": "UserGenerateLockfiles", - "provider": "pants.backend.experimental.java, pants.core", + "provider": "pants.backend.experimental.java, pants.backend.experimental.javascript, pants.core", "returned_by_rules": [ + "pants.backend.javascript.goals.lockfile.setup_user_lockfile_requests", "pants.backend.python.goals.lockfile.setup_user_lockfile_requests", "pants.jvm.goals.lockfile.setup_user_lockfile_requests" ], @@ -42647,6 +49423,7 @@ "builtins", "pants.backend.experimental.go", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.engine.environment" ], "dependents": ["pants.core"], @@ -42690,16 +49467,24 @@ "pants.backend.build_files.fmt.yapf", "pants.backend.codegen.protobuf.lint.buf", "pants.backend.docker.lint.hadolint", + "pants.backend.experimental.cc.lint.clangformat", + "pants.backend.experimental.cue", "pants.backend.experimental.go", + "pants.backend.experimental.go.lint.golangci_lint", + "pants.backend.experimental.go.lint.vet", "pants.backend.experimental.helm", "pants.backend.experimental.java.lint.google_java_format", + "pants.backend.experimental.javascript.lint.prettier", "pants.backend.experimental.kotlin.lint.ktlint", "pants.backend.experimental.openapi.lint.spectral", "pants.backend.experimental.python.lint.add_trailing_comma", "pants.backend.experimental.python.lint.ruff", + "pants.backend.experimental.rust", "pants.backend.experimental.scala.lint.scalafmt", "pants.backend.experimental.terraform", + "pants.backend.experimental.terraform.lint.tfsec", "pants.backend.experimental.tools.yamllint", + "pants.backend.experimental.visibility", "pants.backend.project_info", "pants.backend.python.lint.autoflake", "pants.backend.python.lint.bandit", @@ -42713,7 +49498,8 @@ "pants.backend.python.lint.yapf", "pants.backend.shell.lint.shellcheck", "pants.backend.shell.lint.shfmt", - "pants.backend.tools.preamble" + "pants.backend.tools.preamble", + "pants.backend.tools.taplo" ], "documentation": "Base class for plugin types wanting to be run as part of `lint`.\n\nPlugins should define a new type which subclasses either `LintTargetsRequest` (to lint targets)\nor `LintFilesRequest` (to lint arbitrary files), and set the appropriate class variables.\nE.g.\n class DryCleaningRequest(LintTargetsRequest):\n name = DryCleaningSubsystem.options_scope\n field_set_type = DryCleaningFieldSet\n\nThen, define 2 `@rule`s:\n 1. A rule which takes an instance of your request type's `PartitionRequest` class property,\n and returns a `Partitions` instance.\n E.g.\n @rule\n async def partition(\n request: DryCleaningRequest.PartitionRequest[DryCleaningFieldSet]\n # or `request: DryCleaningRequest.PartitionRequest` if file linter\n subsystem: DryCleaningSubsystem,\n ) -> Partitions[DryCleaningFieldSet, Any]:\n if subsystem.skip:\n return Partitions()\n\n # One possible implementation\n return Partitions.single_partition(request.field_sets)\n\n 2. A rule which takes an instance of your request type's `Batch` class property, and\n returns a `LintResult instance.\n E.g.\n @rule\n async def dry_clean(\n request: DryCleaningRequest.Batch,\n ) -> LintResult:\n ...\n\nLastly, register the rules which tell Pants about your plugin.\nE.g.\n def rules():\n return [\n *collect_rules(),\n *DryCleaningRequest.rules()\n ]", "is_union": true, @@ -42730,15 +49516,22 @@ "BufFormatRequest", "BufLintRequest", "BuildifierRequest", + "ClangFormatRequest", + "CueFmtRequest", + "CueLintRequest", "DocformatterRequest", + "EnforceVisibilityRules", "Flake8Request", + "GoVetRequest", "GofmtRequest", + "GolangciLintRequest", "GoogleJavaFormatRequest", "HadolintRequest", "HelmLintRequest", "IsortRequest", "KtlintRequest", "PreambleRequest", + "PrettierFmtRequest", "PyUpgradeRequest", "PydocstyleRequest", "PylintRequest", @@ -42747,10 +49540,13 @@ "RenameTargetsInFilesRequest", "RuffFixRequest", "RuffLintRequest", + "RustfmtRequest", "ScalafmtRequest", "ShellcheckRequest", "ShfmtRequest", "SpectralRequest", + "TaploFmtRequest", + "TfSecRequest", "TffmtRequest", "YamllintRequest", "YapfRequest", @@ -42761,15 +49557,15 @@ }, "pants.core.goals.lint.Batch": { "consumed_by_rules": [ - "pants.backend.project_info.regex_lint.lint_with_regex_patterns" + "pants.backend.visibility.lint.check_visibility_rule_violations" ], "dependencies": ["pants.core"], - "dependents": ["pants.backend.project_info"], + "dependents": ["pants.backend.experimental.visibility"], "documentation": null, "is_union": true, "module": "pants.core.goals.lint", "name": "Batch", - "provider": "pants.backend.project_info", + "provider": "pants.backend.experimental.visibility", "returned_by_rules": [], "union_members": [], "union_type": "Batch", @@ -42785,18 +49581,27 @@ "pants.backend.build_files.fmt.yapf", "pants.backend.codegen.protobuf.lint.buf", "pants.backend.docker.lint.hadolint", + "pants.backend.experimental.cc.lint.clangformat", + "pants.backend.experimental.cue", "pants.backend.experimental.go", + "pants.backend.experimental.go.lint.golangci_lint", + "pants.backend.experimental.go.lint.vet", "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.experimental.java.lint.google_java_format", + "pants.backend.experimental.javascript", + "pants.backend.experimental.javascript.lint.prettier", "pants.backend.experimental.kotlin.lint.ktlint", "pants.backend.experimental.openapi.lint.spectral", "pants.backend.experimental.python.lint.add_trailing_comma", "pants.backend.experimental.python.lint.ruff", + "pants.backend.experimental.rust", "pants.backend.experimental.scala", "pants.backend.experimental.scala.lint.scalafmt", "pants.backend.experimental.terraform", + "pants.backend.experimental.terraform.lint.tfsec", "pants.backend.experimental.tools.yamllint", + "pants.backend.experimental.visibility", "pants.backend.project_info", "pants.backend.python", "pants.backend.python.lint.autoflake", @@ -42813,6 +49618,7 @@ "pants.backend.shell.lint.shellcheck", "pants.backend.shell.lint.shfmt", "pants.backend.tools.preamble", + "pants.backend.tools.taplo", "pants.base.specs", "pants.engine.console", "pants.engine.fs", @@ -42838,11 +49644,15 @@ "pants.backend.build_files.fmt.buildifier", "pants.backend.build_files.fmt.yapf", "pants.backend.docker", + "pants.backend.experimental.cc.lint.clangformat", "pants.backend.experimental.go", "pants.backend.experimental.java", "pants.backend.experimental.java.lint.google_java_format", + "pants.backend.experimental.javascript", + "pants.backend.experimental.javascript.lint.prettier", "pants.backend.experimental.kotlin.lint.ktlint", "pants.backend.experimental.python.lint.add_trailing_comma", + "pants.backend.experimental.rust", "pants.backend.experimental.scala.lint.scalafmt", "pants.backend.experimental.terraform", "pants.backend.python", @@ -42855,19 +49665,26 @@ "pants.backend.shell", "pants.backend.shell.lint.shfmt", "pants.backend.tools.preamble", + "pants.backend.tools.taplo", + "pants.backend.url_handlers.s3", + "pants.engine.addresses", "pants.engine.fs", - "pants.engine.platform", - "pants.engine.process" + "pants.engine.internals.session", + "pants.engine.process", + "pants.engine.target" ], "dependents": ["pants.core"], "documentation": "LintResult(exit_code: 'int', stdout: 'str', stderr: 'str', linter_name: 'str', partition_description: 'str | None' = None, report: 'Digest' = Digest('e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', 0), _render_message: 'bool' = True)", "is_union": false, "module": "pants.core.goals.lint", "name": "LintResult", - "provider": "pants.backend.codegen.protobuf.lint.buf, pants.backend.docker.lint.hadolint, pants.backend.experimental.helm, pants.backend.experimental.openapi.lint.spectral, pants.backend.experimental.python.lint.ruff, pants.backend.experimental.tools.yamllint, pants.backend.project_info, pants.backend.python.lint.bandit, pants.backend.python.lint.flake8, pants.backend.python.lint.pydocstyle, pants.backend.python.lint.pylint, pants.backend.shell.lint.shellcheck, pants.core", + "provider": "pants.backend.codegen.protobuf.lint.buf, pants.backend.docker.lint.hadolint, pants.backend.experimental.cue, pants.backend.experimental.go.lint.golangci_lint, pants.backend.experimental.go.lint.vet, pants.backend.experimental.helm, pants.backend.experimental.openapi.lint.spectral, pants.backend.experimental.python.lint.ruff, pants.backend.experimental.terraform.lint.tfsec, pants.backend.experimental.tools.yamllint, pants.backend.experimental.visibility, pants.backend.project_info, pants.backend.python.lint.bandit, pants.backend.python.lint.flake8, pants.backend.python.lint.pydocstyle, pants.backend.python.lint.pylint, pants.backend.shell.lint.shellcheck, pants.core", "returned_by_rules": [ "pants.backend.codegen.protobuf.lint.buf.lint_rules.run_buf", + "pants.backend.cue.goals.lint.run_cue_vet", "pants.backend.docker.lint.hadolint.rules.run_hadolint", + "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint", + "pants.backend.go.lint.vet.rules.run_go_vet", "pants.backend.helm.goals.lint.run_helm_lint", "pants.backend.openapi.lint.spectral.rules.run_spectral", "pants.backend.project_info.regex_lint.lint_with_regex_patterns", @@ -42877,7 +49694,9 @@ "pants.backend.python.lint.pylint.rules.run_pylint", "pants.backend.python.lint.ruff.rules.ruff_lint", "pants.backend.shell.lint.shellcheck.rules.run_shellcheck", + "pants.backend.terraform.lint.tfsec.rules.run_tfsec", "pants.backend.tools.yamllint.rules.run_yamllint", + "pants.backend.visibility.lint.check_visibility_rule_violations", "pants.core.goals.fix.convert_fix_result_to_lint_result" ], "union_members": [], @@ -42903,12 +49722,12 @@ "pants.core.util_rules.partitions._single_partition_file_rules.partitioner" ], "dependencies": ["pants.core"], - "dependents": ["pants.backend.experimental.go"], + "dependents": ["pants.backend.experimental.rust"], "documentation": null, "is_union": true, "module": "pants.core.goals.lint", "name": "PartitionRequest", - "provider": "pants.backend.experimental.go", + "provider": "pants.backend.experimental.rust", "returned_by_rules": [], "union_members": [], "union_type": "PartitionRequest", @@ -42936,15 +49755,16 @@ "consumed_by_rules": [], "dependencies": [ "builtins", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.openapi.lint.spectral", "pants.backend.experimental.python.lint.ruff", + "pants.backend.experimental.rust", "pants.backend.experimental.terraform", "pants.backend.python.typecheck.mypy", "pants.backend.shell", - "pants.engine.env_vars", + "pants.backend.url_handlers.s3", "pants.engine.environment", "pants.engine.fs", - "pants.engine.platform", "pants.engine.process", "pants.engine.unions", "pants.jvm.package.deploy_jar", @@ -42965,14 +49785,17 @@ "is_union": false, "module": "pants.core.goals.package", "name": "BuiltPackage", - "provider": "pants.backend.awslambda.python, pants.backend.docker, pants.backend.experimental.go, pants.backend.experimental.helm, pants.backend.experimental.java, pants.backend.experimental.python.packaging.pyoxidizer, pants.backend.google_cloud_function.python, pants.backend.python, pants.core", + "provider": "pants.backend.awslambda.python, pants.backend.docker, pants.backend.experimental.debian, pants.backend.experimental.go, pants.backend.experimental.helm, pants.backend.experimental.java, pants.backend.experimental.javascript, pants.backend.experimental.python.packaging.pyoxidizer, pants.backend.google_cloud_function.python, pants.backend.python, pants.core", "returned_by_rules": [ "pants.backend.awslambda.python.rules.package_python_aws_lambda_function", "pants.backend.awslambda.python.rules.package_python_aws_lambda_layer", + "pants.backend.debian.rules.package_debian_package", "pants.backend.docker.goals.package_image.build_docker_image", "pants.backend.go.goals.package_binary.package_go_binary", "pants.backend.google_cloud_function.python.rules.package_python_google_cloud_function", "pants.backend.helm.goals.package.run_helm_package", + "pants.backend.javascript.package.rules.generate_package_artifact_from_node_build_script", + "pants.backend.javascript.package.rules.pack_node_package_into_tgz_for_publication", "pants.backend.python.goals.package_dists.package_python_dist", "pants.backend.python.goals.package_pex_binary.built_pacakge_for_pex_from_targets_request", "pants.backend.python.packaging.pyoxidizer.rules.package_pyoxidizer_binary", @@ -43035,12 +49858,15 @@ "builtins", "pants.backend.awslambda.python", "pants.backend.docker", + "pants.backend.experimental.debian", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.python.packaging.pyoxidizer", "pants.backend.google_cloud_function.python", "pants.backend.python", + "pants.backend.url_handlers.s3", "pants.engine.fs", "pants.engine.target" ], @@ -43061,9 +49887,11 @@ "dependents": [ "pants.backend.awslambda.python", "pants.backend.docker", + "pants.backend.experimental.debian", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.python.packaging.pyoxidizer", "pants.backend.google_cloud_function.python", "pants.backend.python", @@ -43077,10 +49905,13 @@ "returned_by_rules": [], "union_members": [ "ArchiveFieldSet", + "DebianPackageFieldSet", "DeployJarFieldSet", "DockerPackageFieldSet", "GoBinaryFieldSet", "HelmPackageFieldSet", + "NodeBuildScriptPackageFieldSet", + "NodePackageTarFieldSet", "PackageWarFileFieldSet", "PexBinaryFieldSet", "PyOxidizerFieldSet", @@ -43161,15 +49992,19 @@ "dependencies": [ "builtins", "pants.backend.awslambda.python", + "pants.backend.experimental.debian", "pants.backend.experimental.go", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.openapi.lint.spectral", "pants.backend.experimental.python.packaging.pyoxidizer", + "pants.backend.experimental.rust", "pants.backend.experimental.terraform", "pants.backend.google_cloud_function.python", "pants.backend.python", "pants.backend.shell", - "pants.engine.env_vars", + "pants.backend.url_handlers.s3", "pants.engine.environment", "pants.engine.process" ], @@ -43251,10 +50086,10 @@ "pants.core.goals.repl.Repl": { "consumed_by_rules": [], "dependencies": [ + "pants.backend.experimental.javascript", "pants.backend.experimental.scala", "pants.backend.python", "pants.engine.console", - "pants.engine.env_vars", "pants.engine.process", "pants.engine.target", "pants.engine.unions" @@ -43294,6 +50129,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.target" ], @@ -43333,12 +50169,14 @@ "pants.backend.experimental.adhoc", "pants.backend.experimental.go", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.kotlin", "pants.backend.experimental.python.packaging.pyoxidizer", "pants.backend.experimental.scala", "pants.backend.python", + "pants.backend.python.providers.experimental.pyenv", + "pants.backend.python.providers.experimental.pyenv.custom_install", "pants.backend.shell", - "pants.engine.env_vars", "pants.engine.fs", "pants.engine.process", "pants.engine.target" @@ -43359,6 +50197,8 @@ "dependencies": [ "builtins", "pants.backend.experimental.helm", + "pants.backend.python.providers.experimental.pyenv", + "pants.backend.url_handlers.s3", "pants.core", "pants.jvm.package.deploy_jar" ], @@ -43367,7 +50207,7 @@ "is_union": false, "module": "pants.core.goals.run", "name": "RunDebugAdapterRequest", - "provider": "pants.backend.docker, pants.backend.experimental.adhoc, pants.backend.experimental.go, pants.backend.experimental.java, pants.backend.experimental.kotlin, pants.backend.experimental.python.packaging.pyoxidizer, pants.backend.experimental.scala, pants.backend.python, pants.backend.shell", + "provider": "pants.backend.docker, pants.backend.experimental.adhoc, pants.backend.experimental.go, pants.backend.experimental.java, pants.backend.experimental.javascript, pants.backend.experimental.kotlin, pants.backend.experimental.python.packaging.pyoxidizer, pants.backend.experimental.scala, pants.backend.python, pants.backend.python.providers.experimental.pyenv.custom_install, pants.backend.shell", "returned_by_rules": [ "pants.backend.python.goals.run_python_source.create_python_source_debug_adapter_request", "pants.core.goals.run._unsupported_debug_adapter_rules.get_run_debug_adapter_request", @@ -43381,6 +50221,8 @@ "pants.core.goals.run._unsupported_debug_adapter_rules.get_run_debug_adapter_request", "pants.core.goals.run._unsupported_debug_adapter_rules.get_run_debug_adapter_request", "pants.core.goals.run._unsupported_debug_adapter_rules.get_run_debug_adapter_request", + "pants.core.goals.run._unsupported_debug_adapter_rules.get_run_debug_adapter_request", + "pants.core.goals.run._unsupported_debug_adapter_rules.get_run_debug_adapter_request", "pants.core.goals.run._unsupported_debug_adapter_rules.get_run_debug_adapter_request" ], "union_members": [], @@ -43395,10 +50237,12 @@ "pants.backend.experimental.adhoc", "pants.backend.experimental.go", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.kotlin", "pants.backend.experimental.python.packaging.pyoxidizer", "pants.backend.experimental.scala", "pants.backend.python", + "pants.backend.python.providers.experimental.pyenv.custom_install", "pants.backend.shell" ], "documentation": "The fields necessary from a target to run a program/script.", @@ -43418,6 +50262,8 @@ "PyOxidizerFieldSet", "PythonRequirementFieldSet", "PythonSourceFieldSet", + "RunNodeBuildScriptFieldSet", + "RunPyenvInstallFieldSet", "RunShellCommand", "ScalaFieldSet", "SystemBinaryFieldSet" @@ -43437,6 +50283,7 @@ "pants.core.goals.run._run_in_sandbox_behavior_rule.run_request_hermetic", "pants.core.goals.run._run_in_sandbox_behavior_rule.run_request_hermetic", "pants.core.goals.run._run_in_sandbox_behavior_rule.run_request_hermetic", + "pants.core.goals.run._run_in_sandbox_behavior_rule.run_request_hermetic", "pants.core.goals.run.run", "pants.core.util_rules.adhoc_process_support.resolve_execution_environment" ] @@ -43446,6 +50293,8 @@ "dependencies": [ "builtins", "pants.backend.experimental.helm", + "pants.backend.python.providers.experimental.pyenv", + "pants.backend.url_handlers.s3", "pants.core", "pants.jvm.package.deploy_jar" ], @@ -43454,10 +50303,12 @@ "is_union": false, "module": "pants.core.goals.run", "name": "RunInSandboxRequest", - "provider": "pants.backend.docker, pants.backend.experimental.adhoc, pants.backend.experimental.go, pants.backend.experimental.java, pants.backend.experimental.kotlin, pants.backend.experimental.python.packaging.pyoxidizer, pants.backend.experimental.scala, pants.backend.python, pants.backend.shell", + "provider": "pants.backend.docker, pants.backend.experimental.adhoc, pants.backend.experimental.go, pants.backend.experimental.java, pants.backend.experimental.javascript, pants.backend.experimental.kotlin, pants.backend.experimental.python.packaging.pyoxidizer, pants.backend.experimental.scala, pants.backend.python, pants.backend.python.providers.experimental.pyenv.custom_install, pants.backend.shell", "returned_by_rules": [ "pants.backend.python.goals.run_python_source.create_python_source_run_in_sandbox_request", "pants.core.goals.run._run_in_sandbox_behavior_rule.not_supported", + "pants.core.goals.run._run_in_sandbox_behavior_rule.not_supported", + "pants.core.goals.run._run_in_sandbox_behavior_rule.run_request_hermetic", "pants.core.goals.run._run_in_sandbox_behavior_rule.run_request_hermetic", "pants.core.goals.run._run_in_sandbox_behavior_rule.run_request_hermetic", "pants.core.goals.run._run_in_sandbox_behavior_rule.run_request_hermetic", @@ -43482,13 +50333,16 @@ "dependencies": [ "builtins", "pants.backend.awslambda.python", + "pants.backend.experimental.debian", "pants.backend.experimental.helm", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.openapi.lint.spectral", "pants.backend.experimental.python.lint.ruff", + "pants.backend.experimental.rust", "pants.backend.experimental.terraform", "pants.backend.google_cloud_function.python", + "pants.backend.url_handlers.s3", "pants.core", - "pants.engine.env_vars", "pants.engine.process", "pants.engine.target", "pants.jvm.package.deploy_jar", @@ -43500,25 +50354,31 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.kotlin", "pants.backend.experimental.python.packaging.pyoxidizer", "pants.backend.experimental.scala", "pants.backend.python", + "pants.backend.python.providers.experimental.pyenv", + "pants.backend.python.providers.experimental.pyenv.custom_install", "pants.core" ], "documentation": "RunRequest(*, digest: 'Digest', args: 'Iterable[str]', extra_env: 'Optional[Mapping[str, str]]' = None, immutable_input_digests: 'Mapping[str, Digest] | None' = None, append_only_caches: 'Mapping[str, str] | None' = None) -> 'None'", "is_union": false, "module": "pants.core.goals.run", "name": "RunRequest", - "provider": "pants.backend.docker, pants.backend.experimental.adhoc, pants.backend.experimental.go, pants.backend.experimental.java, pants.backend.experimental.kotlin, pants.backend.experimental.python.packaging.pyoxidizer, pants.backend.experimental.scala, pants.backend.python, pants.backend.shell", + "provider": "pants.backend.docker, pants.backend.experimental.adhoc, pants.backend.experimental.go, pants.backend.experimental.java, pants.backend.experimental.javascript, pants.backend.experimental.kotlin, pants.backend.experimental.python.packaging.pyoxidizer, pants.backend.experimental.scala, pants.backend.python, pants.backend.python.providers.experimental.pyenv, pants.backend.python.providers.experimental.pyenv.custom_install, pants.backend.shell", "returned_by_rules": [ "pants.backend.adhoc.run_system_binary.create_system_binary_run_request", "pants.backend.docker.goals.run_image.docker_image_run_request", "pants.backend.go.goals.run_binary.create_go_binary_run_request", + "pants.backend.javascript.run.rules.run_node_build_script", "pants.backend.python.goals.run_pex_binary.create_pex_binary_run_request", "pants.backend.python.goals.run_python_requirement.create_python_requirement_run_request", "pants.backend.python.goals.run_python_source.create_python_source_run_request", "pants.backend.python.packaging.pyoxidizer.rules.run_pyoxidizer_binary", + "pants.backend.python.providers.pyenv.custom_install.rules.run_pyenv_install", + "pants.backend.python.providers.pyenv.rules.get_pyenv_install_info", "pants.backend.shell.util_rules.shell_command.run_shell_command_request", "pants.jvm.run.create_run_request", "pants.jvm.run_deploy_jar.create_deploy_jar_run_request", @@ -43531,6 +50391,9 @@ "union_type": null, "used_in_rules": [ "pants.backend.helm.subsystems.post_renderer.setup_post_renderer_launcher", + "pants.backend.python.providers.pyenv.custom_install.rules.run_pyenv_install", + "pants.backend.python.providers.pyenv.rules.get_python", + "pants.core.goals.run._run_in_sandbox_behavior_rule.run_request_hermetic", "pants.core.goals.run._run_in_sandbox_behavior_rule.run_request_hermetic", "pants.core.goals.run._run_in_sandbox_behavior_rule.run_request_hermetic", "pants.core.goals.run._run_in_sandbox_behavior_rule.run_request_hermetic", @@ -43565,6 +50428,8 @@ }, "pants.core.goals.tailor.AllOwnedSources": { "consumed_by_rules": [ + "pants.backend.cc.goals.tailor.find_putative_targets", + "pants.backend.codegen.avro.tailor.find_putative_targets", "pants.backend.codegen.protobuf.tailor.find_putative_targets", "pants.backend.codegen.thrift.tailor.find_putative_thrift_targets", "pants.backend.docker.goals.tailor.find_putative_targets", @@ -43572,11 +50437,14 @@ "pants.backend.go.goals.tailor.find_putative_go_targets", "pants.backend.helm.goals.tailor.find_putative_helm_targets", "pants.backend.java.goals.tailor.find_putative_targets", + "pants.backend.javascript.goals.tailor.find_putative_js_targets", + "pants.backend.javascript.goals.tailor.find_putative_package_json_targets", "pants.backend.kotlin.goals.tailor.find_putative_targets", "pants.backend.openapi.goals.tailor.find_putative_targets", "pants.backend.python.goals.tailor.find_putative_targets", "pants.backend.scala.goals.tailor.find_putative_targets", "pants.backend.shell.goals.tailor.find_putative_targets", + "pants.backend.swift.goals.tailor.find_putative_targets", "pants.backend.terraform.goals.tailor.find_putative_terrform_module_targets" ], "dependencies": ["pants.backend.experimental.go"], @@ -43584,12 +50452,16 @@ "pants.backend.codegen.protobuf.python", "pants.backend.codegen.thrift.apache.python", "pants.backend.docker", + "pants.backend.experimental.cc", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.kotlin", "pants.backend.experimental.openapi", "pants.backend.experimental.scala", + "pants.backend.experimental.swift", "pants.backend.experimental.terraform", "pants.backend.python", "pants.backend.shell" @@ -43647,6 +50519,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.engine.fs" ], "dependents": ["pants.core"], @@ -43680,25 +50553,36 @@ "consumed_by_rules": [ "pants.core.goals.tailor.rename_conflicting_targets" ], - "dependencies": ["builtins", "pants.engine.fs", "pants.engine.target"], + "dependencies": [ + "builtins", + "pants.backend.url_handlers.s3", + "pants.engine.fs", + "pants.engine.target" + ], "dependents": ["pants.core"], "documentation": null, "is_union": false, "module": "pants.core.goals.tailor", "name": "PutativeTargets", - "provider": "pants.backend.codegen.protobuf.python, pants.backend.codegen.thrift.apache.python, pants.backend.docker, pants.backend.experimental.go, pants.backend.experimental.helm, pants.backend.experimental.java, pants.backend.experimental.kotlin, pants.backend.experimental.openapi, pants.backend.experimental.scala, pants.backend.experimental.terraform, pants.backend.python, pants.backend.shell, pants.core", + "provider": "pants.backend.codegen.protobuf.python, pants.backend.codegen.thrift.apache.python, pants.backend.docker, pants.backend.experimental.cc, pants.backend.experimental.codegen.avro.java, pants.backend.experimental.go, pants.backend.experimental.helm, pants.backend.experimental.java, pants.backend.experimental.javascript, pants.backend.experimental.kotlin, pants.backend.experimental.openapi, pants.backend.experimental.rust, pants.backend.experimental.scala, pants.backend.experimental.swift, pants.backend.experimental.terraform, pants.backend.python, pants.backend.shell, pants.core", "returned_by_rules": [ + "pants.backend.cc.goals.tailor.find_putative_targets", + "pants.backend.codegen.avro.tailor.find_putative_targets", "pants.backend.codegen.protobuf.tailor.find_putative_targets", "pants.backend.codegen.thrift.tailor.find_putative_thrift_targets", "pants.backend.docker.goals.tailor.find_putative_targets", "pants.backend.go.goals.tailor.find_putative_go_targets", "pants.backend.helm.goals.tailor.find_putative_helm_targets", "pants.backend.java.goals.tailor.find_putative_targets", + "pants.backend.javascript.goals.tailor.find_putative_js_targets", + "pants.backend.javascript.goals.tailor.find_putative_package_json_targets", "pants.backend.kotlin.goals.tailor.find_putative_targets", "pants.backend.openapi.goals.tailor.find_putative_targets", "pants.backend.python.goals.tailor.find_putative_targets", + "pants.backend.rust.goals.tailor.find_putative_rust_targets", "pants.backend.scala.goals.tailor.find_putative_targets", "pants.backend.shell.goals.tailor.find_putative_targets", + "pants.backend.swift.goals.tailor.find_putative_targets", "pants.backend.terraform.goals.tailor.find_putative_terrform_module_targets" ], "union_members": [], @@ -43712,12 +50596,17 @@ "pants.backend.codegen.protobuf.python", "pants.backend.codegen.thrift.apache.python", "pants.backend.docker", + "pants.backend.experimental.cc", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.kotlin", "pants.backend.experimental.openapi", + "pants.backend.experimental.rust", "pants.backend.experimental.scala", + "pants.backend.experimental.swift", "pants.backend.experimental.terraform", "pants.backend.python", "pants.backend.shell" @@ -43729,16 +50618,22 @@ "provider": "pants.core", "returned_by_rules": [], "union_members": [ + "PutativeAvroTargetsRequest", + "PutativeCCTargetsRequest", "PutativeDockerTargetsRequest", "PutativeGoTargetsRequest", "PutativeHelmTargetsRequest", + "PutativeJSTargetsRequest", "PutativeJavaTargetsRequest", "PutativeKotlinTargetsRequest", "PutativeOpenApiTargetsRequest", + "PutativePackageJsonTargetsRequest", "PutativeProtobufTargetsRequest", "PutativePythonTargetsRequest", + "PutativeRustTargetsRequest", "PutativeScalaTargetsRequest", "PutativeShellTargetsRequest", + "PutativeSwiftTargetsRequest", "PutativeTerraformTargetsRequest", "PutativeThriftTargetsRequest" ], @@ -43751,12 +50646,17 @@ "pants.backend.codegen.protobuf.python", "pants.backend.codegen.thrift.apache.python", "pants.backend.docker", + "pants.backend.experimental.cc", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.kotlin", "pants.backend.experimental.openapi", + "pants.backend.experimental.rust", "pants.backend.experimental.scala", + "pants.backend.experimental.swift", "pants.backend.experimental.terraform", "pants.backend.python", "pants.backend.shell", @@ -43800,12 +50700,17 @@ "pants.backend.codegen.protobuf.python", "pants.backend.codegen.thrift.apache.python", "pants.backend.docker", + "pants.backend.experimental.cc", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.kotlin", "pants.backend.experimental.openapi", + "pants.backend.experimental.rust", "pants.backend.experimental.scala", + "pants.backend.experimental.swift", "pants.backend.experimental.terraform", "pants.backend.python", "pants.backend.shell" @@ -43824,22 +50729,35 @@ "used_in_rules": ["pants.core.goals.tailor.tailor"] }, "pants.core.goals.test.Batch": { - "consumed_by_rules": [ - "pants.backend.python.goals.pytest_runner.debug_python_test", - "pants.backend.python.goals.pytest_runner.debugpy_python_test", - "pants.backend.python.goals.pytest_runner.run_python_tests" + "consumed_by_rules": [], + "dependencies": [], + "dependents": [ + "pants.backend.experimental.go", + "pants.backend.experimental.helm", + "pants.backend.experimental.java", + "pants.backend.experimental.javascript", + "pants.backend.experimental.scala", + "pants.backend.python", + "pants.backend.shell" ], - "dependencies": ["pants.core"], - "dependents": ["pants.backend.python"], "documentation": null, "is_union": true, "module": "pants.core.goals.test", "name": "Batch", - "provider": "pants.backend.python", + "provider": "pants.core", "returned_by_rules": [], - "union_members": [], - "union_type": "Batch", - "used_in_rules": [] + "union_members": [ + "Batch", + "Batch", + "Batch", + "Batch", + "Batch", + "Batch", + "Batch", + "Batch" + ], + "union_type": null, + "used_in_rules": ["pants.core.goals.test.run_tests"] }, "pants.core.goals.test.BuildPackageDependenciesRequest": { "consumed_by_rules": [ @@ -43865,9 +50783,11 @@ "dependencies": [ "pants.backend.awslambda.python", "pants.backend.docker", + "pants.backend.experimental.debian", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.python.packaging.pyoxidizer", "pants.backend.google_cloud_function.python", "pants.backend.python" @@ -43891,7 +50811,11 @@ "pants.core.goals.test.CoverageDataCollection": { "consumed_by_rules": [], "dependencies": [], - "dependents": ["pants.backend.experimental.go", "pants.backend.python"], + "dependents": [ + "pants.backend.experimental.go", + "pants.backend.experimental.javascript", + "pants.backend.python" + ], "documentation": null, "is_union": true, "module": "pants.core.goals.test", @@ -43900,6 +50824,7 @@ "returned_by_rules": [], "union_members": [ "GoCoverageDataCollection", + "JSCoverageDataCollection", "PytestCoverageDataCollection" ], "union_type": null, @@ -43912,6 +50837,7 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.experimental.python.lint.ruff", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.process", "pants.option.global_options" @@ -43921,9 +50847,10 @@ "is_union": false, "module": "pants.core.goals.test", "name": "CoverageReports", - "provider": "pants.backend.experimental.go, pants.backend.python", + "provider": "pants.backend.experimental.go, pants.backend.experimental.javascript, pants.backend.python", "returned_by_rules": [ "pants.backend.go.util_rules.coverage_output.go_gather_coverage_reports", + "pants.backend.javascript.goals.test.collect_coverage_reports", "pants.backend.python.goals.coverage_py.generate_coverage_reports" ], "union_members": [], @@ -43931,20 +50858,35 @@ "used_in_rules": ["pants.core.goals.test.run_tests"] }, "pants.core.goals.test.PartitionRequest": { - "consumed_by_rules": [ - "pants.backend.python.goals.pytest_runner.partition_python_tests" + "consumed_by_rules": [], + "dependencies": [], + "dependents": [ + "pants.backend.experimental.go", + "pants.backend.experimental.helm", + "pants.backend.experimental.java", + "pants.backend.experimental.javascript", + "pants.backend.experimental.scala", + "pants.backend.python", + "pants.backend.shell" ], - "dependencies": ["pants.core"], - "dependents": ["pants.backend.python"], "documentation": null, "is_union": true, "module": "pants.core.goals.test", "name": "PartitionRequest", - "provider": "pants.backend.python", + "provider": "pants.core", "returned_by_rules": [], - "union_members": [], - "union_type": "PartitionRequest", - "used_in_rules": [] + "union_members": [ + "PartitionRequest", + "PartitionRequest", + "PartitionRequest", + "PartitionRequest", + "PartitionRequest", + "PartitionRequest", + "PartitionRequest", + "PartitionRequest" + ], + "union_type": null, + "used_in_rules": ["pants.core.goals.test.run_tests"] }, "pants.core.goals.test.Test": { "consumed_by_rules": [], @@ -43956,18 +50898,27 @@ "pants.backend.build_files.fmt.yapf", "pants.backend.codegen.protobuf.lint.buf", "pants.backend.docker.lint.hadolint", + "pants.backend.experimental.cc.lint.clangformat", + "pants.backend.experimental.cue", "pants.backend.experimental.go", + "pants.backend.experimental.go.lint.golangci_lint", + "pants.backend.experimental.go.lint.vet", "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.experimental.java.lint.google_java_format", + "pants.backend.experimental.javascript", + "pants.backend.experimental.javascript.lint.prettier", "pants.backend.experimental.kotlin.lint.ktlint", "pants.backend.experimental.openapi.lint.spectral", "pants.backend.experimental.python.lint.add_trailing_comma", "pants.backend.experimental.python.lint.ruff", + "pants.backend.experimental.rust", "pants.backend.experimental.scala", "pants.backend.experimental.scala.lint.scalafmt", "pants.backend.experimental.terraform", + "pants.backend.experimental.terraform.lint.tfsec", "pants.backend.experimental.tools.yamllint", + "pants.backend.experimental.visibility", "pants.backend.project_info", "pants.backend.python", "pants.backend.python.lint.autoflake", @@ -43984,6 +50935,8 @@ "pants.backend.shell.lint.shellcheck", "pants.backend.shell.lint.shfmt", "pants.backend.tools.preamble", + "pants.backend.tools.taplo", + "pants.backend.url_handlers.s3", "pants.engine.console", "pants.engine.desktop", "pants.engine.environment", @@ -44012,7 +50965,7 @@ "is_union": false, "module": "pants.core.goals.test", "name": "TestDebugAdapterRequest", - "provider": "pants.backend.experimental.go, pants.backend.experimental.helm, pants.backend.experimental.java, pants.backend.experimental.scala, pants.backend.python, pants.backend.shell", + "provider": "pants.backend.experimental.go, pants.backend.experimental.helm, pants.backend.experimental.java, pants.backend.experimental.javascript, pants.backend.experimental.scala, pants.backend.python, pants.backend.shell", "returned_by_rules": [ "pants.backend.python.goals.pytest_runner.debugpy_python_test", "pants.core.goals.test._unsupported_debug_adapter_rules.get_test_debug_adapter_request", @@ -44020,6 +50973,7 @@ "pants.core.goals.test._unsupported_debug_adapter_rules.get_test_debug_adapter_request", "pants.core.goals.test._unsupported_debug_adapter_rules.get_test_debug_adapter_request", "pants.core.goals.test._unsupported_debug_adapter_rules.get_test_debug_adapter_request", + "pants.core.goals.test._unsupported_debug_adapter_rules.get_test_debug_adapter_request", "pants.core.goals.test._unsupported_debug_adapter_rules.get_test_debug_adapter_request" ], "union_members": [], @@ -44030,7 +50984,9 @@ "consumed_by_rules": [], "dependencies": [ "pants.backend.docker", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.openapi.lint.spectral", + "pants.backend.experimental.rust", "pants.backend.experimental.terraform", "pants.core", "pants.engine.process" @@ -44040,7 +50996,7 @@ "is_union": false, "module": "pants.core.goals.test", "name": "TestDebugRequest", - "provider": "pants.backend.experimental.go, pants.backend.experimental.helm, pants.backend.experimental.java, pants.backend.experimental.scala, pants.backend.python, pants.backend.shell", + "provider": "pants.backend.experimental.go, pants.backend.experimental.helm, pants.backend.experimental.java, pants.backend.experimental.javascript, pants.backend.experimental.scala, pants.backend.python, pants.backend.shell", "returned_by_rules": [ "pants.backend.python.goals.pytest_runner.debug_python_test", "pants.backend.scala.test.scalatest.setup_scalatest_debug_request", @@ -44048,6 +51004,7 @@ "pants.core.goals.test._unsupported_debug_rules.get_test_debug_request", "pants.core.goals.test._unsupported_debug_rules.get_test_debug_request", "pants.core.goals.test._unsupported_debug_rules.get_test_debug_request", + "pants.core.goals.test._unsupported_debug_rules.get_test_debug_request", "pants.jvm.test.junit.setup_junit_debug_request" ], "union_members": [], @@ -44057,16 +51014,18 @@ "pants.core.goals.test.TestExtraEnv": { "consumed_by_rules": [ "pants.backend.go.goals.test.run_go_tests", + "pants.backend.javascript.goals.test.run_javascript_tests", "pants.backend.python.goals.pytest_runner.setup_pytest_for_target", "pants.backend.scala.test.scalatest.setup_scalatest_for_target", "pants.backend.shell.goals.test.test_shell_command", "pants.backend.shell.shunit2_test_runner.setup_shunit2_for_target", "pants.jvm.test.junit.setup_junit_for_target" ], - "dependencies": ["pants.engine.env_vars"], + "dependencies": ["pants.backend.experimental.javascript"], "dependents": [ "pants.backend.experimental.go", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.scala", "pants.backend.python", "pants.backend.shell" @@ -44088,6 +51047,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.scala", "pants.backend.python", "pants.backend.shell" @@ -44101,6 +51061,7 @@ "union_members": [ "GoTestFieldSet", "HelmUnitTestFieldSet", + "JSTestFieldSet", "JunitTestFieldSet", "PythonTestFieldSet", "ScalatestTestFieldSet", @@ -44117,6 +51078,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.scala", "pants.backend.python", "pants.backend.shell" @@ -44130,6 +51092,7 @@ "union_members": [ "GoTestRequest", "HelmUnitTestRequest", + "JSTestRequest", "JunitTestRequest", "PyTestRequest", "ScalatestTestRequest", @@ -44144,11 +51107,13 @@ "dependencies": [ "builtins", "pants.backend.docker", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.openapi.lint.spectral", "pants.backend.experimental.python.lint.ruff", + "pants.backend.experimental.rust", "pants.backend.experimental.terraform", + "pants.backend.url_handlers.s3", "pants.core", - "pants.engine.env_vars", "pants.engine.process" ], "dependents": ["pants.core"], @@ -44156,10 +51121,11 @@ "is_union": false, "module": "pants.core.goals.test", "name": "TestResult", - "provider": "pants.backend.experimental.go, pants.backend.experimental.helm, pants.backend.experimental.java, pants.backend.experimental.scala, pants.backend.python, pants.backend.shell", + "provider": "pants.backend.experimental.go, pants.backend.experimental.helm, pants.backend.experimental.java, pants.backend.experimental.javascript, pants.backend.experimental.scala, pants.backend.python, pants.backend.shell", "returned_by_rules": [ "pants.backend.go.goals.test.run_go_tests", "pants.backend.helm.test.unittest.run_helm_unittest", + "pants.backend.javascript.goals.test.run_javascript_tests", "pants.backend.python.goals.pytest_runner.run_python_tests", "pants.backend.scala.test.scalatest.run_scalatest_test", "pants.backend.shell.goals.test.test_shell_command", @@ -44175,6 +51141,7 @@ "construct_env_aware_scope_test", "pants.backend.go.goals.test.run_go_tests", "pants.backend.helm.test.unittest.run_helm_unittest", + "pants.backend.javascript.goals.test.run_javascript_tests", "pants.backend.python.goals.pytest_runner.run_python_tests", "pants.backend.python.goals.pytest_runner.setup_pytest_for_target", "pants.backend.scala.test.scalatest.run_scalatest_test", @@ -44191,6 +51158,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.scala", "pants.backend.python", "pants.backend.shell", @@ -44278,6 +51246,7 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.python", + "pants.backend.url_handlers.s3", "pants.engine.fs" ], "dependents": ["pants.core"], @@ -44326,6 +51295,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.base.specs", "pants.engine.console", "pants.engine.fs", @@ -44384,7 +51354,7 @@ "consumed_by_rules": [ "pants.core.subsystems.python_bootstrap.python_bootstrap" ], - "dependencies": ["pants.engine.env_vars"], + "dependencies": ["pants.backend.experimental.javascript"], "dependents": ["pants.core"], "documentation": null, "is_union": false, @@ -44451,7 +51421,7 @@ }, "pants.core.subsystems.python_bootstrap._SearchPaths": { "consumed_by_rules": [], - "dependencies": ["pants.engine.env_vars"], + "dependencies": ["pants.backend.experimental.javascript"], "dependents": ["pants.core"], "documentation": "_SearchPaths(paths: 'tuple[str, ...]')", "is_union": false, @@ -44576,13 +51546,18 @@ }, "pants.core.util_rules.adhoc_binaries.PythonBuildStandaloneBinary": { "consumed_by_rules": [ + "pants.backend.python.providers.pyenv.rules.get_pyenv_install_info", "pants.backend.python.util_rules.pex_cli.setup_pex_cli_process", "pants.backend.python.util_rules.pex_environment.find_pex_python", "pants.core.util_rules.adhoc_binaries.find_gunzip", "pants.jvm.resolve.coursier_setup.setup_coursier" ], "dependencies": [], - "dependents": ["pants.backend.experimental.java", "pants.core"], + "dependents": [ + "pants.backend.experimental.java", + "pants.backend.python.providers.experimental.pyenv", + "pants.core" + ], "documentation": "A Python interpreter for use by `@rule` code as an alternative to BashBinary scripts.\n\nThis interpreter is provided by Python Build Standalone https://gregoryszorc.com/docs/python-build-standalone/main/,\nwhich has a few caveats. Namely it doesn't play nicely with third-party sdists. Meaning Pants'\nscripts being run by Python Build Standalone should avoid third-party sdists.", "is_union": false, "module": "pants.core.util_rules.adhoc_binaries", @@ -44620,8 +51595,8 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", - "pants.engine.env_vars", - "pants.engine.platform" + "pants.backend.experimental.javascript", + "pants.backend.url_handlers.s3" ], "dependents": ["pants.core"], "documentation": null, @@ -44668,9 +51643,13 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.openapi.lint.spectral", "pants.backend.experimental.python.lint.ruff", + "pants.backend.experimental.rust", "pants.backend.experimental.terraform", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.process" ], @@ -44699,6 +51678,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.adhoc", "pants.backend.shell"], @@ -44769,14 +51749,18 @@ "pants.backend.awslambda.python", "pants.backend.docker", "pants.backend.experimental.adhoc", + "pants.backend.experimental.debian", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.kotlin", "pants.backend.experimental.python.packaging.pyoxidizer", "pants.backend.experimental.scala", "pants.backend.google_cloud_function.python", "pants.backend.python", + "pants.backend.python.providers.experimental.pyenv.custom_install", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.addresses" ], @@ -44819,7 +51803,8 @@ "builtins", "pants.backend.experimental.go", "pants.backend.experimental.helm", - "pants.backend.experimental.java" + "pants.backend.experimental.java", + "pants.backend.url_handlers.s3" ], "dependents": ["pants.core"], "documentation": "The result of extracting an archive.", @@ -44844,7 +51829,8 @@ "builtins", "pants.backend.experimental.go", "pants.backend.experimental.helm", - "pants.backend.experimental.java" + "pants.backend.experimental.java", + "pants.backend.url_handlers.s3" ], "dependents": ["pants.core"], "documentation": "A request to extract a single archive file (otherwise returns the input digest).\n\n:param digest: The digest of the archive to maybe extract. If the archive contains a single file\n which matches a known suffix, the `ExtractedArchive` will contain the extracted digest.\n Otherwise the `ExtractedArchive` will contain this digest.\n:param use_suffix: If provided, extracts the single file archive as if it had this suffix.\n Useful in situations where the file is archived then renamed.\n (E.g. A Python `.whl` is a renamed `.zip`, so the client should provide `\".zip\"`)", @@ -44881,10 +51867,13 @@ }, "pants.core.util_rules.asdf.AsdfToolPathsResult": { "consumed_by_rules": [], - "dependencies": ["pants.base.build_root", "pants.engine.env_vars"], + "dependencies": [ + "pants.backend.experimental.javascript", + "pants.base.build_root" + ], "dependents": [ "pants.backend.experimental.go", - "pants.backend.experimental.openapi.lint.spectral", + "pants.backend.experimental.javascript", "pants.core" ], "documentation": "AsdfToolPathsResult(tool_name: 'str', standard_tool_paths: 'tuple[str, ...]' = (), local_tool_paths: 'tuple[str, ...]' = ())", @@ -44911,9 +51900,14 @@ "pants.backend.build_files.fmt.yapf", "pants.backend.codegen.protobuf.lint.buf", "pants.backend.docker.lint.hadolint", + "pants.backend.experimental.cc.lint.clangformat", + "pants.backend.experimental.go.lint.golangci_lint", + "pants.backend.experimental.javascript.lint.prettier", "pants.backend.experimental.python", "pants.backend.experimental.python.lint.ruff", + "pants.backend.experimental.python.typecheck.pyright", "pants.backend.experimental.python.typecheck.pytype", + "pants.backend.experimental.terraform.lint.tfsec", "pants.backend.python", "pants.backend.python.lint.bandit", "pants.backend.python.lint.black", @@ -44925,6 +51919,7 @@ "pants.backend.python.typecheck.mypy", "pants.backend.shell.lint.shellcheck", "pants.backend.shell.lint.shfmt", + "pants.backend.tools.taplo", "pants.core" ], "documentation": "Config files used by a tool run by Pants.", @@ -44940,8 +51935,11 @@ "used_in_rules": [ "pants.backend.build_files.fmt.black.register.black_fmt", "pants.backend.build_files.fmt.yapf.register.yapf_fmt", + "pants.backend.cc.lint.clangformat.rules.clangformat_fmt", "pants.backend.codegen.protobuf.lint.buf.lint_rules.run_buf", "pants.backend.docker.lint.hadolint.rules.run_hadolint", + "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint", + "pants.backend.javascript.lint.prettier.rules.prettier_fmt", "pants.backend.python.goals.coverage_py.create_or_update_coverage_config", "pants.backend.python.goals.publish.twine_upload", "pants.backend.python.goals.pytest_runner.setup_pytest_for_target", @@ -44954,9 +51952,12 @@ "pants.backend.python.lint.ruff.rules.run_ruff", "pants.backend.python.lint.yapf.rules.yapf_fmt", "pants.backend.python.typecheck.mypy.subsystem.setup_mypy_config", + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck_partition", "pants.backend.python.typecheck.pytype.rules.pytype_typecheck_partition", "pants.backend.shell.lint.shellcheck.rules.run_shellcheck", "pants.backend.shell.lint.shfmt.rules.shfmt_fmt", + "pants.backend.terraform.lint.tfsec.rules.run_tfsec", + "pants.backend.tools.taplo.rules.taplo_fmt", "pants.core.goals.update_build_files.format_build_file_with_black", "pants.core.goals.update_build_files.format_build_file_with_yapf" ] @@ -44978,8 +51979,11 @@ "used_in_rules": [ "pants.backend.build_files.fmt.black.register.black_fmt", "pants.backend.build_files.fmt.yapf.register.yapf_fmt", + "pants.backend.cc.lint.clangformat.rules.clangformat_fmt", "pants.backend.codegen.protobuf.lint.buf.lint_rules.run_buf", "pants.backend.docker.lint.hadolint.rules.run_hadolint", + "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint", + "pants.backend.javascript.lint.prettier.rules.prettier_fmt", "pants.backend.python.goals.coverage_py.create_or_update_coverage_config", "pants.backend.python.goals.publish.twine_upload", "pants.backend.python.goals.pytest_runner.setup_pytest_for_target", @@ -44992,9 +51996,12 @@ "pants.backend.python.lint.ruff.rules.run_ruff", "pants.backend.python.lint.yapf.rules.yapf_fmt", "pants.backend.python.typecheck.mypy.subsystem.setup_mypy_config", + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck_partition", "pants.backend.python.typecheck.pytype.rules.pytype_typecheck_partition", "pants.backend.shell.lint.shellcheck.rules.run_shellcheck", "pants.backend.shell.lint.shfmt.rules.shfmt_fmt", + "pants.backend.terraform.lint.tfsec.rules.run_tfsec", + "pants.backend.tools.taplo.rules.taplo_fmt", "pants.core.goals.update_build_files.format_build_file_with_black", "pants.core.goals.update_build_files.format_build_file_with_yapf" ] @@ -45002,7 +52009,9 @@ "pants.core.util_rules.distdir.DistDir": { "consumed_by_rules": [ "pants.backend.codegen.export_codegen_goal.export_codegen", + "pants.backend.go.goals.debug_goals.go_export_cgo_codegen", "pants.backend.go.util_rules.coverage_output.go_render_coverage_report", + "pants.backend.javascript.goals.test.collect_coverage_reports", "pants.backend.python.goals.coverage_py.generate_coverage_reports", "pants.core.goals.check.check", "pants.core.goals.export.export", @@ -45013,6 +52022,8 @@ "dependencies": ["pants.base.build_root"], "dependents": [ "pants.backend.experimental.go", + "pants.backend.experimental.go.debug_goals", + "pants.backend.experimental.javascript", "pants.backend.python", "pants.core" ], @@ -45052,6 +52063,23 @@ "pants.core.goals.run.run" ] }, + "pants.core.util_rules.environments.EnvironmentsSubsystem": { + "consumed_by_rules": [ + "pants.engine.internals.platform_rules.complete_environment_vars", + "pants.engine.internals.platform_rules.current_platform" + ], + "dependencies": ["pants.option.scope"], + "dependents": ["pants.backend.experimental.javascript"], + "documentation": null, + "is_union": false, + "module": "pants.core.util_rules.environments", + "name": "EnvironmentsSubsystem", + "provider": "pants.backend.experimental.javascript", + "returned_by_rules": ["construct_scope_environments_preview"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, "pants.core.util_rules.environments.OptionField": { "consumed_by_rules": [], "dependencies": ["pants.engine.target"], @@ -45087,6 +52115,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.url_handlers.s3", "pants.engine.fs" ], "dependents": [ @@ -45097,14 +52126,21 @@ "pants.backend.experimental.codegen.protobuf.go", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.cue", + "pants.backend.experimental.go.lint.golangci_lint", "pants.backend.experimental.helm", + "pants.backend.experimental.helm.check.kubeconform", "pants.backend.experimental.java", - "pants.backend.experimental.openapi.lint.spectral", + "pants.backend.experimental.javascript", "pants.backend.experimental.terraform", + "pants.backend.experimental.terraform.lint.tfsec", "pants.backend.project_info", + "pants.backend.python.providers.experimental.pyenv", + "pants.backend.python.providers.experimental.pyenv.custom_install", "pants.backend.shell", "pants.backend.shell.lint.shellcheck", "pants.backend.shell.lint.shfmt", + "pants.backend.tools.taplo", "pants.core" ], "documentation": "DownloadedExternalTool(digest: 'Digest', exe: 'str')", @@ -45126,17 +52162,26 @@ "pants.backend.codegen.protobuf.lint.buf.lint_rules.run_buf", "pants.backend.codegen.protobuf.python.rules.generate_python_from_protobuf", "pants.backend.codegen.protobuf.scala.rules.generate_scala_from_protobuf", + "pants.backend.cue.goals.fix.run_cue_fmt", + "pants.backend.cue.goals.lint.run_cue_vet", "pants.backend.docker.lint.hadolint.rules.run_hadolint", + "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint", + "pants.backend.helm.check.kubeconform.common.setup_kube_conform", "pants.backend.helm.util_rules.tool.download_external_helm_plugin", "pants.backend.helm.util_rules.tool.setup_helm", "pants.backend.javascript.subsystems.nodejs.determine_nodejs_binaries", "pants.backend.project_info.count_loc.count_loc", + "pants.backend.python.providers.pyenv.custom_install.rules.run_pyenv_install", + "pants.backend.python.providers.pyenv.rules.get_pyenv_install_info", + "pants.backend.python.providers.pyenv.rules.get_python", "pants.backend.python.util_rules.pex_cli.download_pex_pex", "pants.backend.shell.dependency_inference.parse_shell_imports", "pants.backend.shell.lint.shellcheck.rules.run_shellcheck", "pants.backend.shell.lint.shfmt.rules.shfmt_fmt", "pants.backend.shell.shunit2_test_runner.setup_shunit2_for_target", + "pants.backend.terraform.lint.tfsec.rules.run_tfsec", "pants.backend.terraform.tool.setup_terraform_process", + "pants.backend.tools.taplo.rules.taplo_fmt", "pants.jvm.resolve.coursier_setup.setup_coursier" ] }, @@ -45163,17 +52208,26 @@ "pants.backend.codegen.protobuf.lint.buf.lint_rules.run_buf", "pants.backend.codegen.protobuf.python.rules.generate_python_from_protobuf", "pants.backend.codegen.protobuf.scala.rules.generate_scala_from_protobuf", + "pants.backend.cue.goals.fix.run_cue_fmt", + "pants.backend.cue.goals.lint.run_cue_vet", "pants.backend.docker.lint.hadolint.rules.run_hadolint", + "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint", + "pants.backend.helm.check.kubeconform.common.setup_kube_conform", "pants.backend.helm.util_rules.tool.download_external_helm_plugin", "pants.backend.helm.util_rules.tool.setup_helm", "pants.backend.javascript.subsystems.nodejs.determine_nodejs_binaries", "pants.backend.project_info.count_loc.count_loc", + "pants.backend.python.providers.pyenv.custom_install.rules.run_pyenv_install", + "pants.backend.python.providers.pyenv.rules.get_pyenv_install_info", + "pants.backend.python.providers.pyenv.rules.get_python", "pants.backend.python.util_rules.pex_cli.download_pex_pex", "pants.backend.shell.dependency_inference.parse_shell_imports", "pants.backend.shell.lint.shellcheck.rules.run_shellcheck", "pants.backend.shell.lint.shfmt.rules.shfmt_fmt", "pants.backend.shell.shunit2_test_runner.setup_shunit2_for_target", + "pants.backend.terraform.lint.tfsec.rules.run_tfsec", "pants.backend.terraform.tool.setup_terraform_process", + "pants.backend.tools.taplo.rules.taplo_fmt", "pants.jvm.resolve.coursier_setup.setup_coursier" ] }, @@ -45181,9 +52235,12 @@ "consumed_by_rules": [], "dependencies": [ "builtins", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.scrooge.java", "pants.backend.experimental.kotlin", + "pants.backend.experimental.openapi.codegen.java", "pants.core", "pants.engine.internals.build_files", "pants.engine.target" @@ -45193,7 +52250,7 @@ "is_union": false, "module": "pants.core.util_rules.partitions", "name": "Partitions", - "provider": "pants.backend.build_files.fix.deprecations, pants.backend.build_files.fmt.black, pants.backend.build_files.fmt.buildifier, pants.backend.build_files.fmt.yapf, pants.backend.codegen.protobuf.lint.buf, pants.backend.docker.lint.hadolint, pants.backend.experimental.go, pants.backend.experimental.helm, pants.backend.experimental.java, pants.backend.experimental.java.lint.google_java_format, pants.backend.experimental.kotlin.lint.ktlint, pants.backend.experimental.openapi.lint.spectral, pants.backend.experimental.python.lint.add_trailing_comma, pants.backend.experimental.python.lint.ruff, pants.backend.experimental.scala, pants.backend.experimental.scala.lint.scalafmt, pants.backend.experimental.terraform, pants.backend.experimental.tools.yamllint, pants.backend.project_info, pants.backend.python, pants.backend.python.lint.autoflake, pants.backend.python.lint.bandit, pants.backend.python.lint.black, pants.backend.python.lint.docformatter, pants.backend.python.lint.flake8, pants.backend.python.lint.isort, pants.backend.python.lint.pydocstyle, pants.backend.python.lint.pylint, pants.backend.python.lint.pyupgrade, pants.backend.python.lint.yapf, pants.backend.shell, pants.backend.shell.lint.shellcheck, pants.backend.shell.lint.shfmt, pants.backend.tools.preamble", + "provider": "pants.backend.build_files.fix.deprecations, pants.backend.build_files.fmt.black, pants.backend.build_files.fmt.buildifier, pants.backend.build_files.fmt.yapf, pants.backend.codegen.protobuf.lint.buf, pants.backend.docker.lint.hadolint, pants.backend.experimental.cc.lint.clangformat, pants.backend.experimental.cue, pants.backend.experimental.go, pants.backend.experimental.go.lint.golangci_lint, pants.backend.experimental.go.lint.vet, pants.backend.experimental.helm, pants.backend.experimental.java, pants.backend.experimental.java.lint.google_java_format, pants.backend.experimental.javascript, pants.backend.experimental.javascript.lint.prettier, pants.backend.experimental.kotlin.lint.ktlint, pants.backend.experimental.openapi.lint.spectral, pants.backend.experimental.python.lint.add_trailing_comma, pants.backend.experimental.python.lint.ruff, pants.backend.experimental.rust, pants.backend.experimental.scala, pants.backend.experimental.scala.lint.scalafmt, pants.backend.experimental.terraform, pants.backend.experimental.terraform.lint.tfsec, pants.backend.experimental.tools.yamllint, pants.backend.experimental.visibility, pants.backend.project_info, pants.backend.python, pants.backend.python.lint.autoflake, pants.backend.python.lint.bandit, pants.backend.python.lint.black, pants.backend.python.lint.docformatter, pants.backend.python.lint.flake8, pants.backend.python.lint.isort, pants.backend.python.lint.pydocstyle, pants.backend.python.lint.pylint, pants.backend.python.lint.pyupgrade, pants.backend.python.lint.yapf, pants.backend.shell, pants.backend.shell.lint.shellcheck, pants.backend.shell.lint.shfmt, pants.backend.tools.preamble, pants.backend.tools.taplo", "returned_by_rules": [ "pants.backend.build_files.utils._get_build_file_partitioner_rules.partition_build_files", "pants.backend.build_files.utils._get_build_file_partitioner_rules.partition_build_files", @@ -45203,6 +52260,7 @@ "pants.backend.codegen.protobuf.lint.buf.format_rules.partition_buf", "pants.backend.codegen.protobuf.lint.buf.lint_rules.partition_buf", "pants.backend.helm.goals.lint.partition_helm_lint", + "pants.backend.javascript.goals.test.partition_nodejs_tests", "pants.backend.project_info.regex_lint.partition_inputs", "pants.backend.python.goals.pytest_runner.partition_python_tests", "pants.backend.python.lint.bandit.rules.partition_bandit", @@ -45212,6 +52270,7 @@ "pants.backend.scala.lint.scalafmt.rules.partition_scalafmt", "pants.backend.terraform.lint.tffmt.tffmt.partition_tffmt", "pants.backend.tools.preamble.rules.partition_inputs", + "pants.backend.tools.taplo.rules.partition_inputs", "pants.backend.tools.yamllint.rules.partition_inputs", "pants.core.util_rules.partitions._partition_per_input_field_set_rules.partitioner", "pants.core.util_rules.partitions._partition_per_input_field_set_rules.partitioner", @@ -45224,6 +52283,15 @@ "pants.core.util_rules.partitions._single_partition_field_set_rules.partitioner", "pants.core.util_rules.partitions._single_partition_field_set_rules.partitioner", "pants.core.util_rules.partitions._single_partition_field_set_rules.partitioner", + "pants.core.util_rules.partitions._single_partition_field_set_rules.partitioner", + "pants.core.util_rules.partitions._single_partition_field_set_rules.partitioner", + "pants.core.util_rules.partitions._single_partition_field_set_rules.partitioner", + "pants.core.util_rules.partitions._single_partition_field_set_rules.partitioner", + "pants.core.util_rules.partitions._single_partition_field_set_rules.partitioner", + "pants.core.util_rules.partitions._single_partition_file_rules.partitioner", + "pants.core.util_rules.partitions._single_partition_file_rules.partitioner", + "pants.core.util_rules.partitions._single_partition_file_rules.partitioner", + "pants.core.util_rules.partitions._single_partition_file_rules.partitioner", "pants.core.util_rules.partitions._single_partition_file_rules.partitioner", "pants.core.util_rules.partitions._single_partition_file_rules.partitioner", "pants.core.util_rules.partitions._single_partition_file_rules.partitioner", @@ -45270,7 +52338,7 @@ "dependencies": [], "dependents": [ "pants.backend.experimental.go", - "pants.backend.experimental.openapi.lint.spectral", + "pants.backend.experimental.javascript", "pants.core" ], "documentation": "Search paths that are valid for the current target environment.", @@ -45292,10 +52360,7 @@ "pants.core.util_rules.search_paths.VersionManagerSearchPaths": { "consumed_by_rules": [], "dependencies": [], - "dependents": [ - "pants.backend.experimental.openapi.lint.spectral", - "pants.core" - ], + "dependents": ["pants.backend.experimental.javascript", "pants.core"], "documentation": null, "is_union": false, "module": "pants.core.util_rules.search_paths", @@ -45341,15 +52406,22 @@ "pants.backend.codegen.thrift.apache.python", "pants.backend.docker", "pants.backend.experimental.codegen.protobuf.go", + "pants.backend.experimental.codegen.thrift.scrooge.java", + "pants.backend.experimental.cue", "pants.backend.experimental.go", + "pants.backend.experimental.go.lint.golangci_lint", + "pants.backend.experimental.go.lint.vet", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.kotlin", "pants.backend.experimental.openapi.lint.spectral", "pants.backend.experimental.python.lint.ruff", + "pants.backend.experimental.python.typecheck.pyright", "pants.backend.experimental.python.typecheck.pytype", "pants.backend.experimental.scala", "pants.backend.experimental.terraform", + "pants.backend.experimental.terraform.lint.tfsec", "pants.backend.python", "pants.backend.python.lint.bandit", "pants.backend.python.lint.flake8", @@ -45372,14 +52444,19 @@ "used_in_rules": [ "pants.backend.codegen.protobuf.go.rules.setup_full_package_build_request", "pants.backend.codegen.thrift.apache.rules.generate_apache_thrift_sources", + "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_thrift_sources", + "pants.backend.cue.goals.lint.run_cue_vet", "pants.backend.docker.util_rules.docker_build_context.create_docker_build_context", "pants.backend.go.goals.test.run_go_tests", + "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint", + "pants.backend.go.lint.vet.rules.run_go_vet", "pants.backend.go.util_rules.first_party_pkg.setup_first_party_pkg_digest", "pants.backend.helm.test.unittest.setup_helm_unittest", "pants.backend.helm.util_rules.renderer.setup_render_helm_deployment_process", "pants.backend.helm.util_rules.sources.get_helm_source_files", "pants.backend.java.compile.javac.compile_java_source", "pants.backend.java.dependency_inference.rules.infer_java_dependencies_and_exports_via_source_analysis", + "pants.backend.javascript.goals.test.run_javascript_tests", "pants.backend.javascript.install_node_package.add_sources_to_installed_node_package", "pants.backend.javascript.install_node_package.install_node_packages_for_address", "pants.backend.kotlin.compile.kotlinc.compile_kotlin_source", @@ -45390,6 +52467,7 @@ "pants.backend.python.lint.pydocstyle.rules.pydocstyle_lint", "pants.backend.python.lint.ruff.rules.ruff_lint", "pants.backend.python.typecheck.mypy.rules.mypy_typecheck_partition", + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck_partition", "pants.backend.python.typecheck.pytype.rules.pytype_typecheck_partition", "pants.backend.python.util_rules.python_sources.prepare_python_sources", "pants.backend.python.util_rules.python_sources.strip_python_sources", @@ -45401,6 +52479,7 @@ "pants.backend.terraform.dependencies.init_terraform", "pants.backend.terraform.goals.deploy.prepare_terraform_deployment", "pants.backend.terraform.lint.tffmt.tffmt.partition_tffmt", + "pants.backend.terraform.lint.tfsec.rules.run_tfsec", "pants.core.util_rules.adhoc_process_support.resolve_execution_environment", "pants.core.util_rules.wrap_source.wrap_source_rule_and_target.wrap_source", "pants.core.util_rules.wrap_source.wrap_source_rule_and_target.wrap_source", @@ -45436,8 +52515,12 @@ "pants.backend.codegen.protobuf.python.rules.generate_python_from_protobuf", "pants.backend.codegen.protobuf.scala.rules.generate_scala_from_protobuf", "pants.backend.codegen.thrift.apache.rules.generate_apache_thrift_sources", + "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_thrift_sources", + "pants.backend.cue.goals.lint.run_cue_vet", "pants.backend.docker.util_rules.docker_build_context.create_docker_build_context", "pants.backend.go.goals.test.run_go_tests", + "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint", + "pants.backend.go.lint.vet.rules.run_go_vet", "pants.backend.go.util_rules.first_party_pkg.setup_first_party_pkg_digest", "pants.backend.helm.test.unittest.setup_helm_unittest", "pants.backend.helm.util_rules.renderer.setup_render_helm_deployment_process", @@ -45446,19 +52529,24 @@ "pants.backend.java.compile.javac.compile_java_source", "pants.backend.java.dependency_inference.rules.infer_java_dependencies_and_exports_via_source_analysis", "pants.backend.java.dependency_inference.symbol_mapper.map_first_party_java_targets_to_symbols", + "pants.backend.java.goals.debug_goals.dump_java_source_analysis", + "pants.backend.javascript.goals.test.run_javascript_tests", "pants.backend.javascript.install_node_package.add_sources_to_installed_node_package", "pants.backend.javascript.install_node_package.install_node_packages_for_address", "pants.backend.kotlin.compile.kotlinc.compile_kotlin_source", "pants.backend.kotlin.dependency_inference.rules.infer_kotlin_dependencies_via_source_analysis", "pants.backend.kotlin.dependency_inference.symbol_mapper.map_first_party_kotlin_targets_to_symbols", + "pants.backend.kotlin.goals.debug_goals.dump_kotlin_source_analysis", "pants.backend.openapi.lint.spectral.rules.run_spectral", "pants.backend.python.dependency_inference.parse_python_dependencies.parse_python_dependencies", + "pants.backend.python.framework.django.dependency_inference.django_parser_script", "pants.backend.python.goals.pytest_runner.setup_pytest_for_target", "pants.backend.python.lint.bandit.rules.bandit_lint", "pants.backend.python.lint.flake8.rules.run_flake8", "pants.backend.python.lint.pydocstyle.rules.pydocstyle_lint", "pants.backend.python.lint.ruff.rules.ruff_lint", "pants.backend.python.typecheck.mypy.rules.mypy_typecheck_partition", + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck_partition", "pants.backend.python.typecheck.pytype.rules.pytype_typecheck_partition", "pants.backend.python.util_rules.python_sources.prepare_python_sources", "pants.backend.scala.bsp.rules.bsp_scala_resources_request", @@ -45466,12 +52554,14 @@ "pants.backend.scala.dependency_inference.rules.infer_scala_dependencies_via_source_analysis", "pants.backend.scala.dependency_inference.scala_parser.create_analyze_scala_source_request", "pants.backend.scala.dependency_inference.symbol_mapper.map_first_party_scala_targets_to_symbols", + "pants.backend.scala.goals.debug_goals.dump_scala_source_analysis", "pants.backend.scala.test.scalatest.setup_scalatest_for_target", "pants.backend.shell.lint.shellcheck.rules.run_shellcheck", "pants.backend.shell.shunit2_test_runner.setup_shunit2_for_target", "pants.backend.terraform.dependencies.init_terraform", "pants.backend.terraform.goals.deploy.prepare_terraform_deployment", "pants.backend.terraform.lint.tffmt.tffmt.partition_tffmt", + "pants.backend.terraform.lint.tfsec.rules.run_tfsec", "pants.core.util_rules.adhoc_process_support.resolve_execution_environment", "pants.core.util_rules.wrap_source.wrap_source_rule_and_target.wrap_source", "pants.core.util_rules.wrap_source.wrap_source_rule_and_target.wrap_source", @@ -45491,7 +52581,8 @@ "dependents": [ "pants.backend.codegen.protobuf.python", "pants.backend.codegen.thrift.apache.python", - "pants.backend.experimental.openapi.lint.spectral", + "pants.backend.experimental.cc", + "pants.backend.experimental.javascript", "pants.backend.experimental.python", "pants.backend.python" ], @@ -45506,6 +52597,7 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.cc.dependency_inference.rules.map_cc_files", "pants.backend.codegen.protobuf.protobuf_dependency_inference.map_protobuf_files", "pants.backend.codegen.protobuf.python.python_protobuf_module_mapper.map_protobuf_to_python_modules", "pants.backend.codegen.thrift.dependency_inference.map_thrift_files", @@ -45529,6 +52621,7 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.cc.dependency_inference.rules.map_cc_files", "pants.backend.codegen.protobuf.protobuf_dependency_inference.map_protobuf_files", "pants.backend.codegen.protobuf.python.python_protobuf_module_mapper.map_protobuf_to_python_modules", "pants.backend.codegen.thrift.dependency_inference.map_thrift_files", @@ -45559,7 +52652,8 @@ "builtins", "pants.backend.experimental.go", "pants.backend.experimental.helm", - "pants.backend.experimental.java" + "pants.backend.experimental.java", + "pants.backend.url_handlers.s3" ], "dependents": [ "pants.backend.codegen.protobuf.lint.buf", @@ -45569,6 +52663,7 @@ "pants.backend.experimental.codegen.protobuf.scala", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.python.framework.django", "pants.backend.experimental.scala", "pants.backend.python" ], @@ -45591,6 +52686,7 @@ "pants.backend.helm.test.unittest.setup_helm_unittest", "pants.backend.java.bsp.rules.bsp_java_resources_request", "pants.backend.python.dependency_inference.parse_python_dependencies.parse_python_dependencies", + "pants.backend.python.framework.django.dependency_inference.django_parser_script", "pants.backend.python.util_rules.python_sources.strip_python_sources", "pants.backend.scala.bsp.rules.bsp_scala_resources_request", "pants.jvm.resources.assemble_resources_jar" @@ -45614,7 +52710,7 @@ "consumed_by_rules": [ "pants.backend.python.util_rules.pex_environment.find_pex_python" ], - "dependencies": ["pants.engine.env_vars"], + "dependencies": ["pants.backend.experimental.javascript"], "dependents": ["pants.core"], "documentation": "SubprocessEnvironmentVars(vars: pants.util.frozendict.FrozenDict[str, str])", "is_union": false, @@ -45630,6 +52726,7 @@ }, "pants.core.util_rules.system_binaries.BashBinary": { "consumed_by_rules": [ + "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint", "pants.backend.go.util_rules.link.setup_go_linker", "pants.backend.go.util_rules.sdk.setup_go_sdk_process", "pants.backend.java.compile.javac.compile_java_source", @@ -45655,6 +52752,7 @@ "dependencies": [], "dependents": [ "pants.backend.experimental.go", + "pants.backend.experimental.go.lint.golangci_lint", "pants.backend.experimental.java", "pants.backend.experimental.python.packaging.pyoxidizer", "pants.backend.experimental.scala", @@ -45679,24 +52777,31 @@ "pants.core.util_rules.system_binaries.BinaryPath": { "consumed_by_rules": [], "dependencies": [ + "pants.backend.experimental.helm", "pants.backend.go.util_rules.cgo_binaries", + "pants.backend.rust.util_rules.toolchains", "pants.core" ], - "dependents": ["pants.backend.experimental.go"], + "dependents": [ + "pants.backend.experimental.go", + "pants.backend.experimental.rust" + ], "documentation": "BinaryPath(path: 'str', fingerprint: 'str | None' = None) -> 'None'", "is_union": false, "module": "pants.core.util_rules.system_binaries", "name": "BinaryPath", - "provider": "pants.backend.experimental.go", + "provider": "pants.backend.experimental.go, pants.backend.experimental.rust", "returned_by_rules": [ - "pants.backend.go.util_rules.cgo_binaries.find_cgo_binary_path" + "pants.backend.go.util_rules.cgo_binaries.find_cgo_binary_path", + "pants.backend.rust.util_rules.toolchains.rust_binary_path" ], "union_members": [], "union_type": null, "used_in_rules": [ "pants.backend.go.util_rules.cgo.cgo_compile_request", "pants.backend.go.util_rules.cgo_pkgconfig.resolve_cgo_pkg_config_args", - "pants.backend.go.util_rules.link.setup_go_linker" + "pants.backend.go.util_rules.link.setup_go_linker", + "pants.backend.rust.util_rules.toolchains.rust_toolchain_process" ] }, "pants.core.util_rules.system_binaries.BinaryPathRequest": { @@ -45716,10 +52821,13 @@ "used_in_rules": [ "pants.backend.adhoc.run_system_binary.create_system_binary_run_request", "pants.backend.codegen.thrift.apache.rules.setup_thrift_tool", + "pants.backend.debian.rules.package_debian_package", "pants.backend.docker.util_rules.docker_binary.get_docker", "pants.backend.go.util_rules.cgo_binaries.find_cgo_binary_path", "pants.backend.go.util_rules.goroot.setup_goroot", "pants.backend.javascript.subsystems.nodejs.get_valid_nodejs_paths_by_version", + "pants.backend.rust.util_rules.toolchains.find_rustup", + "pants.backend.rust.util_rules.toolchains.rust_binary_path", "pants.backend.shell.shunit2_test_runner.determine_shunit2_shell", "pants.core.util_rules.system_binaries.create_binary_shims", "pants.core.util_rules.system_binaries.find_cat", @@ -45749,14 +52857,17 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.experimental.python.lint.ruff", + "pants.backend.url_handlers.s3", "pants.engine.process" ], "dependents": [ "pants.backend.codegen.thrift.apache.python", "pants.backend.docker", "pants.backend.experimental.adhoc", + "pants.backend.experimental.debian", "pants.backend.experimental.go", - "pants.backend.experimental.openapi.lint.spectral", + "pants.backend.experimental.javascript", + "pants.backend.experimental.rust", "pants.backend.shell", "pants.core" ], @@ -45773,10 +52884,13 @@ "used_in_rules": [ "pants.backend.adhoc.run_system_binary.create_system_binary_run_request", "pants.backend.codegen.thrift.apache.rules.setup_thrift_tool", + "pants.backend.debian.rules.package_debian_package", "pants.backend.docker.util_rules.docker_binary.get_docker", "pants.backend.go.util_rules.cgo_binaries.find_cgo_binary_path", "pants.backend.go.util_rules.goroot.setup_goroot", "pants.backend.javascript.subsystems.nodejs.get_valid_nodejs_paths_by_version", + "pants.backend.rust.util_rules.toolchains.find_rustup", + "pants.backend.rust.util_rules.toolchains.rust_binary_path", "pants.backend.shell.shunit2_test_runner.determine_shunit2_shell", "pants.core.util_rules.system_binaries.create_binary_shims", "pants.core.util_rules.system_binaries.find_cat", @@ -45804,12 +52918,13 @@ "builtins", "pants.backend.experimental.go", "pants.backend.experimental.helm", - "pants.backend.experimental.java" + "pants.backend.experimental.java", + "pants.backend.url_handlers.s3" ], "dependents": [ "pants.backend.codegen.protobuf.lint.buf", "pants.backend.docker", - "pants.backend.experimental.openapi.lint.spectral", + "pants.backend.experimental.javascript", "pants.backend.shell" ], "documentation": "The shims created for a BinaryShimsRequest is placed in `bin_directory` of the `digest`.\n\nThe purpose of these shims is so that a Process may be executed with `immutable_input_digests`\nprovided to the `Process`, and `path_component` included in its `PATH` environment variable.\n\nThe alternative is to add the directories hosting the binaries directly, but that opens up for\nmany more unrelated binaries to also be executable from PATH, leaking into the sandbox\nunnecessarily.", @@ -46048,10 +53163,11 @@ }, "pants.core.util_rules.system_binaries.TarBinary": { "consumed_by_rules": [ + "pants.backend.debian.rules.package_debian_package", "pants.core.util_rules.adhoc_binaries.download_python_binary" ], - "dependencies": ["pants.engine.platform"], - "dependents": ["pants.core"], + "dependencies": ["pants.backend.experimental.javascript"], + "dependents": ["pants.backend.experimental.debian", "pants.core"], "documentation": "TarBinary(path: 'str', fingerprint: 'str', platform: 'Platform')", "is_union": false, "module": "pants.core.util_rules.system_binaries", @@ -46125,12 +53241,12 @@ "pants.core.util_rules.wrap_source.wrap_source_rule_and_target.wrap_source" ], "dependencies": ["pants.engine.target"], - "dependents": ["pants.core"], + "dependents": ["pants.backend.experimental.go"], "documentation": null, "is_union": false, "module": "pants.core.util_rules.wrap_source", "name": "GenerateWrapSourceSourcesRequest", - "provider": "pants.core", + "provider": "pants.backend.experimental.go", "returned_by_rules": [], "union_members": [], "union_type": "GenerateSourcesRequest", @@ -46153,16 +53269,24 @@ "pants.backend.codegen.protobuf.python", "pants.backend.codegen.thrift.apache.python", "pants.backend.docker", + "pants.backend.experimental.cc", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.apache.java", + "pants.backend.experimental.codegen.thrift.scrooge.java", + "pants.backend.experimental.codegen.thrift.scrooge.scala", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.kotlin", "pants.backend.experimental.openapi", - "pants.backend.experimental.openapi.lint.spectral", + "pants.backend.experimental.openapi.codegen.java", + "pants.backend.experimental.python.framework.django", "pants.backend.experimental.python.framework.stevedore", "pants.backend.experimental.scala", "pants.backend.experimental.terraform", + "pants.backend.experimental.visibility", "pants.backend.python", "pants.backend.shell", "pants.build_graph.address", @@ -46174,6 +53298,7 @@ "pants.backend.docker", "pants.backend.experimental.go", "pants.backend.experimental.java", + "pants.backend.experimental.visibility", "pants.backend.project_info", "pants.backend.python", "pants.backend.python.lint.flake8", @@ -46228,6 +53353,7 @@ "pants.backend.scala.goals.check.scalac_check", "pants.backend.scala.goals.repl.create_scala_repl_request", "pants.backend.scala.test.scalatest.setup_scalatest_for_target", + "pants.backend.visibility.lint.check_visibility_rule_violations", "pants.core.util_rules.adhoc_process_support.resolve_execution_environment", "pants.engine.internals.graph.transitive_dependency_mapping", "pants.jvm.package.deploy_jar.package_deploy_jar", @@ -46294,10 +53420,137 @@ "union_type": null, "used_in_rules": ["pants.core.goals.test.run_tests"] }, - "pants.engine.env_vars.EnvironmentVarsRequest": { + "pants.engine.download_file.URLDownloadHandler": { "consumed_by_rules": [], "dependencies": [], - "dependents": [], + "dependents": ["pants.backend.url_handlers.s3"], + "documentation": "Union base for custom URL handler.\n\nTo register a custom URL handler:\n- Subclass this class and declare one or both of the ClassVars.\n- Declare a rule that takes in your class type and returns a `Digest`.\n- Register your union member in your `rules()`: `UnionRule(URLDownloadHandler, YourClass)`.\n\nExample:\n\n class S3DownloadHandler(URLDownloadHandler):\n match_scheme = \"s3\"\n\n @rule\n async def download_s3_file(request: S3DownloadHandler) -> Digest:\n # Lookup auth tokens, etc...\n # Ideally, download the file using `NativeDownloadFile()`\n return digest\n\n def rules():\n return [\n *collect_rules(),\n UnionRule(URLDownloadHandler, S3DownloadHandler),\n ]", + "is_union": true, + "module": "pants.engine.download_file", + "name": "URLDownloadHandler", + "provider": "pants.engine.download_file", + "returned_by_rules": [], + "union_members": [ + "DownloadS3AuthorityPathStyleURL", + "DownloadS3AuthorityVirtualHostedStyleURL", + "DownloadS3SchemeURL" + ], + "union_type": null, + "used_in_rules": [] + }, + "pants.engine.env_vars.CompleteEnvironmentVars": { + "consumed_by_rules": [ + "pants.core.goals.repl.run_repl", + "pants.core.goals.run.run", + "pants.engine.internals.platform_rules.environment_vars_subset" + ], + "dependencies": [ + "pants.backend.experimental.helm", + "pants.core", + "pants.engine.internals.session" + ], + "dependents": ["pants.backend.experimental.javascript", "pants.core"], + "documentation": "CompleteEnvironmentVars contains all environment variables from the current Pants process.\n\nNB: Consumers should almost always prefer to consume the `EnvironmentVars` type, which is\nfiltered to a relevant subset of the environment.", + "is_union": false, + "module": "pants.engine.env_vars", + "name": "CompleteEnvironmentVars", + "provider": "pants.backend.experimental.javascript", + "returned_by_rules": [ + "pants.engine.internals.platform_rules.complete_environment_vars" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "pants.engine.env_vars.EnvironmentVars": { + "consumed_by_rules": [], + "dependencies": ["pants.engine.env_vars"], + "dependents": [ + "pants.backend.codegen.thrift.apache.python", + "pants.backend.docker", + "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.go", + "pants.backend.experimental.helm", + "pants.backend.experimental.helm.check.kubeconform", + "pants.backend.experimental.java", + "pants.backend.experimental.javascript", + "pants.backend.experimental.python", + "pants.backend.experimental.rust", + "pants.backend.experimental.scala", + "pants.backend.experimental.terraform", + "pants.backend.python", + "pants.backend.python.providers.experimental.pyenv", + "pants.backend.shell", + "pants.core" + ], + "documentation": "A subset of the variables set in the environment.\n\nAccesses to `os.environ` cannot be accurately tracked, so @rules that need access to the\nenvironment should use APIs from this module instead.\n\nWherever possible, the `EnvironmentVars` type should be consumed rather than the\n`CompleteEnvironmentVars`, as it represents a filtered/relevant subset of the environment, rather\nthan the entire unfiltered environment.", + "is_union": false, + "module": "pants.engine.env_vars", + "name": "EnvironmentVars", + "provider": "pants.backend.experimental.javascript", + "returned_by_rules": [ + "pants.engine.internals.platform_rules.environment_vars_subset" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "construct_env_aware_scope_apache_thrift", + "construct_env_aware_scope_docker", + "construct_env_aware_scope_go_generate", + "construct_env_aware_scope_golang", + "construct_env_aware_scope_jvm", + "construct_env_aware_scope_nodejs", + "construct_env_aware_scope_pex", + "construct_env_aware_scope_pyenv_python_provider", + "construct_env_aware_scope_python_bootstrap", + "construct_env_aware_scope_python_native_code", + "construct_env_aware_scope_shell_setup", + "construct_env_aware_scope_subprocess_environment", + "construct_env_aware_scope_test", + "pants.backend.codegen.protobuf.scala.rules.generate_scala_from_protobuf", + "pants.backend.codegen.thrift.apache.rules.setup_thrift_tool", + "pants.backend.docker.goals.publish.push_docker_images", + "pants.backend.docker.goals.run_image.docker_image_run_request", + "pants.backend.docker.util_rules.docker_build_env.docker_build_environment_vars", + "pants.backend.go.goals.generate.run_go_package_generators", + "pants.backend.go.goals.test.run_go_tests", + "pants.backend.go.util_rules.cgo.cgo_compile_request", + "pants.backend.go.util_rules.sdk.setup_go_sdk_process", + "pants.backend.helm.check.kubeconform.common.setup_kube_conform", + "pants.backend.helm.util_rules.renderer.setup_render_helm_deployment_process", + "pants.backend.helm.util_rules.tool.helm_process", + "pants.backend.helm.util_rules.tool.setup_helm", + "pants.backend.javascript.goals.test.run_javascript_tests", + "pants.backend.javascript.package.rules.run_node_build_script", + "pants.backend.javascript.run.rules.run_node_build_script", + "pants.backend.javascript.subsystems.nodejs.node_process_environment", + "pants.backend.javascript.subsystems.nodejs.nodejs_bootstrap", + "pants.backend.python.goals.package_dists.package_python_dist", + "pants.backend.python.goals.publish.twine_upload", + "pants.backend.python.goals.pytest_runner.setup_pytest_for_target", + "pants.backend.python.providers.pyenv.rules.get_pyenv_install_info", + "pants.backend.python.providers.pyenv.rules.get_python", + "pants.backend.python.util_rules.local_dists_pep660.isolate_local_dist_pep660_wheels", + "pants.backend.rust.util_rules.toolchains.find_rustup", + "pants.backend.scala.test.scalatest.setup_scalatest_for_target", + "pants.backend.terraform.tool.setup_terraform_process", + "pants.core.goals.export.export", + "pants.core.goals.test.get_filtered_environment", + "pants.core.subsystems.python_bootstrap._expand_interpreter_search_paths", + "pants.core.util_rules.adhoc_binaries.download_python_binary", + "pants.core.util_rules.adhoc_process_support.prepare_adhoc_process", + "pants.core.util_rules.asdf.resolve_asdf_tool_paths", + "pants.core.util_rules.subprocess_environment.get_subprocess_environment", + "pants.engine.internals.platform_rules.environment_path_variable", + "pants.jvm.test.junit.setup_junit_for_target" + ] + }, + "pants.engine.env_vars.EnvironmentVarsRequest": { + "consumed_by_rules": [ + "pants.engine.internals.platform_rules.environment_vars_subset" + ], + "dependencies": [], + "dependents": ["pants.backend.experimental.javascript"], "documentation": "Requests a subset of the variables set in the environment.\n\nRequesting only the relevant subset of the environment reduces invalidation caused by unrelated\nchanges.", "is_union": false, "module": "pants.engine.env_vars", @@ -46314,6 +53567,7 @@ "construct_env_aware_scope_jvm", "construct_env_aware_scope_nodejs", "construct_env_aware_scope_pex", + "construct_env_aware_scope_pyenv_python_provider", "construct_env_aware_scope_python_bootstrap", "construct_env_aware_scope_python_native_code", "construct_env_aware_scope_shell_setup", @@ -46328,15 +53582,22 @@ "pants.backend.go.goals.test.run_go_tests", "pants.backend.go.util_rules.cgo.cgo_compile_request", "pants.backend.go.util_rules.sdk.setup_go_sdk_process", + "pants.backend.helm.check.kubeconform.common.setup_kube_conform", "pants.backend.helm.util_rules.renderer.setup_render_helm_deployment_process", "pants.backend.helm.util_rules.tool.helm_process", "pants.backend.helm.util_rules.tool.setup_helm", + "pants.backend.javascript.goals.test.run_javascript_tests", + "pants.backend.javascript.package.rules.run_node_build_script", + "pants.backend.javascript.run.rules.run_node_build_script", "pants.backend.javascript.subsystems.nodejs.node_process_environment", "pants.backend.javascript.subsystems.nodejs.nodejs_bootstrap", "pants.backend.python.goals.package_dists.package_python_dist", "pants.backend.python.goals.publish.twine_upload", "pants.backend.python.goals.pytest_runner.setup_pytest_for_target", + "pants.backend.python.providers.pyenv.rules.get_pyenv_install_info", + "pants.backend.python.providers.pyenv.rules.get_python", "pants.backend.python.util_rules.local_dists_pep660.isolate_local_dist_pep660_wheels", + "pants.backend.rust.util_rules.toolchains.find_rustup", "pants.backend.scala.test.scalatest.setup_scalatest_for_target", "pants.backend.terraform.tool.setup_terraform_process", "pants.core.goals.export.export", @@ -46346,9 +53607,35 @@ "pants.core.util_rules.adhoc_process_support.prepare_adhoc_process", "pants.core.util_rules.asdf.resolve_asdf_tool_paths", "pants.core.util_rules.subprocess_environment.get_subprocess_environment", + "pants.engine.internals.platform_rules.environment_path_variable", "pants.jvm.test.junit.setup_junit_for_target" ] }, + "pants.engine.env_vars.PathEnvironmentVariable": { + "consumed_by_rules": [ + "pants.core.subsystems.python_bootstrap._expand_interpreter_search_paths" + ], + "dependencies": [], + "dependents": [ + "pants.backend.experimental.go", + "pants.backend.experimental.javascript", + "pants.core" + ], + "documentation": "The PATH environment variable entries, split on `os.pathsep`.", + "is_union": false, + "module": "pants.engine.env_vars", + "name": "PathEnvironmentVariable", + "provider": "pants.backend.experimental.javascript", + "returned_by_rules": [ + "pants.engine.internals.platform_rules.environment_path_variable" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.go.util_rules.go_bootstrap.resolve_go_bootstrap", + "pants.backend.javascript.subsystems.nodejs.nodejs_bootstrap" + ] + }, "pants.engine.environment.EnvironmentName": { "consumed_by_rules": [], "dependencies": [], @@ -46396,6 +53683,7 @@ "used_in_rules": [ "pants.backend.build_files.fix.deprecations.renamed_fields_rules.fix", "pants.backend.build_files.fix.deprecations.renamed_targets_rules.fix", + "pants.backend.codegen.avro.java.rules.compile_avro_source", "pants.backend.codegen.protobuf.go.rules.generate_go_from_protobuf", "pants.backend.codegen.protobuf.go.rules.setup_full_package_build_request", "pants.backend.codegen.protobuf.go.rules.setup_go_protoc_plugin", @@ -46405,11 +53693,14 @@ "pants.backend.codegen.protobuf.scala.rules.generate_scala_from_protobuf", "pants.backend.codegen.protobuf.scala.rules.setup_scalapb_shim_classfiles", "pants.backend.codegen.thrift.apache.rules.generate_apache_thrift_sources", + "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_thrift_sources", + "pants.backend.debian.rules.package_debian_package", "pants.backend.docker.goals.package_image.build_docker_image", "pants.backend.docker.subsystems.dockerfile_parser.setup_parser", "pants.backend.docker.util_rules.dockerfile.hydrate_dockerfile", "pants.backend.go.go_sources.load_go_binary.setup_go_binary", "pants.backend.go.goals.generate.merge_digests_with_overwrite", + "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint", "pants.backend.go.util_rules.assembly.generate_go_assembly_symabisfile", "pants.backend.go.util_rules.build_pkg.build_go_package", "pants.backend.go.util_rules.build_pkg.render_embed_config", @@ -46426,6 +53717,7 @@ "pants.backend.go.util_rules.link.setup_go_linker", "pants.backend.go.util_rules.sdk.go_sdk_invoke_setup", "pants.backend.go.util_rules.third_party_pkg.analyze_go_third_party_package", + "pants.backend.helm.check.kubeconform.common.run_kubeconform", "pants.backend.helm.goals.package.run_helm_package", "pants.backend.helm.resolve.fetch.fetch_helm_artifact", "pants.backend.helm.subsystems.k8s_parser.build_k8s_parser_tool", @@ -46442,9 +53734,13 @@ "pants.backend.javascript.package_json.pnpm_workspace_files", "pants.backend.javascript.subsystems.nodejs.node_process_environment", "pants.backend.kotlin.dependency_inference.kotlin_parser.setup_kotlin_parser_classfiles", + "pants.backend.openapi.codegen.java.rules.compile_openapi_into_java", + "pants.backend.openapi.codegen.java.rules.infer_openapi_java_dependencies", "pants.backend.openapi.lint.spectral.rules.run_spectral", "pants.backend.python.dependency_inference.parse_python_dependencies.general_parser_script", "pants.backend.python.dependency_inference.parse_python_dependencies.get_parser_script", + "pants.backend.python.framework.django.dependency_inference.django_parser_script", + "pants.backend.python.framework.django.detect_apps.detect_django_apps", "pants.backend.python.framework.stevedore.rules.generate_entry_points_txt_from_stevedore_extension", "pants.backend.python.goals.coverage_py.create_or_update_coverage_config", "pants.backend.python.goals.coverage_py.merge_coverage_data", @@ -46457,7 +53753,10 @@ "pants.backend.python.lint.pylint.rules.run_pylint", "pants.backend.python.packaging.pyoxidizer.rules.create_pyoxidizer_runner_script", "pants.backend.python.packaging.pyoxidizer.rules.package_pyoxidizer_binary", + "pants.backend.python.providers.pyenv.custom_install.rules.run_pyenv_install", + "pants.backend.python.providers.pyenv.rules.get_pyenv_install_info", "pants.backend.python.typecheck.mypy.rules.mypy_typecheck_partition", + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck_partition", "pants.backend.python.util_rules.dists.run_pep517_build", "pants.backend.python.util_rules.faas.build_python_faas", "pants.backend.python.util_rules.faas.infer_runtime_platforms", @@ -46512,6 +53811,7 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.codegen.avro.java.rules.compile_avro_source", "pants.backend.go.util_rules.build_pkg.build_go_package", "pants.backend.go.util_rules.cgo.cgo_compile_request", "pants.backend.go.util_rules.coverage.go_apply_code_coverage", @@ -46525,6 +53825,9 @@ "pants.backend.helm.util_rules.sources.get_helm_source_files", "pants.backend.helm.util_rules.tool.download_external_helm_plugin", "pants.backend.helm.util_rules.tool.setup_helm", + "pants.backend.javascript.goals.test.collect_coverage_reports", + "pants.backend.javascript.goals.test.run_javascript_tests", + "pants.backend.openapi.codegen.java.rules.compile_openapi_into_java", "pants.backend.python.goals.pytest_runner.run_python_tests", "pants.backend.python.goals.pytest_runner.setup_pytest_for_target", "pants.backend.python.util_rules.dists.find_build_system", @@ -46574,7 +53877,7 @@ "pants.backend.javascript.package_json.parse_package_json" ], "dependencies": [], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": "The content of a file.\n\nThis can be used to create a new Digest with `Get(Digest, CreateDigest)`. You can also get back\na list of `FileContent` objects by using `Get(DigestContents, Digest)`.", "is_union": false, "module": "pants.engine.fs", @@ -46587,12 +53890,28 @@ "pants.backend.javascript.package_json.read_package_jsons" ] }, + "pants.engine.fs.NativeDownloadFile": { + "consumed_by_rules": [], + "dependencies": [], + "dependents": [], + "documentation": "Retrieve the contents of a file via an HTTP GET request or directly for local file:// URLs.\n\nThis request is handled directly by the native engine without any additional coercion by plugins,\nand therefore should only be used in cases where the URL is known to be publicly accessible.\nOtherwise, callers should use `DownloadFile`.\n\nThe auth_headers are part of this nodes' cache key for memoization (changing a header invalidates\nprior results) but are not part of the underlying cache key for the local/remote cache (changing\na header won't re-download a file if the file was previously downloaded).", + "is_union": false, + "module": "pants.engine.fs", + "name": "NativeDownloadFile", + "provider": "pants.engine.fs", + "returned_by_rules": [], + "union_members": [], + "union_type": null, + "used_in_rules": [ + "pants.backend.url_handlers.s3.register.download_from_s3" + ] + }, "pants.engine.fs.PathGlobs": { "consumed_by_rules": [ "pants.backend.javascript.package_json.read_package_jsons" ], "dependencies": [], - "dependents": ["pants.backend.experimental.openapi.lint.spectral"], + "dependents": ["pants.backend.experimental.javascript"], "documentation": "PathGlobs(globs: 'Iterable[str]', glob_match_error_behavior: 'GlobMatchErrorBehavior' = , conjunction: 'GlobExpansionConjunction' = , description_of_origin: 'str | None' = None) -> 'None'", "is_union": false, "module": "pants.engine.fs", @@ -46602,6 +53921,8 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.cc.goals.tailor.find_putative_targets", + "pants.backend.codegen.avro.tailor.find_putative_targets", "pants.backend.codegen.protobuf.tailor.find_putative_targets", "pants.backend.codegen.thrift.tailor.find_putative_thrift_targets", "pants.backend.docker.goals.tailor.find_putative_targets", @@ -46609,6 +53930,8 @@ "pants.backend.go.goals.tailor.find_putative_go_targets", "pants.backend.helm.goals.tailor.find_putative_helm_targets", "pants.backend.java.goals.tailor.find_putative_targets", + "pants.backend.javascript.goals.tailor.find_putative_js_targets", + "pants.backend.javascript.goals.tailor.find_putative_package_json_targets", "pants.backend.javascript.nodejs_project_environment.setup_nodejs_project_environment_process", "pants.backend.javascript.package_json.all_package_json", "pants.backend.javascript.package_json.package_json_for_source", @@ -46633,9 +53956,11 @@ "pants.backend.python.util_rules.pex_from_targets.determine_global_requirement_constraints", "pants.backend.python.util_rules.pex_requirements.determine_resolve_pex_config", "pants.backend.python.util_rules.pex_requirements.load_lockfile", + "pants.backend.rust.goals.tailor.find_putative_rust_targets", "pants.backend.scala.goals.tailor.find_putative_targets", "pants.backend.scala.lint.scalafmt.rules.gather_scalafmt_config_files", "pants.backend.shell.goals.tailor.find_putative_targets", + "pants.backend.swift.goals.tailor.find_putative_targets", "pants.backend.terraform.goals.tailor.find_putative_terrform_module_targets", "pants.backend.tools.yamllint.rules.gather_config_files", "pants.backend.tools.yamllint.rules.run_yamllint", @@ -46670,6 +53995,36 @@ "union_type": null, "used_in_rules": ["pants.backend.project_info.peek.get_target_data"] }, + "pants.engine.internals.dep_rules.BuildFileDependencyRulesImplementation": { + "consumed_by_rules": [], + "dependencies": [], + "dependents": [], + "documentation": "BuildFileDependencyRulesImplementation(build_file_dependency_rules_class: 'type[BuildFileDependencyRules]')", + "is_union": false, + "module": "pants.engine.internals.dep_rules", + "name": "BuildFileDependencyRulesImplementation", + "provider": "pants.backend.experimental.visibility", + "returned_by_rules": [ + "pants.backend.visibility.rules.build_file_visibility_implementation" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "pants.engine.internals.dep_rules.BuildFileDependencyRulesImplementationRequest": { + "consumed_by_rules": [], + "dependencies": [], + "dependents": ["pants.backend.experimental.visibility"], + "documentation": null, + "is_union": true, + "module": "pants.engine.internals.dep_rules", + "name": "BuildFileDependencyRulesImplementationRequest", + "provider": "pants.engine.internals.dep_rules", + "returned_by_rules": [], + "union_members": ["BuildFileVisibilityImplementationRequest"], + "union_type": null, + "used_in_rules": [] + }, "pants.engine.internals.graph.GenerateFileTargets": { "consumed_by_rules": [ "pants.engine.internals.graph.generate_file_targets" @@ -46697,7 +54052,7 @@ "pants.engine.target" ], "dependents": [ - "pants.backend.experimental.openapi.lint.spectral", + "pants.backend.experimental.javascript", "pants.backend.python" ], "documentation": null, @@ -46781,7 +54136,7 @@ ], "dependents": [ "pants.backend.experimental.go", - "pants.backend.experimental.openapi.lint.spectral" + "pants.backend.experimental.javascript" ], "documentation": "ResolvedTargetGeneratorRequests(requests: 'tuple[GenerateTargetsRequest, ...]' = ())", "is_union": false, @@ -46925,7 +54280,7 @@ "pants.engine.internals.parametrize._TargetParametrizations": { "consumed_by_rules": [], "dependencies": [ - "pants.backend.experimental.openapi.lint.spectral", + "pants.backend.experimental.javascript", "pants.backend.experimental.scala", "pants.backend.plugin_development", "pants.backend.python", @@ -46982,9 +54337,10 @@ "is_union": false, "module": "pants.engine.internals.synthetic_targets", "name": "SyntheticAddressMaps", - "provider": "pants.core", + "provider": "pants.backend.python.providers.experimental.pyenv.custom_install, pants.core", "returned_by_rules": [ - "pants.backend.python.goals.lockfile.python_lockfile_synthetic_targets" + "pants.backend.python.goals.lockfile.python_lockfile_synthetic_targets", + "pants.backend.python.providers.pyenv.custom_install.rules.make_synthetic_targets" ], "union_members": [], "union_type": null, @@ -46993,14 +54349,20 @@ "pants.engine.internals.synthetic_targets.SyntheticTargetsRequest": { "consumed_by_rules": [], "dependencies": [], - "dependents": ["pants.core"], + "dependents": [ + "pants.backend.python.providers.experimental.pyenv.custom_install", + "pants.core" + ], "documentation": "Union members of the `SyntheticTargetsRequest` should implement a rule returning an instance\nof a `SyntheticAddressMaps`.", "is_union": true, "module": "pants.engine.internals.synthetic_targets", "name": "SyntheticTargetsRequest", "provider": "pants.engine.internals.synthetic_targets", "returned_by_rules": [], - "union_members": ["PythonSyntheticLockfileTargetsRequest"], + "union_members": [ + "PythonSyntheticLockfileTargetsRequest", + "SyntheticPyenvTargetsRequest" + ], "union_type": null, "used_in_rules": [] }, @@ -47023,6 +54385,87 @@ "pants.engine.internals.graph._determine_target_adaptor_and_type" ] }, + "pants.engine.platform.Platform": { + "consumed_by_rules": [ + "pants.backend.build_files.fmt.buildifier.rules.buildfier_fmt", + "pants.backend.codegen.protobuf.go.rules.generate_go_from_protobuf", + "pants.backend.codegen.protobuf.go.rules.setup_full_package_build_request", + "pants.backend.codegen.protobuf.java.rules.generate_java_from_protobuf", + "pants.backend.codegen.protobuf.java.rules.resolve_protobuf_java_grpc_plugin", + "pants.backend.codegen.protobuf.lint.buf.format_rules.run_buf_format", + "pants.backend.codegen.protobuf.lint.buf.lint_rules.run_buf", + "pants.backend.codegen.protobuf.python.rules.generate_python_from_protobuf", + "pants.backend.codegen.protobuf.scala.rules.generate_scala_from_protobuf", + "pants.backend.cue.goals.fix.run_cue_fmt", + "pants.backend.cue.goals.lint.run_cue_vet", + "pants.backend.docker.lint.hadolint.rules.run_hadolint", + "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint", + "pants.backend.helm.check.kubeconform.common.setup_kube_conform", + "pants.backend.helm.subsystems.unittest.download_unittest_plugin_request", + "pants.backend.helm.util_rules.tool.setup_helm", + "pants.backend.javascript.subsystems.nodejs.determine_nodejs_binaries", + "pants.backend.project_info.count_loc.count_loc", + "pants.backend.python.packaging.pyoxidizer.rules.package_pyoxidizer_binary", + "pants.backend.python.providers.pyenv.custom_install.rules.run_pyenv_install", + "pants.backend.python.providers.pyenv.rules.get_pyenv_install_info", + "pants.backend.python.providers.pyenv.rules.get_python", + "pants.backend.python.util_rules.faas.build_lambdex", + "pants.backend.python.util_rules.pex_cli.download_pex_pex", + "pants.backend.shell.dependency_inference.parse_shell_imports", + "pants.backend.shell.lint.shellcheck.rules.run_shellcheck", + "pants.backend.shell.lint.shfmt.rules.shfmt_fmt", + "pants.backend.shell.shunit2_test_runner.setup_shunit2_for_target", + "pants.backend.terraform.lint.tfsec.rules.run_tfsec", + "pants.backend.terraform.tool.setup_terraform_process", + "pants.backend.tools.taplo.rules.taplo_fmt", + "pants.backend.visibility.lint.check_visibility_rule_violations", + "pants.core.target_types.hydrate_file_source", + "pants.core.target_types.hydrate_resource_source", + "pants.core.util_rules.adhoc_binaries.download_python_binary", + "pants.core.util_rules.system_binaries.find_tar", + "pants.jvm.resolve.coursier_setup.setup_coursier" + ], + "dependencies": ["pants.core"], + "dependents": [ + "pants.backend.awslambda.python", + "pants.backend.build_files.fmt.buildifier", + "pants.backend.codegen.protobuf.lint.buf", + "pants.backend.codegen.protobuf.python", + "pants.backend.docker.lint.hadolint", + "pants.backend.experimental.codegen.protobuf.go", + "pants.backend.experimental.codegen.protobuf.java", + "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.cue", + "pants.backend.experimental.go.lint.golangci_lint", + "pants.backend.experimental.helm", + "pants.backend.experimental.helm.check.kubeconform", + "pants.backend.experimental.java", + "pants.backend.experimental.javascript", + "pants.backend.experimental.python.packaging.pyoxidizer", + "pants.backend.experimental.terraform", + "pants.backend.experimental.terraform.lint.tfsec", + "pants.backend.experimental.visibility", + "pants.backend.project_info", + "pants.backend.python.providers.experimental.pyenv", + "pants.backend.python.providers.experimental.pyenv.custom_install", + "pants.backend.shell", + "pants.backend.shell.lint.shellcheck", + "pants.backend.shell.lint.shfmt", + "pants.backend.tools.taplo", + "pants.core" + ], + "documentation": "An enumeration.", + "is_union": false, + "module": "pants.engine.platform", + "name": "Platform", + "provider": "pants.backend.experimental.javascript", + "returned_by_rules": [ + "pants.engine.internals.platform_rules.current_platform" + ], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, "pants.engine.process.FallibleProcessResult": { "consumed_by_rules": [ "pants.engine.process.fallible_to_exec_result_or_raise" @@ -47033,6 +54476,7 @@ "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.python", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": [ @@ -47041,15 +54485,22 @@ "pants.backend.docker.lint.hadolint", "pants.backend.experimental.adhoc", "pants.backend.experimental.codegen.protobuf.go", + "pants.backend.experimental.cue", "pants.backend.experimental.go", + "pants.backend.experimental.go.lint.golangci_lint", + "pants.backend.experimental.go.lint.vet", "pants.backend.experimental.helm", + "pants.backend.experimental.helm.check.kubeconform", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.kotlin", "pants.backend.experimental.openapi.lint.spectral", "pants.backend.experimental.python.lint.ruff", + "pants.backend.experimental.python.typecheck.pyright", "pants.backend.experimental.python.typecheck.pytype", "pants.backend.experimental.scala", "pants.backend.experimental.terraform", + "pants.backend.experimental.terraform.lint.tfsec", "pants.backend.experimental.tools.yamllint", "pants.backend.python", "pants.backend.python.lint.bandit", @@ -47075,9 +54526,13 @@ "pants.backend.adhoc.run_system_binary.create_system_binary_run_request", "pants.backend.codegen.protobuf.go.rules.setup_full_package_build_request", "pants.backend.codegen.protobuf.lint.buf.lint_rules.run_buf", + "pants.backend.cue.goals.fix.run_cue_fmt", + "pants.backend.cue.goals.lint.run_cue_vet", "pants.backend.docker.goals.package_image.build_docker_image", "pants.backend.docker.lint.hadolint.rules.run_hadolint", "pants.backend.go.goals.test.run_go_tests", + "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint", + "pants.backend.go.lint.vet.rules.run_go_vet", "pants.backend.go.util_rules.assembly.assemble_go_assembly_files", "pants.backend.go.util_rules.assembly.generate_go_assembly_symabisfile", "pants.backend.go.util_rules.build_pkg.build_go_package", @@ -47088,11 +54543,13 @@ "pants.backend.go.util_rules.first_party_pkg.setup_first_party_pkg_digest", "pants.backend.go.util_rules.tests_analysis.generate_testmain", "pants.backend.go.util_rules.third_party_pkg.analyze_go_third_party_package", + "pants.backend.helm.check.kubeconform.common.run_kubeconform", "pants.backend.helm.goals.lint.run_helm_lint", "pants.backend.helm.subsystems.k8s_parser.parse_kube_manifest", "pants.backend.helm.test.unittest.run_helm_unittest", "pants.backend.java.compile.javac.compile_java_source", "pants.backend.java.dependency_inference.java_parser.analyze_java_source_dependencies", + "pants.backend.javascript.goals.test.run_javascript_tests", "pants.backend.kotlin.compile.kotlinc.compile_kotlin_source", "pants.backend.kotlin.dependency_inference.kotlin_parser.analyze_kotlin_source_dependencies", "pants.backend.openapi.lint.spectral.rules.run_spectral", @@ -47108,6 +54565,7 @@ "pants.backend.python.lint.ruff.rules.ruff_lint", "pants.backend.python.lint.ruff.rules.run_ruff", "pants.backend.python.typecheck.mypy.rules.mypy_typecheck_partition", + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck_partition", "pants.backend.python.typecheck.pytype.rules.pytype_typecheck_partition", "pants.backend.scala.compile.scalac.compile_scala_source", "pants.backend.scala.dependency_inference.scala_parser.analyze_scala_source_dependencies", @@ -47119,6 +54577,7 @@ "pants.backend.shell.shunit2_test_runner.run_tests_with_shunit2", "pants.backend.terraform.dependencies.get_terraform_providers", "pants.backend.terraform.goals.check.terraform_check", + "pants.backend.terraform.lint.tfsec.rules.run_tfsec", "pants.backend.tools.yamllint.rules.run_yamllint", "pants.core.util_rules.adhoc_process_support.run_adhoc_process", "pants.core.util_rules.system_binaries.find_binary", @@ -47134,9 +54593,13 @@ "pants.backend.docker", "pants.backend.experimental.go", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.openapi.lint.spectral", + "pants.backend.experimental.rust", "pants.backend.shell", "pants.backend.terraform.goals.deploy", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": [ @@ -47171,16 +54634,26 @@ ], "dependencies": [ "builtins", + "pants.backend.experimental.codegen.avro.java", + "pants.backend.experimental.codegen.protobuf.java", + "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.scrooge.java", + "pants.backend.experimental.java.lint.google_java_format", + "pants.backend.experimental.kotlin", + "pants.backend.experimental.kotlin.lint.ktlint", + "pants.backend.experimental.scala", + "pants.backend.experimental.scala.lint.scalafmt", "pants.backend.go.util_rules.sdk", "pants.backend.helm.util_rules.tool", "pants.backend.javascript.nodejs_project_environment", "pants.backend.javascript.subsystems.nodejs", "pants.backend.javascript.subsystems.nodejs_tool", + "pants.backend.openapi.util_rules.generator_process", "pants.backend.python", + "pants.backend.rust.util_rules.toolchains", "pants.backend.terraform.dependency_inference", "pants.backend.terraform.tool", - "pants.engine.env_vars", - "pants.engine.platform", + "pants.backend.url_handlers.s3", "pants.jvm.jdk_rules", "pants.jvm.resolve.coursier_setup" ], @@ -47188,9 +54661,12 @@ "pants.backend.docker", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.openapi.lint.spectral", "pants.backend.experimental.python", "pants.backend.experimental.python.packaging.pyoxidizer", + "pants.backend.experimental.python.typecheck.pyright", "pants.backend.experimental.scala", "pants.backend.experimental.terraform", "pants.backend.python", @@ -47201,7 +54677,7 @@ "is_union": false, "module": "pants.engine.process", "name": "Process", - "provider": "pants.backend.docker, pants.backend.experimental.go, pants.backend.experimental.helm, pants.backend.experimental.java, pants.backend.experimental.openapi.lint.spectral, pants.backend.experimental.terraform, pants.backend.shell, pants.core, pants.engine.process", + "provider": "pants.backend.docker, pants.backend.experimental.go, pants.backend.experimental.helm, pants.backend.experimental.java, pants.backend.experimental.javascript, pants.backend.experimental.openapi.codegen.java, pants.backend.experimental.openapi.lint.spectral, pants.backend.experimental.rust, pants.backend.experimental.terraform, pants.backend.shell, pants.core, pants.engine.process", "returned_by_rules": [ "pants.backend.docker.subsystems.dockerfile_parser.setup_process_for_parse_dockerfile", "pants.backend.go.util_rules.sdk.setup_go_sdk_process", @@ -47209,9 +54685,11 @@ "pants.backend.javascript.nodejs_project_environment.setup_nodejs_project_environment_process", "pants.backend.javascript.subsystems.nodejs.setup_node_tool_process", "pants.backend.javascript.subsystems.nodejs_tool.prepare_tool_process", + "pants.backend.openapi.util_rules.generator_process.openapi_generator_process", "pants.backend.python.util_rules.pex.setup_pex_process", "pants.backend.python.util_rules.pex.setup_venv_pex_process", "pants.backend.python.util_rules.pex_cli.setup_pex_cli_process", + "pants.backend.rust.util_rules.toolchains.rust_toolchain_process", "pants.backend.shell.util_rules.shell_command.prepare_process_request_from_target", "pants.backend.terraform.dependency_inference.setup_process_for_parse_terraform_module_sources", "pants.backend.terraform.tool.setup_terraform_process", @@ -47233,6 +54711,9 @@ "pants.backend.codegen.protobuf.python.rules.generate_python_from_protobuf", "pants.backend.codegen.thrift.apache.rules.generate_apache_thrift_sources", "pants.backend.codegen.thrift.apache.rules.setup_thrift_tool", + "pants.backend.cue.goals.fix.run_cue_fmt", + "pants.backend.cue.goals.lint.run_cue_vet", + "pants.backend.debian.rules.package_debian_package", "pants.backend.docker.goals.package_image.build_docker_image", "pants.backend.docker.lint.hadolint.rules.run_hadolint", "pants.backend.docker.subsystems.dockerfile_parser.setup_process_for_parse_dockerfile", @@ -47240,6 +54721,7 @@ "pants.backend.go.goals.test.prepare_go_test_binary", "pants.backend.go.goals.test.run_go_tests", "pants.backend.go.lint.gofmt.rules.gofmt_fmt", + "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint", "pants.backend.go.util_rules.build_pkg.check_for_golang_assembly", "pants.backend.go.util_rules.build_pkg_target.resolve_go_stdlib_embed_config", "pants.backend.go.util_rules.cgo.cgo_compile_request", @@ -47251,23 +54733,31 @@ "pants.backend.go.util_rules.tests_analysis.generate_testmain", "pants.backend.go.util_rules.third_party_pkg.analyze_go_third_party_module", "pants.backend.go.util_rules.third_party_pkg.analyze_go_third_party_package", + "pants.backend.helm.check.kubeconform.common.run_kubeconform", "pants.backend.helm.goals.publish.publish_helm_chart", "pants.backend.helm.subsystems.post_renderer.setup_post_renderer_launcher", "pants.backend.helm.util_rules.renderer.materialize_deployment_process_wrapper_into_interactive_process", "pants.backend.java.compile.javac.compile_java_source", + "pants.backend.javascript.goals.test.run_javascript_tests", "pants.backend.javascript.nodejs_project_environment.setup_nodejs_project_environment_process", + "pants.backend.javascript.run.rules.run_node_build_script", "pants.backend.javascript.subsystems.nodejs.node_process_environment", "pants.backend.javascript.subsystems.nodejs.prepare_corepack_tool", "pants.backend.javascript.subsystems.nodejs_tool.prepare_tool_process", + "pants.backend.openapi.util_rules.generator_process.openapi_generator_process", "pants.backend.project_info.count_loc.count_loc", "pants.backend.python.dependency_inference.parse_python_dependencies.parse_python_dependencies", + "pants.backend.python.framework.django.detect_apps.detect_django_apps", "pants.backend.python.goals.publish.twine_upload", "pants.backend.python.goals.pytest_runner.run_python_tests", "pants.backend.python.goals.pytest_runner.setup_pytest_for_target", "pants.backend.python.packaging.pyoxidizer.rules.package_pyoxidizer_binary", + "pants.backend.python.providers.pyenv.rules.get_python", "pants.backend.python.typecheck.mypy.rules.mypy_typecheck_partition", + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck_partition", "pants.backend.python.util_rules.local_dists.isolate_local_dist_wheels", "pants.backend.python.util_rules.local_dists_pep660.isolate_local_dist_pep660_wheels", + "pants.backend.rust.util_rules.toolchains.rust_binary_path", "pants.backend.scala.bsp.rules.bsp_resolve_scala_metadata", "pants.backend.scala.test.scalatest.setup_scalatest_debug_request", "pants.backend.shell.dependency_inference.parse_shell_imports", @@ -47278,11 +54768,14 @@ "pants.backend.shell.util_rules.shell_command.prepare_process_request_from_target", "pants.backend.terraform.dependency_inference.setup_process_for_parse_terraform_module_sources", "pants.backend.terraform.goals.deploy.prepare_terraform_deployment", + "pants.backend.terraform.lint.tfsec.rules.run_tfsec", + "pants.backend.tools.taplo.rules.taplo_fmt", "pants.core.util_rules.adhoc_binaries.download_python_binary", "pants.core.util_rules.adhoc_process_support.run_adhoc_process", "pants.core.util_rules.archive.create_archive", "pants.core.util_rules.archive.maybe_extract_archive", "pants.core.util_rules.system_binaries.find_binary", + "pants.engine.internals.platform_rules.complete_environment_vars", "pants.jvm.classpath.loose_classfiles", "pants.jvm.jdk_rules.prepare_jdk_environment", "pants.jvm.package.war.package_war", @@ -47308,19 +54801,27 @@ "pants.backend.codegen.protobuf.python", "pants.backend.codegen.thrift.apache.python", "pants.backend.docker", + "pants.backend.experimental.cc.lint.clangformat", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.go", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.scrooge.java", + "pants.backend.experimental.debian", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", "pants.backend.experimental.java.lint.google_java_format", + "pants.backend.experimental.javascript", + "pants.backend.experimental.javascript.lint.prettier", "pants.backend.experimental.kotlin", "pants.backend.experimental.kotlin.lint.ktlint", - "pants.backend.experimental.openapi.lint.spectral", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.python", + "pants.backend.experimental.python.framework.django", "pants.backend.experimental.python.lint.add_trailing_comma", "pants.backend.experimental.python.packaging.pyoxidizer", + "pants.backend.experimental.rust", "pants.backend.experimental.scala", "pants.backend.experimental.scala.lint.scalafmt", "pants.backend.experimental.terraform", @@ -47330,8 +54831,10 @@ "pants.backend.python.lint.black", "pants.backend.python.lint.isort", "pants.backend.python.lint.yapf", + "pants.backend.python.providers.experimental.pyenv", "pants.backend.shell", "pants.backend.shell.lint.shfmt", + "pants.backend.tools.taplo", "pants.core" ], "documentation": "Result of executing a process which should not fail.\n\nIf the process has a non-zero exit code, this will raise an exception, unlike\nFallibleProcessResult.", @@ -47348,6 +54851,8 @@ "pants.backend.build_files.fmt.black.register.black_fmt", "pants.backend.build_files.fmt.buildifier.rules.buildfier_fmt", "pants.backend.build_files.fmt.yapf.register.yapf_fmt", + "pants.backend.cc.lint.clangformat.rules.clangformat_fmt", + "pants.backend.codegen.avro.java.rules.compile_avro_source", "pants.backend.codegen.protobuf.go.rules.generate_go_from_protobuf", "pants.backend.codegen.protobuf.go.rules.setup_go_protoc_plugin", "pants.backend.codegen.protobuf.java.rules.generate_java_from_protobuf", @@ -47357,6 +54862,8 @@ "pants.backend.codegen.protobuf.scala.rules.setup_scalapb_shim_classfiles", "pants.backend.codegen.thrift.apache.rules.generate_apache_thrift_sources", "pants.backend.codegen.thrift.apache.rules.setup_thrift_tool", + "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_thrift_sources", + "pants.backend.debian.rules.package_debian_package", "pants.backend.docker.subsystems.dockerfile_parser.parse_dockerfile", "pants.backend.go.goals.generate.run_go_package_generators", "pants.backend.go.goals.test.prepare_go_test_binary", @@ -47382,13 +54889,20 @@ "pants.backend.java.compile.javac.compile_java_source", "pants.backend.java.dependency_inference.java_parser.build_processors", "pants.backend.java.lint.google_java_format.rules.google_java_format_fmt", + "pants.backend.javascript.goals.lockfile.generate_lockfile_from_package_jsons", "pants.backend.javascript.install_node_package.install_node_packages_for_address", + "pants.backend.javascript.lint.prettier.rules.prettier_fmt", + "pants.backend.javascript.package.rules.pack_node_package_into_tgz_for_publication", + "pants.backend.javascript.package.rules.run_node_build_script", "pants.backend.javascript.subsystems.nodejs.node_process_environment", "pants.backend.javascript.subsystems.nodejs.prepare_corepack_tool", "pants.backend.kotlin.dependency_inference.kotlin_parser.setup_kotlin_parser_classfiles", "pants.backend.kotlin.lint.ktlint.rules.ktlint_fmt", + "pants.backend.openapi.codegen.java.rules.compile_openapi_into_java", "pants.backend.project_info.count_loc.count_loc", "pants.backend.python.dependency_inference.parse_python_dependencies.parse_python_dependencies", + "pants.backend.python.framework.django.dependency_inference.django_parser_script", + "pants.backend.python.framework.django.detect_apps.detect_django_apps", "pants.backend.python.goals.coverage_py.merge_coverage_data", "pants.backend.python.goals.export.do_export", "pants.backend.python.goals.lockfile.generate_lockfile", @@ -47398,6 +54912,7 @@ "pants.backend.python.lint.isort.rules.isort_fmt", "pants.backend.python.lint.yapf.rules.yapf_fmt", "pants.backend.python.packaging.pyoxidizer.rules.package_pyoxidizer_binary", + "pants.backend.python.providers.pyenv.rules.get_python", "pants.backend.python.util_rules.dists.run_pep517_build", "pants.backend.python.util_rules.faas.build_lambdex", "pants.backend.python.util_rules.local_dists.isolate_local_dist_wheels", @@ -47409,6 +54924,8 @@ "pants.backend.python.util_rules.pex.find_interpreter", "pants.backend.python.util_rules.pex_venv.pex_venv", "pants.backend.python.util_rules.vcs_versioning.generate_python_from_setuptools_scm", + "pants.backend.rust.lint.rustfmt.rules.rustfmt_fmt", + "pants.backend.rust.util_rules.toolchains.rust_binary_path", "pants.backend.scala.bsp.rules.bsp_resolve_scala_metadata", "pants.backend.scala.dependency_inference.scala_parser.resolve_fallible_result_to_analysis", "pants.backend.scala.dependency_inference.scala_parser.setup_scala_parser_classfiles", @@ -47416,6 +54933,7 @@ "pants.backend.shell.lint.shfmt.rules.shfmt_fmt", "pants.backend.terraform.dependency_inference.infer_terraform_module_dependencies", "pants.backend.terraform.lint.tffmt.tffmt.tffmt_fmt", + "pants.backend.tools.taplo.rules.taplo_fmt", "pants.core.goals.update_build_files.format_build_file_with_black", "pants.core.goals.update_build_files.format_build_file_with_yapf", "pants.core.util_rules.adhoc_binaries.download_python_binary", @@ -47423,6 +54941,7 @@ "pants.core.util_rules.archive.create_archive", "pants.core.util_rules.archive.maybe_extract_archive", "pants.core.util_rules.system_binaries.find_binary", + "pants.engine.internals.platform_rules.complete_environment_vars", "pants.jvm.classpath.loose_classfiles", "pants.jvm.jar_tool.jar_tool.build_jar_tool", "pants.jvm.jar_tool.jar_tool.run_jar_tool", @@ -47444,7 +54963,10 @@ "pants.backend.docker", "pants.backend.experimental.go", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.openapi.lint.spectral", + "pants.backend.experimental.rust", "pants.backend.experimental.terraform", "pants.backend.shell", "pants.core" @@ -47504,6 +55026,8 @@ }, "pants.engine.target.AllTargets": { "consumed_by_rules": [ + "pants.backend.cc.dependency_inference.rules.find_all_cc_targets", + "pants.backend.codegen.avro.target_types.find_all_avro_targets", "pants.backend.codegen.protobuf.target_types.find_all_protobuf_targets", "pants.backend.codegen.thrift.target_types.find_all_thrift_targets", "pants.backend.docker.target_types.all_docker_targets", @@ -47536,11 +55060,13 @@ "pants.backend.codegen.protobuf.python", "pants.backend.codegen.thrift.apache.python", "pants.backend.docker", + "pants.backend.experimental.cc", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.kotlin", - "pants.backend.experimental.openapi.lint.spectral", "pants.backend.experimental.python", "pants.backend.experimental.python.framework.stevedore", "pants.backend.experimental.scala", @@ -47596,6 +55122,7 @@ "dependents": [ "pants.backend.experimental.java", "pants.backend.experimental.kotlin", + "pants.backend.experimental.python.typecheck.pyright", "pants.backend.experimental.python.typecheck.pytype", "pants.backend.experimental.scala", "pants.backend.python.lint.pylint", @@ -47617,6 +55144,7 @@ "pants.backend.kotlin.goals.check.kotlinc_check", "pants.backend.python.lint.pylint.rules.partition_pylint", "pants.backend.python.typecheck.mypy.rules.mypy_determine_partitions", + "pants.backend.python.typecheck.pyright.rules.pyright_determine_partitions", "pants.backend.python.typecheck.pytype.rules.pytype_determine_partitions", "pants.backend.scala.bsp.rules.bsp_scala_compile_request", "pants.backend.scala.bsp.rules.bsp_scala_resources_request", @@ -47645,6 +55173,7 @@ "used_in_rules": [ "pants.backend.python.lint.pylint.rules.partition_pylint", "pants.backend.python.typecheck.mypy.rules.mypy_determine_partitions", + "pants.backend.python.typecheck.pyright.rules.pyright_determine_partitions", "pants.backend.python.typecheck.pytype.rules.pytype_determine_partitions" ] }, @@ -47664,6 +55193,7 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.cc.dependency_inference.rules.infer_cc_source_dependencies", "pants.backend.codegen.protobuf.protobuf_dependency_inference.infer_protobuf_dependencies", "pants.backend.codegen.thrift.dependency_inference.infer_thrift_dependencies", "pants.backend.docker.util_rules.docker_build_context.create_docker_build_context", @@ -47699,6 +55229,7 @@ "pants.backend.shell.dependency_inference.infer_shell_dependencies", "pants.backend.shell.lint.shellcheck.rules.run_shellcheck", "pants.backend.terraform.dependencies.init_terraform", + "pants.backend.visibility.lint.check_visibility_rule_violations", "pants.engine.internals.graph.resolve_dependencies", "pants.engine.internals.graph.transitive_dependency_mapping", "pants.jvm.package.war.package_war" @@ -47716,7 +55247,11 @@ "returned_by_rules": [], "union_members": [], "union_type": null, - "used_in_rules": ["pants.backend.project_info.peek.get_target_data"] + "used_in_rules": [ + "pants.backend.project_info.peek.get_target_data", + "pants.backend.visibility.lint.check_visibility_rule_violations", + "pants.backend.visibility.rules.visibility_validate_dependencies" + ] }, "pants.engine.target.ExplicitlyProvidedDependencies": { "consumed_by_rules": [], @@ -47729,6 +55264,7 @@ "pants.backend.awslambda.python", "pants.backend.codegen.protobuf.python", "pants.backend.codegen.thrift.apache.python", + "pants.backend.experimental.cc", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", @@ -47750,6 +55286,7 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.cc.dependency_inference.rules.infer_cc_source_dependencies", "pants.backend.codegen.protobuf.protobuf_dependency_inference.infer_protobuf_dependencies", "pants.backend.codegen.thrift.dependency_inference.infer_thrift_dependencies", "pants.backend.helm.dependency_inference.chart.infer_chart_dependencies_via_metadata", @@ -47915,12 +55452,18 @@ "pants.backend.codegen.thrift.apache.python", "pants.backend.docker", "pants.backend.experimental.adhoc", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.go", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.apache.java", + "pants.backend.experimental.codegen.thrift.scrooge.java", + "pants.backend.experimental.codegen.thrift.scrooge.scala", "pants.backend.experimental.go", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.kotlin", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.python", "pants.backend.experimental.scala", "pants.backend.python", @@ -47940,12 +55483,18 @@ "GenerateFilesFromAdhocToolRequest", "GenerateFilesFromShellCommandRequest", "GenerateGoFromProtobufRequest", + "GenerateJavaFromAvroRequest", + "GenerateJavaFromOpenAPIRequest", "GenerateJavaFromProtobufRequest", + "GenerateJavaFromThriftRequest", + "GenerateJavaFromThriftRequest", "GeneratePythonFromProtobufRequest", "GeneratePythonFromSetuptoolsSCMRequest", "GeneratePythonFromThriftRequest", "GenerateResourceSourceRequest", + "GenerateResourcesFromNodeBuildScriptRequest", "GenerateScalaFromProtobufRequest", + "GenerateScalaFromThriftRequest", "GenerateWrapSourceSourcesRequest", "GenerateWrapSourceSourcesRequest", "GenerateWrapSourceSourcesRequest", @@ -47962,7 +55511,7 @@ "dependencies": [], "dependents": [ "pants.backend.experimental.go", - "pants.backend.experimental.openapi.lint.spectral", + "pants.backend.experimental.javascript", "pants.backend.experimental.scala", "pants.backend.plugin_development", "pants.backend.python" @@ -47998,25 +55547,31 @@ "pants.backend.experimental.kotlin.lint.ktlint", "pants.backend.experimental.python.packaging.pyoxidizer", "pants.backend.experimental.scala.lint.scalafmt", - "pants.engine.env_vars", - "pants.engine.environment", - "pants.engine.platform" + "pants.backend.python.providers.experimental.pyenv.custom_install", + "pants.backend.url_handlers.s3", + "pants.engine.environment" ], "dependents": ["pants.backend.experimental.go"], "documentation": "GeneratedSources(snapshot: 'Snapshot')", "is_union": false, "module": "pants.engine.target", "name": "GeneratedSources", - "provider": "pants.backend.codegen.protobuf.python, pants.backend.codegen.thrift.apache.python, pants.backend.docker, pants.backend.experimental.adhoc, pants.backend.experimental.codegen.protobuf.go, pants.backend.experimental.codegen.protobuf.java, pants.backend.experimental.codegen.protobuf.scala, pants.backend.experimental.go, pants.backend.experimental.java, pants.backend.experimental.kotlin, pants.backend.experimental.python, pants.backend.experimental.scala, pants.backend.python, pants.backend.shell, pants.core", + "provider": "pants.backend.codegen.protobuf.python, pants.backend.codegen.thrift.apache.python, pants.backend.docker, pants.backend.experimental.adhoc, pants.backend.experimental.codegen.avro.java, pants.backend.experimental.codegen.protobuf.go, pants.backend.experimental.codegen.protobuf.java, pants.backend.experimental.codegen.protobuf.scala, pants.backend.experimental.codegen.thrift.apache.java, pants.backend.experimental.codegen.thrift.scrooge.java, pants.backend.experimental.codegen.thrift.scrooge.scala, pants.backend.experimental.go, pants.backend.experimental.java, pants.backend.experimental.javascript, pants.backend.experimental.kotlin, pants.backend.experimental.openapi.codegen.java, pants.backend.experimental.python, pants.backend.experimental.scala, pants.backend.python, pants.backend.shell, pants.core", "returned_by_rules": [ "pants.backend.adhoc.adhoc_tool.run_in_sandbox_request", + "pants.backend.codegen.avro.java.rules.generate_java_from_avro", "pants.backend.codegen.protobuf.go.rules.generate_go_from_protobuf", "pants.backend.codegen.protobuf.java.rules.generate_java_from_protobuf", "pants.backend.codegen.protobuf.python.rules.generate_python_from_protobuf", "pants.backend.codegen.protobuf.scala.rules.generate_scala_from_protobuf", + "pants.backend.codegen.thrift.apache.java.rules.generate_java_from_thrift", "pants.backend.codegen.thrift.apache.python.rules.generate_python_from_thrift", + "pants.backend.codegen.thrift.scrooge.java.rules.generate_java_from_thrift_with_scrooge", + "pants.backend.codegen.thrift.scrooge.scala.rules.generate_scala_from_thrift_with_scrooge", "pants.backend.docker.util_rules.docker_build_context.hydrate_input_sources", "pants.backend.docker.util_rules.dockerfile.hydrate_dockerfile", + "pants.backend.javascript.package.rules.generate_resources_from_node_build_script", + "pants.backend.openapi.codegen.java.rules.generate_java_from_openapi", "pants.backend.python.util_rules.vcs_versioning.generate_python_from_setuptools_scm", "pants.backend.shell.util_rules.shell_command.shell_command_in_sandbox", "pants.core.target_types.hydrate_file_source", @@ -48052,7 +55607,7 @@ "is_union": false, "module": "pants.engine.target", "name": "GeneratedTargets", - "provider": "pants.backend.experimental.go, pants.backend.experimental.openapi.lint.spectral, pants.backend.experimental.scala, pants.backend.plugin_development, pants.backend.python", + "provider": "pants.backend.experimental.go, pants.backend.experimental.javascript, pants.backend.experimental.scala, pants.backend.plugin_development, pants.backend.python", "returned_by_rules": [ "pants.backend.go.target_type_rules.generate_targets_from_go_mod", "pants.backend.javascript.package_json.generate_node_package_targets", @@ -48083,11 +55638,14 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.cc.dependency_inference.rules.infer_cc_source_dependencies", + "pants.backend.codegen.avro.java.rules.generate_java_from_avro", "pants.backend.codegen.export_codegen_goal.export_codegen", "pants.backend.codegen.protobuf.go.rules.map_import_paths_of_all_go_protobuf_targets", "pants.backend.codegen.protobuf.go.rules.setup_build_go_package_request_for_protobuf", "pants.backend.codegen.protobuf.protobuf_dependency_inference.infer_protobuf_dependencies", "pants.backend.codegen.thrift.thrift_parser.parse_thrift_file", + "pants.backend.debian.rules.package_debian_package", "pants.backend.docker.subsystems.dockerfile_parser.parse_dockerfile", "pants.backend.go.util_rules.first_party_pkg.analyze_first_party_package", "pants.backend.go.util_rules.first_party_pkg.setup_first_party_pkg_digest", @@ -48095,10 +55653,12 @@ "pants.backend.helm.util_rules.chart_metadata.parse_chart_metadata_from_field", "pants.backend.helm.util_rules.sources.find_chart_source_root", "pants.backend.javascript.dependency_inference.rules.infer_js_source_dependencies", + "pants.backend.openapi.codegen.java.rules.generate_java_from_openapi", "pants.backend.openapi.dependency_inference.infer_openapi_document_dependencies", "pants.backend.openapi.dependency_inference.infer_openapi_module_dependencies", "pants.backend.project_info.filedeps.file_deps", "pants.backend.project_info.peek.get_target_data", + "pants.backend.python.framework.django.detect_apps.detect_django_apps", "pants.backend.python.packaging.pyoxidizer.rules.package_pyoxidizer_binary", "pants.backend.python.util_rules.pex.digest_complete_platform_addresses", "pants.backend.python.util_rules.python_sources.prepare_python_sources", @@ -48118,11 +55678,17 @@ "pants.backend.codegen.thrift.apache.python", "pants.backend.docker", "pants.backend.experimental.adhoc", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.go", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.apache.java", + "pants.backend.experimental.codegen.thrift.scrooge.java", + "pants.backend.experimental.codegen.thrift.scrooge.scala", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.kotlin", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.python", "pants.backend.experimental.scala", "pants.backend.python", @@ -48135,12 +55701,17 @@ "pants.backend.codegen.protobuf.python", "pants.backend.codegen.thrift.apache.python", "pants.backend.docker", + "pants.backend.experimental.cc", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.go", + "pants.backend.experimental.debian", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.openapi", - "pants.backend.experimental.openapi.lint.spectral", + "pants.backend.experimental.openapi.codegen.java", + "pants.backend.experimental.python.framework.django", "pants.backend.experimental.python.packaging.pyoxidizer", "pants.backend.experimental.terraform", "pants.backend.project_info", @@ -48157,11 +55728,14 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.cc.dependency_inference.rules.infer_cc_source_dependencies", + "pants.backend.codegen.avro.java.rules.generate_java_from_avro", "pants.backend.codegen.export_codegen_goal.export_codegen", "pants.backend.codegen.protobuf.go.rules.map_import_paths_of_all_go_protobuf_targets", "pants.backend.codegen.protobuf.go.rules.setup_build_go_package_request_for_protobuf", "pants.backend.codegen.protobuf.protobuf_dependency_inference.infer_protobuf_dependencies", "pants.backend.codegen.thrift.thrift_parser.parse_thrift_file", + "pants.backend.debian.rules.package_debian_package", "pants.backend.docker.subsystems.dockerfile_parser.parse_dockerfile", "pants.backend.go.util_rules.first_party_pkg.analyze_first_party_package", "pants.backend.go.util_rules.first_party_pkg.setup_first_party_pkg_digest", @@ -48169,10 +55743,12 @@ "pants.backend.helm.util_rules.chart_metadata.parse_chart_metadata_from_field", "pants.backend.helm.util_rules.sources.find_chart_source_root", "pants.backend.javascript.dependency_inference.rules.infer_js_source_dependencies", + "pants.backend.openapi.codegen.java.rules.generate_java_from_openapi", "pants.backend.openapi.dependency_inference.infer_openapi_document_dependencies", "pants.backend.openapi.dependency_inference.infer_openapi_module_dependencies", "pants.backend.project_info.filedeps.file_deps", "pants.backend.project_info.peek.get_target_data", + "pants.backend.python.framework.django.detect_apps.detect_django_apps", "pants.backend.python.packaging.pyoxidizer.rules.package_pyoxidizer_binary", "pants.backend.python.util_rules.pex.digest_complete_platform_addresses", "pants.backend.python.util_rules.python_sources.prepare_python_sources", @@ -48192,14 +55768,21 @@ "pants.backend.codegen.protobuf.python", "pants.backend.codegen.thrift.apache.python", "pants.backend.docker", + "pants.backend.experimental.cc", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.apache.java", + "pants.backend.experimental.codegen.thrift.scrooge.java", + "pants.backend.experimental.codegen.thrift.scrooge.scala", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.kotlin", "pants.backend.experimental.openapi", - "pants.backend.experimental.openapi.lint.spectral", + "pants.backend.experimental.openapi.codegen.java", + "pants.backend.experimental.python.framework.django", "pants.backend.experimental.python.framework.stevedore", "pants.backend.experimental.scala", "pants.backend.experimental.terraform", @@ -48213,8 +55796,12 @@ "provider": "pants.engine.target", "returned_by_rules": [], "union_members": [ + "InferApacheThriftJavaDependencies", "InferApacheThriftPythonDependencies", + "InferAvroRuntimeDependencyRequest", + "InferCCDependenciesRequest", "InferConftestDependencies", + "InferDjangoDependencies", "InferDockerDependencies", "InferGoBinaryMainDependencyRequest", "InferGoPackageDependenciesRequest", @@ -48230,6 +55817,7 @@ "InferKotlinSourceDependencies", "InferNodePackageDependenciesRequest", "InferOpenApiDocumentDependenciesRequest", + "InferOpenApiJavaRuntimeDependencyRequest", "InferOpenApiSourceDependenciesRequest", "InferPexBinaryEntryPointDependency", "InferProtobufDependencies", @@ -48242,6 +55830,8 @@ "InferScalaPBRuntimeDependencyRequest", "InferScalaPluginDependenciesRequest", "InferScalaSourceDependencies", + "InferScroogeThriftJavaDependencies", + "InferScroogeThriftScalaDependencies", "InferShellDependencies", "InferStevedoreNamespacesDependencies", "InferTerraformModuleDependenciesRequest", @@ -48255,6 +55845,7 @@ "dependencies": [ "builtins", "pants.backend.helm.util_rules.chart_metadata", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.addresses", "pants.engine.fs", @@ -48265,14 +55856,19 @@ "is_union": false, "module": "pants.engine.target", "name": "InferredDependencies", - "provider": "pants.backend.awslambda.python, pants.backend.codegen.protobuf.python, pants.backend.codegen.thrift.apache.python, pants.backend.docker, pants.backend.experimental.codegen.protobuf.java, pants.backend.experimental.codegen.protobuf.scala, pants.backend.experimental.go, pants.backend.experimental.helm, pants.backend.experimental.java, pants.backend.experimental.kotlin, pants.backend.experimental.openapi, pants.backend.experimental.openapi.lint.spectral, pants.backend.experimental.python.framework.stevedore, pants.backend.experimental.scala, pants.backend.experimental.terraform, pants.backend.python, pants.backend.shell", + "provider": "pants.backend.awslambda.python, pants.backend.codegen.protobuf.python, pants.backend.codegen.thrift.apache.python, pants.backend.docker, pants.backend.experimental.cc, pants.backend.experimental.codegen.avro.java, pants.backend.experimental.codegen.protobuf.java, pants.backend.experimental.codegen.protobuf.scala, pants.backend.experimental.codegen.thrift.apache.java, pants.backend.experimental.codegen.thrift.scrooge.java, pants.backend.experimental.codegen.thrift.scrooge.scala, pants.backend.experimental.go, pants.backend.experimental.helm, pants.backend.experimental.java, pants.backend.experimental.javascript, pants.backend.experimental.kotlin, pants.backend.experimental.openapi, pants.backend.experimental.openapi.codegen.java, pants.backend.experimental.python.framework.django, pants.backend.experimental.python.framework.stevedore, pants.backend.experimental.scala, pants.backend.experimental.terraform, pants.backend.python, pants.backend.shell", "returned_by_rules": [ + "pants.backend.cc.dependency_inference.rules.infer_cc_source_dependencies", + "pants.backend.codegen.avro.java.rules.infer_apache_avro_java_dependencies", "pants.backend.codegen.protobuf.java.dependency_inference.infer_protobuf_java_runtime_dependency", "pants.backend.codegen.protobuf.protobuf_dependency_inference.infer_protobuf_dependencies", "pants.backend.codegen.protobuf.python.python_protobuf_subsystem.infer_dependencies", "pants.backend.codegen.protobuf.scala.dependency_inference.infer_scalapb_runtime_dependency", + "pants.backend.codegen.thrift.apache.java.rules.infer_apache_thrift_java_dependencies", "pants.backend.codegen.thrift.apache.python.rules.find_apache_thrift_python_requirement", "pants.backend.codegen.thrift.dependency_inference.infer_thrift_dependencies", + "pants.backend.codegen.thrift.scrooge.java.rules.inject_scrooge_thrift_java_dependencies", + "pants.backend.codegen.thrift.scrooge.scala.rules.inject_scrooge_thrift_scala_dependencies", "pants.backend.docker.util_rules.dependencies.infer_docker_dependencies", "pants.backend.go.target_type_rules.infer_go_dependencies", "pants.backend.go.target_type_rules.infer_go_third_party_package_dependencies", @@ -48286,11 +55882,13 @@ "pants.backend.kotlin.dependency_inference.rules.infer_kotlin_dependencies_via_source_analysis", "pants.backend.kotlin.dependency_inference.rules.infer_kotlin_stdlib_dependency", "pants.backend.kotlin.test.junit.infer_kotlin_junit_dependency", + "pants.backend.openapi.codegen.java.rules.infer_openapi_java_dependencies", "pants.backend.openapi.dependency_inference.infer_openapi_document_dependencies", "pants.backend.openapi.dependency_inference.infer_openapi_module_dependencies", "pants.backend.python.dependency_inference.rules.infer_python_conftest_dependencies", "pants.backend.python.dependency_inference.rules.infer_python_dependencies_via_source", "pants.backend.python.dependency_inference.rules.infer_python_init_dependencies", + "pants.backend.python.framework.django.dependency_inference.django_parser_script", "pants.backend.python.framework.stevedore.python_target_dependencies.infer_stevedore_namespaces_dependencies", "pants.backend.python.target_types_rules.infer_pex_binary_entry_point_dependency", "pants.backend.python.target_types_rules.infer_python_distribution_dependencies", @@ -48310,12 +55908,8 @@ "dependencies": [], "dependents": [ "pants.backend.codegen.thrift.apache.python", - "pants.backend.docker", - "pants.backend.experimental.go", - "pants.backend.experimental.java", - "pants.backend.experimental.openapi.lint.spectral", - "pants.backend.shell", - "pants.core" + "pants.backend.experimental.codegen.thrift.apache.java", + "pants.backend.experimental.codegen.thrift.scrooge.java" ], "documentation": null, "is_union": true, @@ -48324,33 +55918,10 @@ "provider": "pants.engine.target", "returned_by_rules": [], "union_members": [ - "OptionField", - "OptionField", - "OptionField", - "OptionField", - "OptionField", - "OptionField", - "OptionField", - "OptionField", - "OptionField", - "OptionField", - "OptionField", - "OptionField", - "OptionField", - "OptionField", - "OptionField", - "OptionField", - "OptionField", - "OptionField", - "OptionField", - "OptionField", - "OptionField", - "OptionField", - "OptionField", - "OptionField", - "OptionField", - "OptionField", - "OptionField" + "PrefixedJvmJdkField", + "PrefixedJvmResolveField", + "ScroogeFinagleBoolField", + "ThriftPythonResolveField" ], "union_type": null, "used_in_rules": [] @@ -48361,12 +55932,16 @@ ], "dependencies": ["pants.engine.fs", "pants.engine.target"], "dependents": [ + "pants.backend.experimental.cc.lint.clangformat", "pants.backend.experimental.codegen.protobuf.go", + "pants.backend.experimental.cue", "pants.backend.experimental.go", "pants.backend.experimental.java.lint.google_java_format", + "pants.backend.experimental.javascript.lint.prettier", "pants.backend.experimental.kotlin.lint.ktlint", "pants.backend.experimental.python.lint.add_trailing_comma", "pants.backend.experimental.python.lint.ruff", + "pants.backend.experimental.rust", "pants.backend.python.lint.autoflake", "pants.backend.python.lint.docformatter", "pants.backend.python.lint.isort", @@ -48401,6 +55976,10 @@ "pants.core.util_rules.partitions._single_partition_file_rules.partitioner", "pants.core.util_rules.partitions._single_partition_file_rules.partitioner", "pants.core.util_rules.partitions._single_partition_file_rules.partitioner", + "pants.core.util_rules.partitions._single_partition_file_rules.partitioner", + "pants.core.util_rules.partitions._single_partition_file_rules.partitioner", + "pants.core.util_rules.partitions._single_partition_file_rules.partitioner", + "pants.core.util_rules.partitions._single_partition_file_rules.partitioner", "pants.engine.internals.graph.generate_file_targets" ] }, @@ -48434,6 +56013,10 @@ "pants.core.util_rules.partitions._single_partition_file_rules.partitioner", "pants.core.util_rules.partitions._single_partition_file_rules.partitioner", "pants.core.util_rules.partitions._single_partition_file_rules.partitioner", + "pants.core.util_rules.partitions._single_partition_file_rules.partitioner", + "pants.core.util_rules.partitions._single_partition_file_rules.partitioner", + "pants.core.util_rules.partitions._single_partition_file_rules.partitioner", + "pants.core.util_rules.partitions._single_partition_file_rules.partitioner", "pants.engine.internals.graph.generate_file_targets" ] }, @@ -48531,8 +56114,13 @@ }, "pants.engine.target.Targets": { "consumed_by_rules": [ + "pants.backend.go.goals.debug_goals.go_export_cgo_codegen", + "pants.backend.go.goals.debug_goals.go_show_package_analysis", "pants.backend.go.goals.generate.go_generate", - "pants.backend.python.goals.debug_goals.dump_python_source_analysis" + "pants.backend.java.goals.debug_goals.dump_java_source_analysis", + "pants.backend.kotlin.goals.debug_goals.dump_kotlin_source_analysis", + "pants.backend.python.goals.debug_goals.dump_python_source_analysis", + "pants.backend.scala.goals.debug_goals.dump_scala_source_analysis" ], "dependencies": [ "pants.bsp.util_rules.targets", @@ -48544,14 +56132,19 @@ "pants.backend.docker", "pants.backend.experimental.adhoc", "pants.backend.experimental.go", + "pants.backend.experimental.go.debug_goals", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.java.debug_goals", + "pants.backend.experimental.javascript", "pants.backend.experimental.kotlin", + "pants.backend.experimental.kotlin.debug_goals", "pants.backend.experimental.openapi", - "pants.backend.experimental.openapi.lint.spectral", "pants.backend.experimental.python", + "pants.backend.experimental.python.framework.django", "pants.backend.experimental.python.packaging.pyoxidizer", "pants.backend.experimental.scala", + "pants.backend.experimental.scala.debug_goals", "pants.backend.experimental.terraform", "pants.backend.project_info", "pants.backend.python", @@ -48599,6 +56192,7 @@ "pants.backend.python.dependency_inference.rules.find_other_owners_for_unowned_import", "pants.backend.python.dependency_inference.rules.infer_python_conftest_dependencies", "pants.backend.python.dependency_inference.rules.infer_python_init_dependencies", + "pants.backend.python.framework.django.detect_apps.detect_django_apps", "pants.backend.python.packaging.pyoxidizer.rules.package_pyoxidizer_binary", "pants.backend.python.target_types_rules.resolve_python_distribution_entry_points", "pants.backend.python.util_rules.package_dists.get_exporting_owner", @@ -48650,8 +56244,12 @@ "pants.backend.experimental.codegen.protobuf.go", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.scrooge.java", + "pants.backend.experimental.go.lint.golangci_lint", "pants.backend.experimental.helm", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.openapi.lint.spectral", "pants.backend.experimental.scala", "pants.backend.project_info", @@ -48679,10 +56277,14 @@ "pants.backend.codegen.protobuf.python.rules.generate_python_from_protobuf", "pants.backend.codegen.protobuf.scala.rules.generate_scala_from_protobuf", "pants.backend.codegen.thrift.apache.rules.generate_apache_thrift_sources", + "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_thrift_sources", "pants.backend.docker.util_rules.docker_build_context.create_docker_build_context", + "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint", "pants.backend.helm.test.unittest.setup_helm_unittest", + "pants.backend.javascript.goals.test.run_javascript_tests", "pants.backend.javascript.install_node_package.add_sources_to_installed_node_package", "pants.backend.javascript.install_node_package.install_node_packages_for_address", + "pants.backend.openapi.codegen.java.rules.generate_java_from_openapi", "pants.backend.openapi.lint.spectral.rules.run_spectral", "pants.backend.project_info.dependencies.dependencies", "pants.backend.project_info.filedeps.file_deps", @@ -48738,10 +56340,14 @@ "pants.backend.codegen.protobuf.python.rules.generate_python_from_protobuf", "pants.backend.codegen.protobuf.scala.rules.generate_scala_from_protobuf", "pants.backend.codegen.thrift.apache.rules.generate_apache_thrift_sources", + "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_thrift_sources", "pants.backend.docker.util_rules.docker_build_context.create_docker_build_context", + "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint", "pants.backend.helm.test.unittest.setup_helm_unittest", + "pants.backend.javascript.goals.test.run_javascript_tests", "pants.backend.javascript.install_node_package.add_sources_to_installed_node_package", "pants.backend.javascript.install_node_package.install_node_packages_for_address", + "pants.backend.openapi.codegen.java.rules.generate_java_from_openapi", "pants.backend.openapi.lint.spectral.rules.run_spectral", "pants.backend.project_info.dependencies.dependencies", "pants.backend.project_info.filedeps.file_deps", @@ -48779,6 +56385,7 @@ }, "pants.engine.target.UnexpandedTargets": { "consumed_by_rules": [ + "pants.backend.go.goals.debug_goals.dump_go_import_paths_for_module", "pants.backend.project_info.peek.get_target_data", "pants.backend.project_info.peek.peek", "pants.engine.internals.graph.resolve_targets" @@ -48786,6 +56393,7 @@ "dependencies": ["pants.engine.addresses"], "dependents": [ "pants.backend.experimental.go", + "pants.backend.experimental.go.debug_goals", "pants.backend.project_info", "pants.backend.python", "pants.core" @@ -48817,28 +56425,40 @@ "pants.engine.target.ValidateDependenciesRequest": { "consumed_by_rules": [], "dependencies": [], - "dependents": ["pants.backend.python"], + "dependents": [ + "pants.backend.experimental.visibility", + "pants.backend.python" + ], "documentation": "A request to validate dependencies after they have been computed.\n\nAn implementing rule should raise an exception if dependencies are invalid.", "is_union": true, "module": "pants.engine.target", "name": "ValidateDependenciesRequest", "provider": "pants.engine.target", "returned_by_rules": [], - "union_members": ["PythonValidateDependenciesRequest"], + "union_members": [ + "PythonValidateDependenciesRequest", + "VisibilityValidateDependenciesRequest" + ], "union_type": null, "used_in_rules": ["pants.engine.internals.graph.resolve_dependencies"] }, "pants.engine.target.ValidatedDependencies": { "consumed_by_rules": [], - "dependencies": ["pants.backend.experimental.go", "pants.core"], + "dependencies": [ + "pants.backend.experimental.go", + "pants.core", + "pants.engine.goal", + "pants.engine.target" + ], "dependents": ["pants.backend.experimental.go"], "documentation": "ValidatedDependencies()", "is_union": false, "module": "pants.engine.target", "name": "ValidatedDependencies", - "provider": "pants.backend.python", + "provider": "pants.backend.experimental.visibility, pants.backend.python", "returned_by_rules": [ - "pants.backend.python.target_types_rules.validate_python_dependencies" + "pants.backend.python.target_types_rules.validate_python_dependencies", + "pants.backend.visibility.rules.visibility_validate_dependencies" ], "union_members": [], "union_type": null, @@ -48849,10 +56469,11 @@ "dependencies": ["pants.engine.environment", "pants.engine.target"], "dependents": [ "pants.backend.docker", + "pants.backend.experimental.codegen.thrift.scrooge.java", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java", - "pants.backend.experimental.openapi.lint.spectral", + "pants.backend.experimental.javascript", "pants.backend.experimental.scala", "pants.backend.experimental.terraform", "pants.backend.python", @@ -48867,6 +56488,7 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_thrift_sources", "pants.backend.docker.goals.package_image.build_docker_image", "pants.backend.docker.goals.run_image.docker_image_run_request", "pants.backend.docker.subsystems.dockerfile_parser.parse_dockerfile", @@ -48912,6 +56534,7 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_thrift_sources", "pants.backend.docker.goals.package_image.build_docker_image", "pants.backend.docker.goals.run_image.docker_image_run_request", "pants.backend.docker.subsystems.dockerfile_parser.parse_dockerfile", @@ -49037,6 +56660,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.scala", + "pants.backend.url_handlers.s3", "pants.core", "pants.jvm.compile" ], @@ -49085,7 +56709,9 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.kotlin", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.scala.compile.scalac", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.fs", "pants.jvm.resolve.coursier_fetch" @@ -49122,6 +56748,7 @@ "dependents": [ "pants.backend.experimental.java", "pants.backend.experimental.kotlin", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.scala" ], "documentation": "A request for a ClasspathEntry for the given CoarsenedTarget and resolve.\n\nTODO: Move to `classpath.py`.", @@ -49137,6 +56764,7 @@ "CoursierFetchRequest", "DeployJarClasspathEntryRequest", "JvmResourcesRequest", + "NoopClasspathEntryRequest", "ScalaArtifactClasspathEntryRequest" ], "union_type": null, @@ -49198,6 +56826,7 @@ "consumed_by_rules": [], "dependencies": [ "pants.backend.experimental.kotlin", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.scala", "pants.jvm.compile" ], @@ -49230,6 +56859,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.python.lint.ruff", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.process", "pants.jvm.bsp.compile", @@ -49245,13 +56875,14 @@ "is_union": false, "module": "pants.jvm.compile", "name": "FallibleClasspathEntry", - "provider": "pants.backend.experimental.java, pants.backend.experimental.kotlin, pants.backend.experimental.scala", + "provider": "pants.backend.experimental.java, pants.backend.experimental.kotlin, pants.backend.experimental.openapi.codegen.java, pants.backend.experimental.scala", "returned_by_rules": [ "pants.backend.java.compile.javac.compile_java_source", "pants.backend.kotlin.compile.kotlinc.compile_kotlin_source", "pants.backend.scala.compile.scalac.compile_scala_source", "pants.backend.scala.resolve.artifact.scala_artifact_classpath", "pants.jvm.bsp.compile.notify_for_classpath_entry", + "pants.jvm.non_jvm_dependencies.noop_classpath_entry", "pants.jvm.package.deploy_jar.deploy_jar_classpath", "pants.jvm.resolve.coursier_fetch.fetch_with_coursier", "pants.jvm.resources.assemble_resources_jar" @@ -49272,20 +56903,30 @@ }, "pants.jvm.dependency_inference.artifact_mapper.AllJvmArtifactTargets": { "consumed_by_rules": [ + "pants.backend.codegen.avro.java.rules.resolve_apache_avro_runtime_for_resolve", "pants.backend.codegen.protobuf.java.dependency_inference.resolve_protobuf_java_grpc_runtime_for_resolve", "pants.backend.codegen.protobuf.java.dependency_inference.resolve_protobuf_java_runtime_for_resolve", "pants.backend.codegen.protobuf.scala.dependency_inference.resolve_scalapb_runtime_for_resolve", + "pants.backend.codegen.thrift.apache.java.rules.resolve_apache_thrift_java_runtime_for_resolve", + "pants.backend.codegen.thrift.scrooge.java.rules.resolve_scrooge_thrift_java_runtime_for_resolve", + "pants.backend.codegen.thrift.scrooge.scala.rules.resolve_scrooge_thrift_scala_runtime_for_resolve", "pants.backend.kotlin.dependency_inference.rules.resolve_kotlin_runtime_for_resolve", "pants.backend.kotlin.test.junit.resolve_kotlin_junit_libraries_for_resolve", + "pants.backend.openapi.codegen.java.rules.infer_openapi_java_dependencies", "pants.backend.scala.dependency_inference.rules.resolve_scala_library_for_resolve", "pants.jvm.dependency_inference.artifact_mapper.find_available_third_party_artifacts" ], "dependencies": ["pants.backend.experimental.go"], "dependents": [ + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.apache.java", + "pants.backend.experimental.codegen.thrift.scrooge.java", + "pants.backend.experimental.codegen.thrift.scrooge.scala", "pants.backend.experimental.java", "pants.backend.experimental.kotlin", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.scala" ], "documentation": null, @@ -49403,7 +57044,8 @@ "consumed_by_rules": [ "pants.backend.java.dependency_inference.rules.infer_java_dependencies_and_exports_via_source_analysis", "pants.backend.kotlin.dependency_inference.rules.infer_kotlin_dependencies_via_source_analysis", - "pants.backend.scala.dependency_inference.rules.infer_scala_dependencies_via_source_analysis" + "pants.backend.scala.dependency_inference.rules.infer_scala_dependencies_via_source_analysis", + "pants.jvm.goals.debug_goals.jvm_symbol_map" ], "dependencies": [ "pants.backend.experimental.kotlin", @@ -49412,6 +57054,7 @@ ], "dependents": [ "pants.backend.experimental.java", + "pants.backend.experimental.java.debug_goals", "pants.backend.experimental.kotlin", "pants.backend.experimental.scala" ], @@ -49427,17 +57070,51 @@ "union_type": null, "used_in_rules": [] }, + "pants.jvm.goals.debug_goals.JvmSymbolMap": { + "consumed_by_rules": [], + "dependencies": [ + "pants.backend.experimental.java", + "pants.engine.console" + ], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.jvm.goals.debug_goals", + "name": "JvmSymbolMap", + "provider": "pants.backend.experimental.java.debug_goals", + "returned_by_rules": ["pants.jvm.goals.debug_goals.jvm_symbol_map"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, + "pants.jvm.goals.debug_goals.JvmSymbolMapSubsystem": { + "consumed_by_rules": [], + "dependencies": ["pants.option.scope"], + "dependents": [], + "documentation": null, + "is_union": false, + "module": "pants.jvm.goals.debug_goals", + "name": "JvmSymbolMapSubsystem", + "provider": "pants.backend.experimental.java.debug_goals", + "returned_by_rules": ["construct_scope_jvm_symbol_map"], + "union_members": [], + "union_type": null, + "used_in_rules": [] + }, "pants.jvm.goals.lockfile.GenerateJvmLockfile": { "consumed_by_rules": [ "pants.jvm.goals.lockfile.generate_jvm_lockfile", "pants.jvm.goals.lockfile.wrap_jvm_lockfile_request" ], "dependencies": [ + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.scrooge.java", "pants.backend.experimental.java.lint.google_java_format", "pants.backend.experimental.kotlin", "pants.backend.experimental.kotlin.lint.ktlint", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.scala", "pants.backend.experimental.scala.lint.scalafmt", "pants.core", @@ -49545,15 +57222,19 @@ "consumed_by_rules": ["pants.jvm.jar_tool.jar_tool.run_jar_tool"], "dependencies": [ "builtins", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.scrooge.java", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java.lint.google_java_format", "pants.backend.experimental.kotlin", "pants.backend.experimental.kotlin.lint.ktlint", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.scala", "pants.backend.experimental.scala.lint.scalafmt", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.fs" ], @@ -49603,13 +57284,16 @@ }, "pants.jvm.jdk_rules.InternalJdk": { "consumed_by_rules": [ + "pants.backend.codegen.avro.java.rules.compile_avro_source", "pants.backend.codegen.protobuf.scala.rules.generate_scala_from_protobuf", "pants.backend.codegen.protobuf.scala.rules.setup_scalapb_shim_classfiles", + "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_thrift_sources", "pants.backend.java.dependency_inference.java_parser.analyze_java_source_dependencies", "pants.backend.java.dependency_inference.java_parser.build_processors", "pants.backend.java.lint.google_java_format.rules.google_java_format_fmt", "pants.backend.kotlin.dependency_inference.kotlin_parser.setup_kotlin_parser_classfiles", "pants.backend.kotlin.lint.ktlint.rules.ktlint_fmt", + "pants.backend.openapi.util_rules.generator_process.openapi_generator_process", "pants.backend.scala.dependency_inference.scala_parser.analyze_scala_source_dependencies", "pants.backend.scala.dependency_inference.scala_parser.setup_scala_parser_classfiles", "pants.backend.scala.lint.scalafmt.rules.scalafmt_fmt", @@ -49621,11 +57305,14 @@ ], "dependencies": [], "dependents": [ + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.scrooge.java", "pants.backend.experimental.java", "pants.backend.experimental.java.lint.google_java_format", "pants.backend.experimental.kotlin", "pants.backend.experimental.kotlin.lint.ktlint", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.scala", "pants.backend.experimental.scala.lint.scalafmt" ], @@ -49646,6 +57333,7 @@ "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.python.lint.ruff", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.process", "pants.jvm.jdk_rules" @@ -49716,8 +57404,10 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.codegen.avro.java.rules.compile_avro_source", "pants.backend.codegen.protobuf.scala.rules.generate_scala_from_protobuf", "pants.backend.codegen.protobuf.scala.rules.setup_scalapb_shim_classfiles", + "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_thrift_sources", "pants.backend.java.compile.javac.compile_java_source", "pants.backend.java.dependency_inference.java_parser.analyze_java_source_dependencies", "pants.backend.java.dependency_inference.java_parser.build_processors", @@ -49726,6 +57416,7 @@ "pants.backend.kotlin.dependency_inference.kotlin_parser.analyze_kotlin_source_dependencies", "pants.backend.kotlin.dependency_inference.kotlin_parser.setup_kotlin_parser_classfiles", "pants.backend.kotlin.lint.ktlint.rules.ktlint_fmt", + "pants.backend.openapi.util_rules.generator_process.openapi_generator_process", "pants.backend.scala.compile.scalac.compile_scala_source", "pants.backend.scala.dependency_inference.scala_parser.analyze_scala_source_dependencies", "pants.backend.scala.dependency_inference.scala_parser.setup_scala_parser_classfiles", @@ -49757,6 +57448,22 @@ "union_type": null, "used_in_rules": [] }, + "pants.jvm.non_jvm_dependencies.NoopClasspathEntryRequest": { + "consumed_by_rules": [ + "pants.jvm.non_jvm_dependencies.noop_classpath_entry" + ], + "dependencies": ["pants.jvm.compile"], + "dependents": ["pants.backend.experimental.openapi.codegen.java"], + "documentation": null, + "is_union": false, + "module": "pants.jvm.non_jvm_dependencies", + "name": "NoopClasspathEntryRequest", + "provider": "pants.backend.experimental.openapi.codegen.java", + "returned_by_rules": [], + "union_members": [], + "union_type": "ClasspathEntryRequest", + "used_in_rules": [] + }, "pants.jvm.package.deploy_jar.DeployJarClasspathEntryRequest": { "consumed_by_rules": [ "pants.jvm.package.deploy_jar.deploy_jar_classpath" @@ -49844,6 +57551,7 @@ "builtins", "pants.backend.experimental.go", "pants.backend.experimental.helm", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.addresses", "pants.jvm.package.war" @@ -49865,6 +57573,7 @@ "builtins", "pants.backend.experimental.go", "pants.backend.experimental.helm", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.fs", "pants.jvm.package.war" @@ -49980,6 +57689,7 @@ "builtins", "pants.backend.experimental.go", "pants.backend.experimental.helm", + "pants.backend.url_handlers.s3", "pants.core", "pants.jvm.resolve.common" ], @@ -50007,6 +57717,7 @@ "builtins", "pants.backend.experimental.go", "pants.backend.experimental.helm", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.fs", "pants.jvm.resolve.common", @@ -50064,12 +57775,15 @@ "pants.jvm.resolve.coursier_fetch" ], "dependents": [ + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.scrooge.java", "pants.backend.experimental.java", "pants.backend.experimental.java.lint.google_java_format", "pants.backend.experimental.kotlin", "pants.backend.experimental.kotlin.lint.ktlint", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.scala", "pants.backend.experimental.scala.lint.scalafmt" ], @@ -50084,10 +57798,12 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.codegen.avro.java.rules.compile_avro_source", "pants.backend.codegen.protobuf.java.rules.resolve_protobuf_java_grpc_plugin", "pants.backend.codegen.protobuf.scala.rules.generate_scala_from_protobuf", "pants.backend.codegen.protobuf.scala.rules.materialize_jvm_plugin", "pants.backend.codegen.protobuf.scala.rules.setup_scalapb_shim_classfiles", + "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_thrift_sources", "pants.backend.java.dependency_inference.java_parser.analyze_java_source_dependencies", "pants.backend.java.dependency_inference.java_parser.build_processors", "pants.backend.java.lint.google_java_format.rules.google_java_format_fmt", @@ -50095,6 +57811,7 @@ "pants.backend.kotlin.dependency_inference.kotlin_parser.analyze_kotlin_source_dependencies", "pants.backend.kotlin.dependency_inference.kotlin_parser.setup_kotlin_parser_classfiles", "pants.backend.kotlin.lint.ktlint.rules.ktlint_fmt", + "pants.backend.openapi.util_rules.generator_process.openapi_generator_process", "pants.backend.scala.bsp.rules.bsp_resolve_scala_metadata", "pants.backend.scala.compile.scalac.compile_scala_source", "pants.backend.scala.compile.scalac.fetch_scala_library", @@ -50126,10 +57843,12 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.codegen.avro.java.rules.compile_avro_source", "pants.backend.codegen.protobuf.java.rules.resolve_protobuf_java_grpc_plugin", "pants.backend.codegen.protobuf.scala.rules.generate_scala_from_protobuf", "pants.backend.codegen.protobuf.scala.rules.materialize_jvm_plugin", "pants.backend.codegen.protobuf.scala.rules.setup_scalapb_shim_classfiles", + "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_thrift_sources", "pants.backend.java.dependency_inference.java_parser.analyze_java_source_dependencies", "pants.backend.java.dependency_inference.java_parser.build_processors", "pants.backend.java.lint.google_java_format.rules.google_java_format_fmt", @@ -50137,6 +57856,7 @@ "pants.backend.kotlin.dependency_inference.kotlin_parser.analyze_kotlin_source_dependencies", "pants.backend.kotlin.dependency_inference.kotlin_parser.setup_kotlin_parser_classfiles", "pants.backend.kotlin.lint.ktlint.rules.ktlint_fmt", + "pants.backend.openapi.util_rules.generator_process.openapi_generator_process", "pants.backend.scala.bsp.rules.bsp_resolve_scala_metadata", "pants.backend.scala.compile.scalac.compile_scala_source", "pants.backend.scala.compile.scalac.fetch_scala_library", @@ -50162,8 +57882,9 @@ "builtins", "pants.backend.experimental.go", "pants.backend.experimental.helm", - "pants.core", - "pants.engine.platform" + "pants.backend.experimental.javascript", + "pants.backend.url_handlers.s3", + "pants.core" ], "dependents": ["pants.backend.experimental.java"], "documentation": "The Coursier tool and various utilities, prepared for use via `immutable_input_digests`.", @@ -50214,12 +57935,15 @@ "pants.jvm.resolve.jvm_tool.setup_lockfile_request_from_tool" ], "dependencies": [ + "pants.backend.codegen.avro.java.rules", "pants.backend.codegen.protobuf.java.rules", "pants.backend.codegen.protobuf.scala.rules", + "pants.backend.codegen.thrift.scrooge.rules", "pants.backend.java.dependency_inference.java_parser", "pants.backend.java.lint.google_java_format.rules", "pants.backend.kotlin.dependency_inference.kotlin_parser", "pants.backend.kotlin.lint.ktlint.rules", + "pants.backend.openapi.subsystems.openapi_generator", "pants.backend.scala.dependency_inference.scala_parser", "pants.backend.scala.lint.scalafmt.rules", "pants.backend.scala.test.scalatest", @@ -50229,12 +57953,15 @@ "pants.jvm.test.junit" ], "dependents": [ + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.scrooge.java", "pants.backend.experimental.java", "pants.backend.experimental.java.lint.google_java_format", "pants.backend.experimental.kotlin", "pants.backend.experimental.kotlin.lint.ktlint", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.scala", "pants.backend.experimental.scala.lint.scalafmt" ], @@ -50242,14 +57969,17 @@ "is_union": false, "module": "pants.jvm.resolve.jvm_tool", "name": "GenerateJvmLockfileFromTool", - "provider": "pants.backend.experimental.codegen.protobuf.java, pants.backend.experimental.codegen.protobuf.scala, pants.backend.experimental.java, pants.backend.experimental.java.lint.google_java_format, pants.backend.experimental.kotlin, pants.backend.experimental.kotlin.lint.ktlint, pants.backend.experimental.scala, pants.backend.experimental.scala.lint.scalafmt", + "provider": "pants.backend.experimental.codegen.avro.java, pants.backend.experimental.codegen.protobuf.java, pants.backend.experimental.codegen.protobuf.scala, pants.backend.experimental.codegen.thrift.scrooge.java, pants.backend.experimental.java, pants.backend.experimental.java.lint.google_java_format, pants.backend.experimental.kotlin, pants.backend.experimental.kotlin.lint.ktlint, pants.backend.experimental.openapi.codegen.java, pants.backend.experimental.scala, pants.backend.experimental.scala.lint.scalafmt", "returned_by_rules": [ + "pants.backend.codegen.avro.java.rules.generate_avro_tools_lockfile_request", "pants.backend.codegen.protobuf.java.rules.generate_grpc_java_lockfile_request", "pants.backend.codegen.protobuf.scala.rules.generate_scalapbc_lockfile_request", + "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_lockfile_request", "pants.backend.java.dependency_inference.java_parser.generate_java_parser_lockfile_request", "pants.backend.java.lint.google_java_format.rules.generate_google_java_format_lockfile_request", "pants.backend.kotlin.dependency_inference.kotlin_parser.generate_kotlin_parser_lockfile_request", "pants.backend.kotlin.lint.ktlint.rules.generate_ktlint_lockfile_request", + "pants.backend.openapi.subsystems.openapi_generator.generate_openapi_generator_lockfile_request", "pants.backend.scala.dependency_inference.scala_parser.generate_scala_parser_lockfile_request", "pants.backend.scala.lint.scalafmt.rules.generate_scalafmt_lockfile_request", "pants.backend.scala.test.scalatest.generate_scalatest_lockfile_request", @@ -50261,15 +57991,18 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.codegen.avro.java.rules.compile_avro_source", "pants.backend.codegen.protobuf.java.rules.resolve_protobuf_java_grpc_plugin", "pants.backend.codegen.protobuf.scala.rules.generate_scala_from_protobuf", "pants.backend.codegen.protobuf.scala.rules.setup_scalapb_shim_classfiles", + "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_thrift_sources", "pants.backend.java.dependency_inference.java_parser.analyze_java_source_dependencies", "pants.backend.java.dependency_inference.java_parser.build_processors", "pants.backend.java.lint.google_java_format.rules.google_java_format_fmt", "pants.backend.kotlin.dependency_inference.kotlin_parser.analyze_kotlin_source_dependencies", "pants.backend.kotlin.dependency_inference.kotlin_parser.setup_kotlin_parser_classfiles", "pants.backend.kotlin.lint.ktlint.rules.ktlint_fmt", + "pants.backend.openapi.util_rules.generator_process.openapi_generator_process", "pants.backend.scala.dependency_inference.scala_parser.analyze_scala_source_dependencies", "pants.backend.scala.dependency_inference.scala_parser.setup_scala_parser_classfiles", "pants.backend.scala.lint.scalafmt.rules.partition_scalafmt", @@ -50290,6 +58023,7 @@ "builtins", "pants.backend.experimental.go", "pants.backend.experimental.helm", + "pants.backend.url_handlers.s3", "pants.core", "pants.engine.target" ], @@ -50388,15 +58122,19 @@ "consumed_by_rules": [], "dependencies": [ "builtins", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.scrooge.java", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java.lint.google_java_format", "pants.backend.experimental.kotlin", "pants.backend.experimental.kotlin.lint.ktlint", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.scala", "pants.backend.experimental.scala.lint.scalafmt", + "pants.backend.url_handlers.s3", "pants.core", "pants.jvm.shading.rules" ], @@ -50418,15 +58156,19 @@ "consumed_by_rules": ["pants.jvm.strip_jar.strip_jar.strip_jar"], "dependencies": [ "builtins", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.scrooge.java", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java.lint.google_java_format", "pants.backend.experimental.kotlin", "pants.backend.experimental.kotlin.lint.ktlint", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.scala", "pants.backend.experimental.scala.lint.scalafmt", + "pants.backend.url_handlers.s3", "pants.core" ], "dependents": ["pants.backend.experimental.java"], @@ -50480,11 +58222,19 @@ "pants.jvm.subsystems.JvmSubsystem": { "consumed_by_rules": [ "construct_env_aware_scope_jvm", + "pants.backend.codegen.avro.java.rules.infer_apache_avro_java_dependencies", + "pants.backend.codegen.avro.java.rules.resolve_apache_avro_runtime_for_resolve", "pants.backend.codegen.protobuf.java.dependency_inference.infer_protobuf_java_runtime_dependency", "pants.backend.codegen.protobuf.java.dependency_inference.resolve_protobuf_java_grpc_runtime_for_resolve", "pants.backend.codegen.protobuf.java.dependency_inference.resolve_protobuf_java_runtime_for_resolve", "pants.backend.codegen.protobuf.scala.dependency_inference.infer_scalapb_runtime_dependency", "pants.backend.codegen.protobuf.scala.dependency_inference.resolve_scalapb_runtime_for_resolve", + "pants.backend.codegen.thrift.apache.java.rules.infer_apache_thrift_java_dependencies", + "pants.backend.codegen.thrift.apache.java.rules.resolve_apache_thrift_java_runtime_for_resolve", + "pants.backend.codegen.thrift.scrooge.java.rules.inject_scrooge_thrift_java_dependencies", + "pants.backend.codegen.thrift.scrooge.java.rules.resolve_scrooge_thrift_java_runtime_for_resolve", + "pants.backend.codegen.thrift.scrooge.scala.rules.inject_scrooge_thrift_scala_dependencies", + "pants.backend.codegen.thrift.scrooge.scala.rules.resolve_scrooge_thrift_scala_runtime_for_resolve", "pants.backend.java.compile.javac.compile_java_source", "pants.backend.java.dependency_inference.rules.infer_java_dependencies_and_exports_via_source_analysis", "pants.backend.java.dependency_inference.symbol_mapper.map_first_party_java_targets_to_symbols", @@ -50496,6 +58246,7 @@ "pants.backend.kotlin.dependency_inference.symbol_mapper.map_first_party_kotlin_targets_to_symbols", "pants.backend.kotlin.test.junit.infer_kotlin_junit_dependency", "pants.backend.kotlin.test.junit.resolve_kotlin_junit_libraries_for_resolve", + "pants.backend.openapi.codegen.java.rules.infer_openapi_java_dependencies", "pants.backend.scala.bsp.rules.bsp_resolve_scala_metadata", "pants.backend.scala.compile.scalac.compile_scala_source", "pants.backend.scala.compile.scalac_plugins.add_resolve_name_to_plugin_request", @@ -50524,10 +58275,15 @@ ], "dependencies": ["pants.option.scope"], "dependents": [ + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.apache.java", + "pants.backend.experimental.codegen.thrift.scrooge.java", + "pants.backend.experimental.codegen.thrift.scrooge.scala", "pants.backend.experimental.java", "pants.backend.experimental.kotlin", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.scala" ], "documentation": null, @@ -50601,7 +58357,7 @@ "is_union": false, "module": "pants.jvm.target_types", "name": "PrefixedJvmJdkField", - "provider": "pants.backend.experimental.codegen.protobuf.java", + "provider": "pants.backend.experimental.codegen.avro.java, pants.backend.experimental.codegen.protobuf.java, pants.backend.experimental.codegen.thrift.apache.java, pants.backend.experimental.openapi.codegen.java", "returned_by_rules": [], "union_members": [], "union_type": "PluginField", @@ -50615,7 +58371,7 @@ "is_union": false, "module": "pants.jvm.target_types", "name": "PrefixedJvmResolveField", - "provider": "pants.backend.experimental.codegen.protobuf.java", + "provider": "pants.backend.experimental.codegen.avro.java, pants.backend.experimental.codegen.protobuf.java, pants.backend.experimental.codegen.thrift.apache.java, pants.backend.experimental.openapi.codegen.java", "returned_by_rules": [], "union_members": [], "union_type": "PluginField", @@ -50669,17 +58425,21 @@ "consumed_by_rules": [], "dependencies": [ "builtins", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.scrooge.java", "pants.backend.experimental.go", "pants.backend.experimental.helm", "pants.backend.experimental.java.lint.google_java_format", + "pants.backend.experimental.javascript", "pants.backend.experimental.kotlin", "pants.backend.experimental.kotlin.lint.ktlint", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.experimental.scala", "pants.backend.experimental.scala.lint.scalafmt", + "pants.backend.url_handlers.s3", "pants.core", - "pants.engine.env_vars", "pants.jvm.test.junit" ], "dependents": ["pants.backend.experimental.java"], @@ -50743,6 +58503,8 @@ "pants.core.util_rules.distdir.get_distdir", "pants.engine.internals.graph.extract_subproject_roots", "pants.engine.internals.graph.extract_unmatched_build_file_globs", + "pants.engine.internals.platform_rules.complete_environment_vars", + "pants.engine.internals.platform_rules.current_platform", "pants.jvm.jdk_rules.jvm_process" ], "dependencies": ["pants.option.scope"], @@ -50750,6 +58512,7 @@ "pants.backend.docker", "pants.backend.experimental.go", "pants.backend.experimental.java", + "pants.backend.experimental.javascript", "pants.backend.experimental.python", "pants.backend.python", "pants.backend.python.typecheck.mypy", @@ -50804,15 +58567,21 @@ "construct_scope_anonymous_telemetry", "construct_scope_apache_thrift", "construct_scope_autoflake", + "construct_scope_avro", "construct_scope_bandit", "construct_scope_black", "construct_scope_buf", "construct_scope_build_deprecations_fixer", "construct_scope_buildifier", + "construct_scope_cc", + "construct_scope_cc_external", + "construct_scope_cc_infer", "construct_scope_check", + "construct_scope_clang_format", "construct_scope_count_loc", "construct_scope_coursier", "construct_scope_coverage_py", + "construct_scope_cue", "construct_scope_debug_adapter", "construct_scope_debugpy", "construct_scope_dependencies", @@ -50821,6 +58590,7 @@ "construct_scope_docker", "construct_scope_dockerfile_parser", "construct_scope_download_terraform", + "construct_scope_environments_preview", "construct_scope_experimental_bsp", "construct_scope_experimental_deploy", "construct_scope_export", @@ -50832,10 +58602,15 @@ "construct_scope_fmt", "construct_scope_generate_lockfiles", "construct_scope_generate_snapshots", + "construct_scope_go_dump_import_path_mapping", + "construct_scope_go_export_cgo_codegen", "construct_scope_go_generate", + "construct_scope_go_show_package_analysis", "construct_scope_go_test", + "construct_scope_go_vet", "construct_scope_gofmt", "construct_scope_golang", + "construct_scope_golangci_lint", "construct_scope_google_java_format", "construct_scope_grpc_python_plugin", "construct_scope_hadolint", @@ -50846,14 +58621,20 @@ "construct_scope_ipython", "construct_scope_isort", "construct_scope_jarjar", + "construct_scope_java_avro", + "construct_scope_java_dump_source_analysis", "construct_scope_java_infer", + "construct_scope_java_thrift", "construct_scope_javac", "construct_scope_junit", "construct_scope_jvm", + "construct_scope_jvm_symbol_map", "construct_scope_kotlin", + "construct_scope_kotlin_dump_source_analysis", "construct_scope_kotlin_infer", "construct_scope_kotlinc", "construct_scope_ktlint", + "construct_scope_kubeconform", "construct_scope_lambdex", "construct_scope_lint", "construct_scope_list", @@ -50861,7 +58642,9 @@ "construct_scope_mypy_protobuf", "construct_scope_nodejs", "construct_scope_nodejs_infer", + "construct_scope_nodejs_test", "construct_scope_openapi", + "construct_scope_openapi_generator", "construct_scope_package", "construct_scope_paths", "construct_scope_peek", @@ -50869,13 +58652,16 @@ "construct_scope_pex_binary_defaults", "construct_scope_pex_cli", "construct_scope_preamble", + "construct_scope_prettier", "construct_scope_protobuf_java_grpc", "construct_scope_protoc", "construct_scope_publish", "construct_scope_py_constraints", "construct_scope_pydocstyle", + "construct_scope_pyenv_python_provider", "construct_scope_pylint", "construct_scope_pyoxidizer", + "construct_scope_pyright", "construct_scope_pytest", "construct_scope_python", "construct_scope_python_bootstrap", @@ -50892,13 +58678,17 @@ "construct_scope_roots", "construct_scope_ruff", "construct_scope_run", + "construct_scope_rust", + "construct_scope_rustfmt", "construct_scope_scala", + "construct_scope_scala_dump_source_analysis", "construct_scope_scala_infer", "construct_scope_scalac", "construct_scope_scalafmt", "construct_scope_scalapb", "construct_scope_scalatest", "construct_scope_scc", + "construct_scope_scrooge", "construct_scope_setup_py_generation", "construct_scope_setuptools", "construct_scope_setuptools_scm", @@ -50912,13 +58702,16 @@ "construct_scope_stats", "construct_scope_subprocess_environment", "construct_scope_tailor", + "construct_scope_taplo", "construct_scope_terraform_fmt", "construct_scope_terraform_hcl2_parser", + "construct_scope_terraform_tfsec", "construct_scope_terraform_validate", "construct_scope_test", "construct_scope_thrift", "construct_scope_twine", "construct_scope_update_build_files", + "construct_scope_visibility", "construct_scope_workunit_logger", "construct_scope_yamllint", "construct_scope_yapf" @@ -50999,9 +58792,14 @@ "pants.backend.awslambda.python", "pants.backend.codegen.protobuf.python", "pants.backend.codegen.thrift.apache.python", + "pants.backend.experimental.codegen.avro.java", "pants.backend.experimental.codegen.protobuf.go", "pants.backend.experimental.codegen.protobuf.java", "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.apache.java", + "pants.backend.experimental.codegen.thrift.scrooge.java", + "pants.backend.experimental.codegen.thrift.scrooge.scala", + "pants.backend.experimental.openapi.codegen.java", "pants.backend.python", "pants.core" ], @@ -51014,11 +58812,16 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.codegen.avro.java.rules.generate_java_from_avro", "pants.backend.codegen.protobuf.go.rules.generate_go_from_protobuf", "pants.backend.codegen.protobuf.java.rules.generate_java_from_protobuf", "pants.backend.codegen.protobuf.python.rules.generate_python_from_protobuf", "pants.backend.codegen.protobuf.scala.rules.generate_scala_from_protobuf", + "pants.backend.codegen.thrift.apache.java.rules.generate_java_from_thrift", "pants.backend.codegen.thrift.apache.python.rules.generate_python_from_thrift", + "pants.backend.codegen.thrift.scrooge.java.rules.generate_java_from_thrift_with_scrooge", + "pants.backend.codegen.thrift.scrooge.scala.rules.generate_scala_from_thrift_with_scrooge", + "pants.backend.openapi.codegen.java.rules.generate_java_from_openapi", "pants.backend.python.dependency_inference.rules.resolve_parsed_dependencies", "pants.backend.python.target_types_rules.infer_pex_binary_entry_point_dependency", "pants.backend.python.target_types_rules.resolve_pex_entry_point", @@ -51062,11 +58865,16 @@ "union_members": [], "union_type": null, "used_in_rules": [ + "pants.backend.codegen.avro.java.rules.generate_java_from_avro", "pants.backend.codegen.protobuf.go.rules.generate_go_from_protobuf", "pants.backend.codegen.protobuf.java.rules.generate_java_from_protobuf", "pants.backend.codegen.protobuf.python.rules.generate_python_from_protobuf", "pants.backend.codegen.protobuf.scala.rules.generate_scala_from_protobuf", + "pants.backend.codegen.thrift.apache.java.rules.generate_java_from_thrift", "pants.backend.codegen.thrift.apache.python.rules.generate_python_from_thrift", + "pants.backend.codegen.thrift.scrooge.java.rules.generate_java_from_thrift_with_scrooge", + "pants.backend.codegen.thrift.scrooge.scala.rules.generate_scala_from_thrift_with_scrooge", + "pants.backend.openapi.codegen.java.rules.generate_java_from_openapi", "pants.backend.python.dependency_inference.rules.resolve_parsed_dependencies", "pants.backend.python.target_types_rules.infer_pex_binary_entry_point_dependency", "pants.backend.python.target_types_rules.resolve_pex_entry_point", @@ -51099,6 +58907,7 @@ "used_in_rules": [ "pants.backend.codegen.protobuf.go.rules.setup_full_package_build_request", "pants.backend.codegen.thrift.apache.rules.generate_apache_thrift_sources", + "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_thrift_sources", "pants.backend.python.goals.package_dists.package_python_dist", "pants.backend.python.goals.tailor.find_putative_targets", "pants.backend.python.util_rules.local_dists_pep660.isolate_local_dist_pep660_wheels", @@ -51113,6 +58922,7 @@ "dependents": [ "pants.backend.codegen.thrift.apache.python", "pants.backend.experimental.codegen.protobuf.go", + "pants.backend.experimental.codegen.thrift.scrooge.java", "pants.backend.python", "pants.core" ], @@ -51127,6 +58937,7 @@ "used_in_rules": [ "pants.backend.codegen.protobuf.go.rules.setup_full_package_build_request", "pants.backend.codegen.thrift.apache.rules.generate_apache_thrift_sources", + "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_thrift_sources", "pants.backend.python.goals.package_dists.package_python_dist", "pants.backend.python.goals.tailor.find_putative_targets", "pants.backend.python.util_rules.local_dists_pep660.isolate_local_dist_pep660_wheels", @@ -51236,19 +59047,19 @@ }, "pants.backend.experimental.cc": { "description": "", - "enabled": false, + "enabled": true, "name": "pants.backend.experimental.cc", "provider": "pants" }, "pants.backend.experimental.cc.lint.clangformat": { "description": "A formatter for C/C++ (and several other languages).\n\nSee https://clang.llvm.org/docs/ClangFormat.html for details.", - "enabled": false, + "enabled": true, "name": "pants.backend.experimental.cc.lint.clangformat", "provider": "pants" }, "pants.backend.experimental.codegen.avro.java": { "description": "", - "enabled": false, + "enabled": true, "name": "pants.backend.experimental.codegen.avro.java", "provider": "pants" }, @@ -51272,31 +59083,31 @@ }, "pants.backend.experimental.codegen.thrift.apache.java": { "description": "", - "enabled": false, + "enabled": true, "name": "pants.backend.experimental.codegen.thrift.apache.java", "provider": "pants" }, "pants.backend.experimental.codegen.thrift.scrooge.java": { "description": "", - "enabled": false, + "enabled": true, "name": "pants.backend.experimental.codegen.thrift.scrooge.java", "provider": "pants" }, "pants.backend.experimental.codegen.thrift.scrooge.scala": { "description": "", - "enabled": false, + "enabled": true, "name": "pants.backend.experimental.codegen.thrift.scrooge.scala", "provider": "pants" }, "pants.backend.experimental.cue": { "description": "", - "enabled": false, + "enabled": true, "name": "pants.backend.experimental.cue", "provider": "pants" }, "pants.backend.experimental.debian": { "description": "", - "enabled": false, + "enabled": true, "name": "pants.backend.experimental.debian", "provider": "pants" }, @@ -51308,19 +59119,19 @@ }, "pants.backend.experimental.go.debug_goals": { "description": "", - "enabled": false, + "enabled": true, "name": "pants.backend.experimental.go.debug_goals", "provider": "pants" }, "pants.backend.experimental.go.lint.golangci_lint": { "description": "", - "enabled": false, + "enabled": true, "name": "pants.backend.experimental.go.lint.golangci_lint", "provider": "pants" }, "pants.backend.experimental.go.lint.vet": { "description": "", - "enabled": false, + "enabled": true, "name": "pants.backend.experimental.go.lint.vet", "provider": "pants" }, @@ -51332,7 +59143,7 @@ }, "pants.backend.experimental.helm.check.kubeconform": { "description": "", - "enabled": false, + "enabled": true, "name": "pants.backend.experimental.helm.check.kubeconform", "provider": "pants" }, @@ -51344,7 +59155,7 @@ }, "pants.backend.experimental.java.debug_goals": { "description": "", - "enabled": false, + "enabled": true, "name": "pants.backend.experimental.java.debug_goals", "provider": "pants" }, @@ -51356,13 +59167,13 @@ }, "pants.backend.experimental.javascript": { "description": "", - "enabled": false, + "enabled": true, "name": "pants.backend.experimental.javascript", "provider": "pants" }, "pants.backend.experimental.javascript.lint.prettier": { "description": "A formatter for JS/TS (and several other languages).\n\nSee https://prettier.io/ for details.", - "enabled": false, + "enabled": true, "name": "pants.backend.experimental.javascript.lint.prettier", "provider": "pants" }, @@ -51374,7 +59185,7 @@ }, "pants.backend.experimental.kotlin.debug_goals": { "description": "", - "enabled": false, + "enabled": true, "name": "pants.backend.experimental.kotlin.debug_goals", "provider": "pants" }, @@ -51392,7 +59203,7 @@ }, "pants.backend.experimental.openapi.codegen.java": { "description": "", - "enabled": false, + "enabled": true, "name": "pants.backend.experimental.openapi.codegen.java", "provider": "pants" }, @@ -51410,7 +59221,7 @@ }, "pants.backend.experimental.python.framework.django": { "description": "", - "enabled": false, + "enabled": true, "name": "pants.backend.experimental.python.framework.django", "provider": "pants" }, @@ -51428,13 +59239,13 @@ }, "pants.backend.experimental.python.lint.autoflake": { "description": "", - "enabled": false, + "enabled": true, "name": "pants.backend.experimental.python.lint.autoflake", "provider": "pants" }, "pants.backend.experimental.python.lint.pyupgrade": { "description": "", - "enabled": false, + "enabled": true, "name": "pants.backend.experimental.python.lint.pyupgrade", "provider": "pants" }, @@ -51452,7 +59263,7 @@ }, "pants.backend.experimental.python.typecheck.pyright": { "description": "Static type checker for Python, running on NodeJS.\n\nSee https://github.com/Microsoft/pyright for details.", - "enabled": false, + "enabled": true, "name": "pants.backend.experimental.python.typecheck.pyright", "provider": "pants" }, @@ -51464,7 +59275,7 @@ }, "pants.backend.experimental.rust": { "description": "", - "enabled": false, + "enabled": true, "name": "pants.backend.experimental.rust", "provider": "pants" }, @@ -51476,7 +59287,7 @@ }, "pants.backend.experimental.scala.debug_goals": { "description": "", - "enabled": false, + "enabled": true, "name": "pants.backend.experimental.scala.debug_goals", "provider": "pants" }, @@ -51488,7 +59299,7 @@ }, "pants.backend.experimental.swift": { "description": "", - "enabled": false, + "enabled": true, "name": "pants.backend.experimental.swift", "provider": "pants" }, @@ -51500,7 +59311,7 @@ }, "pants.backend.experimental.terraform.lint.tfsec": { "description": "", - "enabled": false, + "enabled": true, "name": "pants.backend.experimental.terraform.lint.tfsec", "provider": "pants" }, @@ -51518,7 +59329,7 @@ }, "pants.backend.experimental.visibility": { "description": "", - "enabled": false, + "enabled": true, "name": "pants.backend.experimental.visibility", "provider": "pants" }, @@ -51614,13 +59425,13 @@ }, "pants.backend.python.providers.experimental.pyenv": { "description": "", - "enabled": false, + "enabled": true, "name": "pants.backend.python.providers.experimental.pyenv", "provider": "pants" }, "pants.backend.python.providers.experimental.pyenv.custom_install": { "description": "", - "enabled": false, + "enabled": true, "name": "pants.backend.python.providers.experimental.pyenv.custom_install", "provider": "pants" }, @@ -51656,13 +59467,13 @@ }, "pants.backend.tools.taplo": { "description": "", - "enabled": false, + "enabled": true, "name": "pants.backend.tools.taplo", "provider": "pants" }, "pants.backend.url_handlers.s3": { "description": "", - "enabled": false, + "enabled": true, "name": "pants.backend.url_handlers.s3", "provider": "pants" }, @@ -51716,6 +59527,12 @@ "name": "_lockfiles", "signature": "(**kwargs: 'Any') -> 'TargetAdaptor'" }, + "_pyenv_install": { + "documentation": null, + "is_target": true, + "name": "_pyenv_install", + "signature": "(**kwargs: 'Any') -> 'TargetAdaptor'" + }, "adhoc_tool": { "documentation": null, "is_target": true, @@ -51728,12 +59545,48 @@ "name": "archive", "signature": "(**kwargs: 'Any') -> 'TargetAdaptor'" }, + "avro_source": { + "documentation": null, + "is_target": true, + "name": "avro_source", + "signature": "(**kwargs: 'Any') -> 'TargetAdaptor'" + }, + "avro_sources": { + "documentation": null, + "is_target": true, + "name": "avro_sources", + "signature": "(**kwargs: 'Any') -> 'TargetAdaptor'" + }, "build_file_dir": { "documentation": "Returns the path to the directory of the current BUILD file.\n\nThe returned value is an instance of `PurePath` to make path name manipulations easy.\n\nSee: https://docs.python.org/3/library/pathlib.html#pathlib.PurePath", "is_target": false, "name": "build_file_dir", "signature": "() -> 'PurePath'" }, + "cc_source": { + "documentation": null, + "is_target": true, + "name": "cc_source", + "signature": "(**kwargs: 'Any') -> 'TargetAdaptor'" + }, + "cc_sources": { + "documentation": null, + "is_target": true, + "name": "cc_sources", + "signature": "(**kwargs: 'Any') -> 'TargetAdaptor'" + }, + "cue_package": { + "documentation": null, + "is_target": true, + "name": "cue_package", + "signature": "(**kwargs: 'Any') -> 'TargetAdaptor'" + }, + "debian_package": { + "documentation": null, + "is_target": true, + "name": "debian_package", + "signature": "(**kwargs: 'Any') -> 'TargetAdaptor'" + }, "deploy_jar": { "documentation": null, "is_target": true, @@ -51890,6 +59743,30 @@ "name": "java_sources", "signature": "(**kwargs: 'Any') -> 'TargetAdaptor'" }, + "javascript_source": { + "documentation": null, + "is_target": true, + "name": "javascript_source", + "signature": "(**kwargs: 'Any') -> 'TargetAdaptor'" + }, + "javascript_sources": { + "documentation": null, + "is_target": true, + "name": "javascript_sources", + "signature": "(**kwargs: 'Any') -> 'TargetAdaptor'" + }, + "javascript_test": { + "documentation": null, + "is_target": true, + "name": "javascript_test", + "signature": "(**kwargs: 'Any') -> 'TargetAdaptor'" + }, + "javascript_tests": { + "documentation": null, + "is_target": true, + "name": "javascript_tests", + "signature": "(**kwargs: 'Any') -> 'TargetAdaptor'" + }, "junit_test": { "documentation": null, "is_target": true, @@ -51956,6 +59833,30 @@ "name": "local_environment", "signature": "(**kwargs: 'Any') -> 'TargetAdaptor'" }, + "node_build_script": { + "documentation": "A build script, mapped from the `scripts` section of a package.json file.\n\nEither the `output_directories` or the `output_files` argument has to be set to capture the\noutput artifacts of the build.", + "is_target": false, + "name": "node_build_script", + "signature": "(entry_point: 'str', output_directories: 'Iterable[str]' = (), output_files: 'Iterable[str]' = (), extra_caches: 'Iterable[str]' = (), extra_env_vars: 'Iterable[str]' = ()) -> 'NodeBuildScript'" + }, + "node_package": { + "documentation": null, + "is_target": true, + "name": "node_package", + "signature": "(**kwargs: 'Any') -> 'TargetAdaptor'" + }, + "node_test_script": { + "documentation": "The test script for this package, mapped from the `scripts` section of a package.json\nfile. The pointed to script should accept a variadic number of ([ARG]...) path arguments.\n\nThis entry point is the \"test\" script, by default.", + "is_target": false, + "name": "node_test_script", + "signature": "(entry_point: 'str' = 'test', report_args: 'Iterable[str]' = (), report_output_files: 'Iterable[str]' = (), report_output_directories: 'Iterable[str]' = (), coverage_args: 'Iterable[str]' = (), coverage_output_files: 'Iterable[str]' = (), coverage_output_directories: 'Iterable[str]' = (), coverage_entry_point: 'str | None' = None) -> 'NodeTestScript'" + }, + "node_third_party_package": { + "documentation": null, + "is_target": true, + "name": "node_third_party_package", + "signature": "(**kwargs: 'Any') -> 'TargetAdaptor'" + }, "openapi_document": { "documentation": null, "is_target": true, @@ -51980,6 +59881,12 @@ "name": "openapi_sources", "signature": "(**kwargs: 'Any') -> 'TargetAdaptor'" }, + "package_json": { + "documentation": null, + "is_target": true, + "name": "package_json", + "signature": "(**kwargs: 'Any') -> 'TargetAdaptor'" + }, "pants_requirements": { "documentation": null, "is_target": true, @@ -52148,6 +60055,12 @@ "name": "run_shell_command", "signature": "(**kwargs: 'Any') -> 'TargetAdaptor'" }, + "rust_package": { + "documentation": null, + "is_target": true, + "name": "rust_package", + "signature": "(**kwargs: 'Any') -> 'TargetAdaptor'" + }, "scala_artifact": { "documentation": null, "is_target": true, @@ -52268,6 +60181,18 @@ "name": "stevedore_namespace", "signature": null }, + "swift_source": { + "documentation": null, + "is_target": true, + "name": "swift_source", + "signature": "(**kwargs: 'Any') -> 'TargetAdaptor'" + }, + "swift_sources": { + "documentation": null, + "is_target": true, + "name": "swift_sources", + "signature": "(**kwargs: 'Any') -> 'TargetAdaptor'" + }, "system_binary": { "documentation": null, "is_target": true, @@ -52428,6 +60353,26 @@ "name": "generate-snapshots", "provider": "pants.core" }, + "go-dump-import-path-mapping": { + "consumed_scopes": ["", "environments-preview", "filter"], + "description": "Dump import paths mapped to package addresses.", + "is_implemented": true, + "name": "go-dump-import-path-mapping", + "provider": "pants.backend.experimental.go.debug_goals" + }, + "go-export-cgo-codegen": { + "consumed_scopes": [ + "", + "environments-preview", + "filter", + "go-test", + "golang" + ], + "description": "Export files generated by Cgo.", + "is_implemented": true, + "name": "go-export-cgo-codegen", + "provider": "pants.backend.experimental.go.debug_goals" + }, "go-generate": { "consumed_scopes": [ "", @@ -52442,6 +60387,19 @@ "name": "go-generate", "provider": "pants.backend.experimental.go" }, + "go-show-package-analysis": { + "consumed_scopes": [ + "", + "environments-preview", + "filter", + "go-test", + "golang" + ], + "description": "Show the package analysis for Go package targets.", + "is_implemented": true, + "name": "go-show-package-analysis", + "provider": "pants.backend.experimental.go.debug_goals" + }, "help": { "consumed_scopes": [], "description": "Display usage message.", @@ -52463,6 +60421,47 @@ "name": "help-all", "provider": "pants.goal" }, + "java-dump-source-analysis": { + "consumed_scopes": [ + "", + "coursier", + "environments-preview", + "filter", + "jvm", + "python-bootstrap" + ], + "description": "Dump source analysis for java_source[s] targets.", + "is_implemented": true, + "name": "java-dump-source-analysis", + "provider": "pants.backend.experimental.java.debug_goals" + }, + "jvm-symbol-map": { + "consumed_scopes": [ + "", + "environments-preview", + "filter", + "java-infer", + "jvm" + ], + "description": "Dump the JVM dependency inference symbol mapping.", + "is_implemented": true, + "name": "jvm-symbol-map", + "provider": "pants.backend.experimental.java.debug_goals" + }, + "kotlin-dump-source-analysis": { + "consumed_scopes": [ + "", + "coursier", + "environments-preview", + "filter", + "jvm", + "python-bootstrap" + ], + "description": "Dump source analysis for kotlin_source targets.", + "is_implemented": true, + "name": "kotlin-dump-source-analysis", + "provider": "pants.backend.experimental.kotlin.debug_goals" + }, "lint": { "consumed_scopes": ["", "environments-preview", "filter", "lint"], "description": "Run linters/formatters/fixers in check mode.", @@ -52565,6 +60564,22 @@ "name": "run", "provider": "pants.core" }, + "scala-dump-source-analysis": { + "consumed_scopes": [ + "", + "coursier", + "environments-preview", + "filter", + "jvm", + "python-bootstrap", + "scala", + "scalac" + ], + "description": "Dump source analysis for scala_source targets.", + "is_implemented": true, + "name": "scala-dump-source-analysis", + "provider": "pants.backend.experimental.scala.debug_goals" + }, "tailor": { "consumed_scopes": ["", "environments-preview", "filter", "tailor"], "description": "Auto-generate BUILD file targets for new source files.\n\nEach specific `tailor` implementation may be disabled through language-specific options, e.g. `[python].tailor_pex_binary_targets` and `[shell-setup].tailor`.", @@ -52658,7 +60673,7 @@ "input_types": ["NodeJS", "EnvironmentTarget"], "name": "construct_env_aware_scope_nodejs", "output_type": "EnvironmentAware", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "construct_env_aware_scope_pex": { "description": null, @@ -52669,6 +60684,15 @@ "output_type": "EnvironmentAware", "provider": "pants.core" }, + "construct_env_aware_scope_pyenv_python_provider": { + "description": null, + "documentation": null, + "input_gets": ["Get(EnvironmentVars, EnvironmentVarsRequest, ..)"], + "input_types": ["PyenvPythonProviderSubsystem", "EnvironmentTarget"], + "name": "construct_env_aware_scope_pyenv_python_provider", + "output_type": "EnvironmentAware", + "provider": "pants.backend.python.providers.experimental.pyenv" + }, "construct_env_aware_scope_python_bootstrap": { "description": null, "documentation": null, @@ -52759,6 +60783,15 @@ "output_type": "Autoflake", "provider": "pants.backend.python.lint.autoflake" }, + "construct_scope_avro": { + "description": null, + "documentation": "General Avro codegen settings.", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_avro", + "output_type": "AvroSubsystem", + "provider": "pants.backend.experimental.codegen.avro.java" + }, "construct_scope_bandit": { "description": null, "documentation": "A tool for finding security issues in Python code (https://bandit.readthedocs.io).", @@ -52804,6 +60837,33 @@ "output_type": "Buildifier", "provider": "pants.backend.build_files.fmt.buildifier" }, + "construct_scope_cc": { + "description": null, + "documentation": "Options for a system-discovered `cc` toolchain.", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_cc", + "output_type": "CCSubsystem", + "provider": "pants.backend.experimental.cc" + }, + "construct_scope_cc_external": { + "description": null, + "documentation": "Options for downloaded `cc` toolchain.", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_cc_external", + "output_type": "ExternalCCSubsystem", + "provider": "pants.backend.experimental.cc" + }, + "construct_scope_cc_infer": { + "description": null, + "documentation": "Options controlling which dependencies will be inferred for CC targets.", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_cc_infer", + "output_type": "CCInferSubsystem", + "provider": "pants.backend.experimental.cc" + }, "construct_scope_check": { "description": null, "documentation": "Run type checking or the lightest variant of compilation available for a language.", @@ -52813,6 +60873,15 @@ "output_type": "CheckSubsystem", "provider": "pants.core" }, + "construct_scope_clang_format": { + "description": null, + "documentation": "The clang-format utility for formatting C/C++ (and others) code (https://clang.llvm.org/docs/ClangFormat.html). The clang-format binaries are retrieved from PyPi (https://pypi.org/project/clang-format/).", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_clang_format", + "output_type": "ClangFormat", + "provider": "pants.backend.experimental.cc.lint.clangformat" + }, "construct_scope_count_loc": { "description": null, "documentation": "Count lines of code.", @@ -52840,6 +60909,15 @@ "output_type": "CoverageSubsystem", "provider": "pants.backend.python" }, + "construct_scope_cue": { + "description": null, + "documentation": "CUE is an open-source data validation language and inference engine with its roots in logic programming. Although the language is not a general-purpose programming language, it has many applications, such as data validation, data templating, configuration, querying, code generation and even scripting. The inference engine can be used to validate data in code or to include it as part of a code generation pipeline.\n\nHomepage: https://cuelang.org/", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_cue", + "output_type": "Cue", + "provider": "pants.backend.experimental.cue" + }, "construct_scope_debug_adapter": { "description": null, "documentation": "Options used to configure and launch a Debug Adapter server.\n\nSee https://microsoft.github.io/debug-adapter-protocol/ for more information.", @@ -52912,6 +60990,15 @@ "output_type": "TerraformTool", "provider": "pants.backend.experimental.terraform" }, + "construct_scope_environments_preview": { + "description": null, + "documentation": "A highly experimental subsystem to allow setting environment variables and executable search paths for different environments, e.g. macOS vs. Linux.", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_environments_preview", + "output_type": "EnvironmentsSubsystem", + "provider": "pants.backend.experimental.javascript" + }, "construct_scope_experimental_bsp": { "description": null, "documentation": "Setup repository for Build Server Protocol (https://build-server-protocol.github.io/).", @@ -53011,6 +61098,24 @@ "output_type": "GenerateSnapshotsSubsystem", "provider": "pants.core" }, + "construct_scope_go_dump_import_path_mapping": { + "description": null, + "documentation": "Dump import paths mapped to package addresses.", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_go_dump_import_path_mapping", + "output_type": "DumpGoImportPathsForModuleSubsystem", + "provider": "pants.backend.experimental.go.debug_goals" + }, + "construct_scope_go_export_cgo_codegen": { + "description": null, + "documentation": "Export files generated by Cgo.", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_go_export_cgo_codegen", + "output_type": "GoExportCgoCodegenSubsystem", + "provider": "pants.backend.experimental.go.debug_goals" + }, "construct_scope_go_generate": { "description": null, "documentation": "Run each command in a package described by a `//go:generate` directive. This is equivalent to running `go generate` on a Go package.\n\nNote: Just like with `go generate`, the `go-generate` goal is never run as part of the build and must be run manually to invoke the commands described by the `//go:generate` directives.\n\nSee https://go.dev/blog/generate for details.", @@ -53020,6 +61125,15 @@ "output_type": "GoGenerateGoalSubsystem", "provider": "pants.backend.experimental.go" }, + "construct_scope_go_show_package_analysis": { + "description": null, + "documentation": "Show the package analysis for Go package targets.", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_go_show_package_analysis", + "output_type": "ShowGoPackageAnalysisSubsystem", + "provider": "pants.backend.experimental.go.debug_goals" + }, "construct_scope_go_test": { "description": null, "documentation": "Options for Go tests.", @@ -53029,6 +61143,15 @@ "output_type": "GoTestSubsystem", "provider": "pants.backend.experimental.go" }, + "construct_scope_go_vet": { + "description": null, + "documentation": "`go vet`-specific options.", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_go_vet", + "output_type": "GoVetSubsystem", + "provider": "pants.backend.experimental.go.lint.vet" + }, "construct_scope_gofmt": { "description": null, "documentation": "Gofmt-specific options.", @@ -53047,6 +61170,15 @@ "output_type": "GolangSubsystem", "provider": "pants.backend.experimental.go" }, + "construct_scope_golangci_lint": { + "description": null, + "documentation": "A fast Go linters runner", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_golangci_lint", + "output_type": "GolangciLint", + "provider": "pants.backend.experimental.go.lint.golangci_lint" + }, "construct_scope_google_java_format": { "description": null, "documentation": "Google Java Format (https://github.com/google/google-java-format)", @@ -53137,6 +61269,24 @@ "output_type": "JarJar", "provider": "pants.backend.experimental.java" }, + "construct_scope_java_avro": { + "description": null, + "documentation": "Avro IDL compiler (https://avro.apache.org/).", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_java_avro", + "output_type": "AvroSubsystem", + "provider": "pants.backend.experimental.codegen.avro.java" + }, + "construct_scope_java_dump_source_analysis": { + "description": null, + "documentation": "Dump source analysis for java_source[s] targets.", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_java_dump_source_analysis", + "output_type": "DumpJavaSourceAnalysisSubsystem", + "provider": "pants.backend.experimental.java.debug_goals" + }, "construct_scope_java_infer": { "description": null, "documentation": "Options controlling which dependencies will be inferred for Java targets.", @@ -53146,6 +61296,15 @@ "output_type": "JavaInferSubsystem", "provider": "pants.backend.experimental.java" }, + "construct_scope_java_thrift": { + "description": null, + "documentation": "Options specific to generating Java from Thrift using the Apache Thrift generator", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_java_thrift", + "output_type": "ApacheThriftJavaSubsystem", + "provider": "pants.backend.experimental.codegen.thrift.apache.java" + }, "construct_scope_javac": { "description": null, "documentation": "The javac Java source compiler.", @@ -53173,6 +61332,15 @@ "output_type": "JvmSubsystem", "provider": "pants.backend.experimental.java" }, + "construct_scope_jvm_symbol_map": { + "description": null, + "documentation": "Dump the JVM dependency inference symbol mapping.", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_jvm_symbol_map", + "output_type": "JvmSymbolMapSubsystem", + "provider": "pants.backend.experimental.java.debug_goals" + }, "construct_scope_kotlin": { "description": null, "documentation": "The Kotlin programming language (https://kotlinlang.org/).", @@ -53182,6 +61350,15 @@ "output_type": "KotlinSubsystem", "provider": "pants.backend.experimental.kotlin" }, + "construct_scope_kotlin_dump_source_analysis": { + "description": null, + "documentation": "Dump source analysis for kotlin_source targets.", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_kotlin_dump_source_analysis", + "output_type": "DumpKotlinSourceAnalysisSubsystem", + "provider": "pants.backend.experimental.kotlin.debug_goals" + }, "construct_scope_kotlin_infer": { "description": null, "documentation": "Options controlling which dependencies will be inferred for Kotlin targets.", @@ -53209,6 +61386,15 @@ "output_type": "KtlintSubsystem", "provider": "pants.backend.experimental.kotlin.lint.ktlint" }, + "construct_scope_kubeconform": { + "description": null, + "documentation": "Kubeconform tool (https://github.com/yannh/kubeconform)", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_kubeconform", + "output_type": "KubeconformSubsystem", + "provider": "pants.backend.experimental.helm.check.kubeconform" + }, "construct_scope_lambdex": { "description": null, "documentation": "A tool for turning .pex files into Function-as-a-Service artifacts (https://github.com/pantsbuild/lambdex).", @@ -53261,7 +61447,7 @@ "input_types": [], "name": "construct_scope_nodejs", "output_type": "NodeJS", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "construct_scope_nodejs_infer": { "description": null, @@ -53270,7 +61456,16 @@ "input_types": [], "name": "construct_scope_nodejs_infer", "output_type": "NodeJSInfer", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" + }, + "construct_scope_nodejs_test": { + "description": null, + "documentation": "Options for package.json script configured tests.\n\nYour preferred test runner is configured via the `package.json#scripts.test` field.\n\nThe only expectation from pants is that the `test` script can accept a variadic number of path arguments, relative to the package.json, and that any configuration files are `file` dependencies to the `package_json`.\n\nSimple example:\n\nConsider a directory-layout:\n\n\u251c\u2500\u2500 BUILD\n\u251c\u2500\u2500 src/\n\u2502 \u251c\u2500\u2500 BUILD\n\u2502 \u251c\u2500\u2500 test/\n\u2502 \u2502 \u251c\u2500\u2500 BUILD\n\u2502 \u2502 \u2514\u2500\u2500 index.test.js\n\u2502 \u2514\u2500\u2500 index.js\n\u2514\u2500\u2500 package.json\n\nwhere package.json contains\n\n# package.json\n{\n ...\n \"scripts\": {\n \"test\": \"mocha\"\n },\n \"devDependencies: {\n ...\n }\n}\n\n\nExecuting `pants test src/test/index.test.js` will cause the equivalent of `mocha src/test/index.test.js` to run.", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_nodejs_test", + "output_type": "NodeJSTest", + "provider": "pants.backend.experimental.javascript" }, "construct_scope_openapi": { "description": null, @@ -53281,6 +61476,15 @@ "output_type": "OpenApiSubsystem", "provider": "pants.backend.experimental.openapi" }, + "construct_scope_openapi_generator": { + "description": null, + "documentation": "The OpenAPI Code generator (https://openapi-generator.tech)", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_openapi_generator", + "output_type": "OpenAPIGenerator", + "provider": "pants.backend.experimental.openapi.codegen.java" + }, "construct_scope_package": { "description": null, "documentation": "Create a distributable package.", @@ -53344,6 +61548,15 @@ "output_type": "PreambleSubsystem", "provider": "pants.backend.tools.preamble" }, + "construct_scope_prettier": { + "description": null, + "documentation": "The Prettier utility for formatting JS/TS (and others) code (https://prettier.io/).", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_prettier", + "output_type": "Prettier", + "provider": "pants.backend.experimental.javascript.lint.prettier" + }, "construct_scope_protobuf_java_grpc": { "description": null, "documentation": "gRPC support for Java Protobuf (https://github.com/grpc/grpc-java)", @@ -53389,6 +61602,15 @@ "output_type": "Pydocstyle", "provider": "pants.backend.python.lint.pydocstyle" }, + "construct_scope_pyenv_python_provider": { + "description": null, + "documentation": "A subsystem for Pants-provided Python leveraging pyenv (https://github.com/pyenv/pyenv).\n\nEnabling this subsystem will switch Pants from trying to find an appropriate Python on your system to using pyenv to install the correct Python(s).\n\nThe Pythons provided by Pyenv will be used to run any \"user\" code (your Python code as well as any Python-based tools you use, like black or pylint). The Pythons are also read-only to ensure they remain hermetic across runs of different tools and code.\n\nThe Pythons themselves are stored in your `named_caches_dir`: https://www.pantsbuild.org/docs/reference-global#named_caches_dir under `pyenv/versions/`. Wiping the relevant version directory (with `sudo rm -rf`) will force a re-install of Python. This may be necessary after changing something about the underlying system which changes the compiled Python, such as installing an optional-at-build-time dependency like `liblzma-dev` (which is used for the optional module `lzma`).\n\nBy default, the subsystem does not pass any optimization flags to the Python compilation process. Doing so would increase the time it takes to install a single Python by about an order of magnitude (E.g. ~2.5 minutes to ~26 minutes).", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_pyenv_python_provider", + "output_type": "PyenvPythonProviderSubsystem", + "provider": "pants.backend.python.providers.experimental.pyenv" + }, "construct_scope_pylint": { "description": null, "documentation": "The Pylint linter for Python code (https://www.pylint.org/).", @@ -53407,6 +61629,15 @@ "output_type": "PyOxidizer", "provider": "pants.backend.experimental.python.packaging.pyoxidizer" }, + "construct_scope_pyright": { + "description": null, + "documentation": "The Pyright utility for typechecking Python code (https://github.com/microsoft/pyright).", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_pyright", + "output_type": "Pyright", + "provider": "pants.backend.experimental.python.typecheck.pyright" + }, "construct_scope_pytest": { "description": null, "documentation": "The pytest Python test framework (https://docs.pytest.org/).", @@ -53551,6 +61782,24 @@ "output_type": "RunSubsystem", "provider": "pants.core" }, + "construct_scope_rust": { + "description": null, + "documentation": "Options for Rust support.", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_rust", + "output_type": "RustSubsystem", + "provider": "pants.backend.experimental.rust" + }, + "construct_scope_rustfmt": { + "description": null, + "documentation": "Rustfmt-specific options.", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_rustfmt", + "output_type": "RustfmtSubsystem", + "provider": "pants.backend.experimental.rust" + }, "construct_scope_scala": { "description": null, "documentation": "Scala programming language", @@ -53560,6 +61809,15 @@ "output_type": "ScalaSubsystem", "provider": "pants.backend.experimental.scala" }, + "construct_scope_scala_dump_source_analysis": { + "description": null, + "documentation": "Dump source analysis for scala_source targets.", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_scala_dump_source_analysis", + "output_type": "DumpScalaSourceAnalysisSubsystem", + "provider": "pants.backend.experimental.scala.debug_goals" + }, "construct_scope_scala_infer": { "description": null, "documentation": "Options controlling which dependencies will be inferred for Scala targets.", @@ -53614,6 +61872,15 @@ "output_type": "SuccinctCodeCounter", "provider": "pants.backend.project_info" }, + "construct_scope_scrooge": { + "description": null, + "documentation": "The Scrooge Thrift IDL compiler (https://twitter.github.io/scrooge/).", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_scrooge", + "output_type": "ScroogeSubsystem", + "provider": "pants.backend.experimental.codegen.thrift.scrooge.java" + }, "construct_scope_setup_py_generation": { "description": null, "documentation": "Options to control how setup.py is generated from a `python_distribution` target.", @@ -53731,6 +61998,15 @@ "output_type": "TailorSubsystem", "provider": "pants.core" }, + "construct_scope_taplo": { + "description": null, + "documentation": "An autoformatter for TOML files (https://taplo.tamasfe.dev/)", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_taplo", + "output_type": "Taplo", + "provider": "pants.backend.tools.taplo" + }, "construct_scope_terraform_fmt": { "description": null, "documentation": "Terraform fmt options.", @@ -53749,6 +62025,15 @@ "output_type": "TerraformHcl2Parser", "provider": "pants.backend.experimental.terraform" }, + "construct_scope_terraform_tfsec": { + "description": null, + "documentation": "tfsec by Aqua Security", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_terraform_tfsec", + "output_type": "TFSec", + "provider": "pants.backend.experimental.terraform.lint.tfsec" + }, "construct_scope_terraform_validate": { "description": null, "documentation": "Terraform validate options.", @@ -53794,6 +62079,15 @@ "output_type": "UpdateBuildFilesSubsystem", "provider": "pants.core" }, + "construct_scope_visibility": { + "description": null, + "documentation": "Options for the visibility rules implementation of the dependency rules API.", + "input_gets": ["Get(ScopedOptions, Scope, ..)"], + "input_types": [], + "name": "construct_scope_visibility", + "output_type": "VisibilitySubsystem", + "provider": "pants.backend.experimental.visibility" + }, "construct_scope_workunit_logger": { "description": null, "documentation": "Workunit Logger subsystem. Useful for debugging pants itself.", @@ -53994,6 +62288,157 @@ "output_type": "Partitions", "provider": "pants.backend.build_files.fmt.yapf" }, + "pants.backend.cc.dependency_inference.rules.find_all_cc_targets": { + "description": "Find all CC targets in project", + "documentation": null, + "input_gets": [], + "input_types": ["AllTargets"], + "name": "pants.backend.cc.dependency_inference.rules.find_all_cc_targets", + "output_type": "AllCCTargets", + "provider": "pants.backend.experimental.cc" + }, + "pants.backend.cc.dependency_inference.rules.infer_cc_source_dependencies": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(ExplicitlyProvidedDependencies, DependenciesRequest, ..)", + "Get(HydratedSources, HydrateSourcesRequest, ..)", + "Get(DigestContents, Digest, ..)" + ], + "input_types": [ + "InferCCDependenciesRequest", + "CCFilesMapping", + "CCInferSubsystem" + ], + "name": "pants.backend.cc.dependency_inference.rules.infer_cc_source_dependencies", + "output_type": "InferredDependencies", + "provider": "pants.backend.experimental.cc" + }, + "pants.backend.cc.dependency_inference.rules.map_cc_files": { + "description": "Creating map of CC file names to CC targets", + "documentation": null, + "input_gets": ["Get(StrippedFileName, StrippedFileNameRequest, ..)"], + "input_types": ["AllCCTargets"], + "name": "pants.backend.cc.dependency_inference.rules.map_cc_files", + "output_type": "CCFilesMapping", + "provider": "pants.backend.experimental.cc" + }, + "pants.backend.cc.goals.tailor.find_putative_targets": { + "description": "Determine candidate CC targets to create", + "documentation": null, + "input_gets": ["Get(Paths, PathGlobs, ..)"], + "input_types": ["PutativeCCTargetsRequest", "AllOwnedSources"], + "name": "pants.backend.cc.goals.tailor.find_putative_targets", + "output_type": "PutativeTargets", + "provider": "pants.backend.experimental.cc" + }, + "pants.backend.cc.lint.clangformat.rules.clangformat_fmt": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(ConfigFiles, ConfigFilesRequest, ..)", + "Get(Pex, PexRequest, ..)", + "Get(Digest, MergeDigests, ..)", + "Get(ProcessResult, PexProcess, ..)", + "Get(Snapshot, Digest, ..)" + ], + "input_types": ["Batch", "ClangFormat"], + "name": "pants.backend.cc.lint.clangformat.rules.clangformat_fmt", + "output_type": "FixResult", + "provider": "pants.backend.experimental.cc.lint.clangformat" + }, + "pants.backend.codegen.avro.java.rules.compile_avro_source": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(GenerateJvmLockfileFromTool, AvroToolLockfileSentinel, ..)", + "Get(ToolClasspath, ToolClasspathRequest, ..)", + "Get(Digest, DigestSubset, ..)", + "Get(Digest, CreateDigest, ..)", + "Get(Digest, MergeDigests, ..)", + "Get(ProcessResult, JvmProcess, ..)", + "Get(Digest, RemovePrefix, ..)" + ], + "input_types": [ + "CompileAvroSourceRequest", + "InternalJdk", + "AvroSubsystem" + ], + "name": "pants.backend.codegen.avro.java.rules.compile_avro_source", + "output_type": "CompiledAvroSource", + "provider": "pants.backend.experimental.codegen.avro.java" + }, + "pants.backend.codegen.avro.java.rules.generate_avro_tools_lockfile_request": { + "description": null, + "documentation": null, + "input_gets": [], + "input_types": ["AvroToolLockfileSentinel", "AvroSubsystem"], + "name": "pants.backend.codegen.avro.java.rules.generate_avro_tools_lockfile_request", + "output_type": "GenerateJvmLockfileFromTool", + "provider": "pants.backend.experimental.codegen.avro.java" + }, + "pants.backend.codegen.avro.java.rules.generate_java_from_avro": { + "description": "Generate Java from Avro", + "documentation": null, + "input_gets": [ + "Get(HydratedSources, HydrateSourcesRequest, ..)", + "Get(CompiledAvroSource, CompileAvroSourceRequest, ..)", + "Get(Digest, MergeDigests, ..)", + "Get(SourceRoot, SourceRootRequest, ..)", + "Get(Snapshot, AddPrefix, ..)", + "Get(Snapshot, Digest, ..)" + ], + "input_types": ["GenerateJavaFromAvroRequest"], + "name": "pants.backend.codegen.avro.java.rules.generate_java_from_avro", + "output_type": "GeneratedSources", + "provider": "pants.backend.experimental.codegen.avro.java" + }, + "pants.backend.codegen.avro.java.rules.infer_apache_avro_java_dependencies": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(ApacheAvroRuntimeForResolve, ApacheAvroRuntimeForResolveRequest, ..)" + ], + "input_types": ["InferAvroRuntimeDependencyRequest", "JvmSubsystem"], + "name": "pants.backend.codegen.avro.java.rules.infer_apache_avro_java_dependencies", + "output_type": "InferredDependencies", + "provider": "pants.backend.experimental.codegen.avro.java" + }, + "pants.backend.codegen.avro.java.rules.resolve_apache_avro_runtime_for_resolve": { + "description": null, + "documentation": null, + "input_gets": [], + "input_types": [ + "ApacheAvroRuntimeForResolveRequest", + "AllJvmArtifactTargets", + "JvmSubsystem" + ], + "name": "pants.backend.codegen.avro.java.rules.resolve_apache_avro_runtime_for_resolve", + "output_type": "ApacheAvroRuntimeForResolve", + "provider": "pants.backend.experimental.codegen.avro.java" + }, + "pants.backend.codegen.avro.tailor.find_putative_targets": { + "description": "Determine candidate Protobuf targets to create", + "documentation": null, + "input_gets": ["Get(Paths, PathGlobs, ..)"], + "input_types": [ + "PutativeAvroTargetsRequest", + "AllOwnedSources", + "AvroSubsystem" + ], + "name": "pants.backend.codegen.avro.tailor.find_putative_targets", + "output_type": "PutativeTargets", + "provider": "pants.backend.experimental.codegen.avro.java" + }, + "pants.backend.codegen.avro.target_types.find_all_avro_targets": { + "description": "Find all Avro targets in project", + "documentation": null, + "input_gets": [], + "input_types": ["AllTargets"], + "name": "pants.backend.codegen.avro.target_types.find_all_avro_targets", + "output_type": "AllAvroTargets", + "provider": "pants.backend.experimental.codegen.avro.java" + }, "pants.backend.codegen.export_codegen_goal.export_codegen": { "description": "`export-codegen` goal", "documentation": null, @@ -54468,6 +62913,47 @@ "output_type": "TargetFilesGeneratorSettings", "provider": "pants.backend.codegen.protobuf.python" }, + "pants.backend.codegen.thrift.apache.java.rules.generate_java_from_thrift": { + "description": "Generate Java from Thrift", + "documentation": null, + "input_gets": [ + "Get(GeneratedThriftSources, GenerateThriftSourcesRequest, ..)", + "Get(SourceRoot, SourceRootRequest, ..)", + "Get(Snapshot, AddPrefix, ..)", + "Get(Snapshot, Digest, ..)" + ], + "input_types": [ + "GenerateJavaFromThriftRequest", + "ApacheThriftJavaSubsystem" + ], + "name": "pants.backend.codegen.thrift.apache.java.rules.generate_java_from_thrift", + "output_type": "GeneratedSources", + "provider": "pants.backend.experimental.codegen.thrift.apache.java" + }, + "pants.backend.codegen.thrift.apache.java.rules.infer_apache_thrift_java_dependencies": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(ApacheThriftJavaRuntimeForResolve, ApacheThriftJavaRuntimeForResolveRequest, ..)" + ], + "input_types": ["InferApacheThriftJavaDependencies", "JvmSubsystem"], + "name": "pants.backend.codegen.thrift.apache.java.rules.infer_apache_thrift_java_dependencies", + "output_type": "InferredDependencies", + "provider": "pants.backend.experimental.codegen.thrift.apache.java" + }, + "pants.backend.codegen.thrift.apache.java.rules.resolve_apache_thrift_java_runtime_for_resolve": { + "description": null, + "documentation": null, + "input_gets": [], + "input_types": [ + "ApacheThriftJavaRuntimeForResolveRequest", + "AllJvmArtifactTargets", + "JvmSubsystem" + ], + "name": "pants.backend.codegen.thrift.apache.java.rules.resolve_apache_thrift_java_runtime_for_resolve", + "output_type": "ApacheThriftJavaRuntimeForResolve", + "provider": "pants.backend.experimental.codegen.thrift.apache.java" + }, "pants.backend.codegen.thrift.apache.python.python_thrift_module_mapper.map_thrift_to_python_modules": { "description": "Creating map of Thrift targets to generated Python modules", "documentation": null, @@ -54571,6 +63057,117 @@ "output_type": "ThriftMapping", "provider": "pants.backend.codegen.thrift.apache.python" }, + "pants.backend.codegen.thrift.scrooge.java.rules.generate_java_from_thrift_with_scrooge": { + "description": "Generate Java from Thrift with Scrooge", + "documentation": null, + "input_gets": [ + "Get(GeneratedScroogeThriftSources, GenerateScroogeThriftSourcesRequest, ..)", + "Get(SourceRoot, SourceRootRequest, ..)", + "Get(Snapshot, AddPrefix, ..)", + "Get(Snapshot, Digest, ..)" + ], + "input_types": ["GenerateJavaFromThriftRequest"], + "name": "pants.backend.codegen.thrift.scrooge.java.rules.generate_java_from_thrift_with_scrooge", + "output_type": "GeneratedSources", + "provider": "pants.backend.experimental.codegen.thrift.scrooge.java" + }, + "pants.backend.codegen.thrift.scrooge.java.rules.inject_scrooge_thrift_java_dependencies": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(ScroogeThriftJavaRuntimeForResolve, ScroogeThriftJavaRuntimeForResolveRequest, ..)" + ], + "input_types": ["InferScroogeThriftJavaDependencies", "JvmSubsystem"], + "name": "pants.backend.codegen.thrift.scrooge.java.rules.inject_scrooge_thrift_java_dependencies", + "output_type": "InferredDependencies", + "provider": "pants.backend.experimental.codegen.thrift.scrooge.java" + }, + "pants.backend.codegen.thrift.scrooge.java.rules.resolve_scrooge_thrift_java_runtime_for_resolve": { + "description": null, + "documentation": null, + "input_gets": [], + "input_types": [ + "ScroogeThriftJavaRuntimeForResolveRequest", + "AllJvmArtifactTargets", + "JvmSubsystem", + "ScalaSubsystem" + ], + "name": "pants.backend.codegen.thrift.scrooge.java.rules.resolve_scrooge_thrift_java_runtime_for_resolve", + "output_type": "ScroogeThriftJavaRuntimeForResolve", + "provider": "pants.backend.experimental.codegen.thrift.scrooge.java" + }, + "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_lockfile_request": { + "description": null, + "documentation": null, + "input_gets": [], + "input_types": ["ScroogeToolLockfileSentinel", "ScroogeSubsystem"], + "name": "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_lockfile_request", + "output_type": "GenerateJvmLockfileFromTool", + "provider": "pants.backend.experimental.codegen.thrift.scrooge.java" + }, + "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_thrift_sources": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(GenerateJvmLockfileFromTool, ScroogeToolLockfileSentinel, ..)", + "Get(ToolClasspath, ToolClasspathRequest, ..)", + "Get(TransitiveTargets, TransitiveTargetsRequest, ..)", + "Get(Digest, CreateDigest, ..)", + "Get(WrappedTarget, WrappedTargetRequest, ..)", + "Get(SourceFiles, SourceFilesRequest, ..)", + "Get(SourceRootsResult, SourceRootsRequest, ..)", + "Get(Digest, MergeDigests, ..)", + "Get(ProcessResult, JvmProcess, ..)", + "Get(Snapshot, RemovePrefix, ..)" + ], + "input_types": [ + "GenerateScroogeThriftSourcesRequest", + "InternalJdk", + "ScroogeSubsystem" + ], + "name": "pants.backend.codegen.thrift.scrooge.rules.generate_scrooge_thrift_sources", + "output_type": "GeneratedScroogeThriftSources", + "provider": "pants.backend.experimental.codegen.thrift.scrooge.java" + }, + "pants.backend.codegen.thrift.scrooge.scala.rules.generate_scala_from_thrift_with_scrooge": { + "description": "Generate Scala from Thrift with Scrooge", + "documentation": null, + "input_gets": [ + "Get(GeneratedScroogeThriftSources, GenerateScroogeThriftSourcesRequest, ..)", + "Get(SourceRoot, SourceRootRequest, ..)", + "Get(Snapshot, AddPrefix, ..)", + "Get(Snapshot, Digest, ..)" + ], + "input_types": ["GenerateScalaFromThriftRequest"], + "name": "pants.backend.codegen.thrift.scrooge.scala.rules.generate_scala_from_thrift_with_scrooge", + "output_type": "GeneratedSources", + "provider": "pants.backend.experimental.codegen.thrift.scrooge.scala" + }, + "pants.backend.codegen.thrift.scrooge.scala.rules.inject_scrooge_thrift_scala_dependencies": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(ScroogeThriftScalaRuntimeForResolve, ScroogeThriftScalaRuntimeForResolveRequest, ..)" + ], + "input_types": ["InferScroogeThriftScalaDependencies", "JvmSubsystem"], + "name": "pants.backend.codegen.thrift.scrooge.scala.rules.inject_scrooge_thrift_scala_dependencies", + "output_type": "InferredDependencies", + "provider": "pants.backend.experimental.codegen.thrift.scrooge.scala" + }, + "pants.backend.codegen.thrift.scrooge.scala.rules.resolve_scrooge_thrift_scala_runtime_for_resolve": { + "description": null, + "documentation": null, + "input_gets": [], + "input_types": [ + "ScroogeThriftScalaRuntimeForResolveRequest", + "AllJvmArtifactTargets", + "JvmSubsystem", + "ScalaSubsystem" + ], + "name": "pants.backend.codegen.thrift.scrooge.scala.rules.resolve_scrooge_thrift_scala_runtime_for_resolve", + "output_type": "ScroogeThriftScalaRuntimeForResolve", + "provider": "pants.backend.experimental.codegen.thrift.scrooge.scala" + }, "pants.backend.codegen.thrift.tailor.find_putative_thrift_targets": { "description": "Determine candidate Thrift targets to create", "documentation": null, @@ -54614,6 +63211,49 @@ "output_type": "ParsedThrift", "provider": "pants.backend.codegen.thrift.apache.python" }, + "pants.backend.cue.goals.fix.run_cue_fmt": { + "description": "Format with cue", + "documentation": null, + "input_gets": [ + "Get(DownloadedExternalTool, ExternalToolRequest, ..)", + "Get(Digest, MergeDigests, ..)", + "Get(FallibleProcessResult, Process, ..)", + "Get(Snapshot, Digest, ..)" + ], + "input_types": ["Batch", "Cue", "Platform"], + "name": "pants.backend.cue.goals.fix.run_cue_fmt", + "output_type": "FixResult", + "provider": "pants.backend.experimental.cue" + }, + "pants.backend.cue.goals.lint.run_cue_vet": { + "description": "Lint with cue", + "documentation": null, + "input_gets": [ + "Get(SourceFiles, SourceFilesRequest, ..)", + "Get(DownloadedExternalTool, ExternalToolRequest, ..)", + "Get(Digest, MergeDigests, ..)", + "Get(FallibleProcessResult, Process, ..)" + ], + "input_types": ["Batch", "Cue", "Platform"], + "name": "pants.backend.cue.goals.lint.run_cue_vet", + "output_type": "LintResult", + "provider": "pants.backend.experimental.cue" + }, + "pants.backend.debian.rules.package_debian_package": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(BinaryPaths, BinaryPathRequest, ..)", + "Get(HydratedSources, HydrateSourcesRequest, ..)", + "Get(ProcessResult, Process, ..)", + "Get(DigestEntries, Digest, ..)", + "Get(Digest, CreateDigest, ..)" + ], + "input_types": ["DebianPackageFieldSet", "TarBinary"], + "name": "pants.backend.debian.rules.package_debian_package", + "output_type": "BuiltPackage", + "provider": "pants.backend.experimental.debian" + }, "pants.backend.docker.goals.package_image.build_docker_image": { "description": null, "documentation": "Build a Docker image using `docker build`.", @@ -54870,6 +63510,56 @@ "output_type": "CheckResults", "provider": "pants.backend.experimental.go" }, + "pants.backend.go.goals.debug_goals.dump_go_import_paths_for_module": { + "description": "`go-dump-import-path-mapping` goal", + "documentation": null, + "input_gets": [ + "Get(GoModuleImportPathsMapping, GoImportPathMappingRequest, ..)" + ], + "input_types": ["UnexpandedTargets", "Console"], + "name": "pants.backend.go.goals.debug_goals.dump_go_import_paths_for_module", + "output_type": "DumpGoImportPathsForModule", + "provider": "pants.backend.experimental.go.debug_goals" + }, + "pants.backend.go.goals.debug_goals.export_cgo_package": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(FallibleBuildGoPackageRequest, BuildGoPackageTargetRequest, ..)", + "Get(CGoCompileResult, CGoCompileRequest, ..)", + "Get(Digest, RemovePrefix, ..)" + ], + "input_types": ["ExportCgoPackageRequest"], + "name": "pants.backend.go.goals.debug_goals.export_cgo_package", + "output_type": "ExportCgoPackageResult", + "provider": "pants.backend.experimental.go.debug_goals" + }, + "pants.backend.go.goals.debug_goals.go_export_cgo_codegen": { + "description": "`go-export-cgo-codegen` goal", + "documentation": null, + "input_gets": [ + "Get(GoBuildOptions, GoBuildOptionsFromTargetRequest, ..)", + "Get(ExportCgoPackageResult, ExportCgoPackageRequest, ..)" + ], + "input_types": ["Targets", "DistDir", "Workspace"], + "name": "pants.backend.go.goals.debug_goals.go_export_cgo_codegen", + "output_type": "GoExportCgoCodegen", + "provider": "pants.backend.experimental.go.debug_goals" + }, + "pants.backend.go.goals.debug_goals.go_show_package_analysis": { + "description": "`go-show-package-analysis` goal", + "documentation": null, + "input_gets": [ + "Get(GoBuildOptions, GoBuildOptionsFromTargetRequest, ..)", + "Get(FallibleFirstPartyPkgAnalysis, FirstPartyPkgAnalysisRequest, ..)", + "Get(GoModInfo, GoModInfoRequest, ..)", + "Get(ThirdPartyPkgAnalysis, ThirdPartyPkgAnalysisRequest, ..)" + ], + "input_types": ["Targets", "Console"], + "name": "pants.backend.go.goals.debug_goals.go_show_package_analysis", + "output_type": "ShowGoPackageAnalysis", + "provider": "pants.backend.experimental.go.debug_goals" + }, "pants.backend.go.goals.generate.go_generate": { "description": "`go-generate` goal", "documentation": null, @@ -55034,6 +63724,49 @@ "output_type": "FixResult", "provider": "pants.backend.experimental.go" }, + "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint": { + "description": "Lint with golangci-lint", + "documentation": null, + "input_gets": [ + "Get(TransitiveTargets, TransitiveTargetsRequest, ..)", + "Get(SourceFiles, SourceFilesRequest, ..)", + "Get(DownloadedExternalTool, ExternalToolRequest, ..)", + "Get(ConfigFiles, ConfigFilesRequest, ..)", + "Get(OwningGoMod, OwningGoModRequest, ..)", + "Get(GoModInfo, GoModInfoRequest, ..)", + "Get(GoBuildOptions, GoBuildOptionsFromTargetRequest, ..)", + "Get(Digest, CreateDigest, ..)", + "Get(Digest, MergeDigests, ..)", + "Get(FallibleProcessResult, Process, ..)" + ], + "input_types": [ + "Batch", + "GolangciLint", + "GoRoot", + "BashBinary", + "Platform", + "GolangSubsystem", + "EnvironmentAware" + ], + "name": "pants.backend.go.lint.golangci_lint.rules.run_golangci_lint", + "output_type": "LintResult", + "provider": "pants.backend.experimental.go.lint.golangci_lint" + }, + "pants.backend.go.lint.vet.rules.run_go_vet": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(SourceFiles, SourceFilesRequest, ..)", + "Get(OwningGoMod, OwningGoModRequest, ..)", + "Get(GoModInfo, GoModInfoRequest, ..)", + "Get(Digest, MergeDigests, ..)", + "Get(FallibleProcessResult, GoSdkProcess, ..)" + ], + "input_types": ["Batch"], + "name": "pants.backend.go.lint.vet.rules.run_go_vet", + "output_type": "LintResult", + "provider": "pants.backend.experimental.go.lint.vet" + }, "pants.backend.go.target_type_rules.generate_targets_from_go_mod": { "description": "Generate `go_third_party_package` targets from `go_mod` target", "documentation": null, @@ -55781,6 +64514,80 @@ "output_type": "BuiltPackage", "provider": "pants.backend.google_cloud_function.python" }, + "pants.backend.helm.check.kubeconform.chart.run_check_chart": { + "description": null, + "documentation": null, + "input_gets": ["Get(CheckResult, KubeconformChartFieldSet, ..)"], + "input_types": ["KubeconformCheckChartRequest", "KubeconformSubsystem"], + "name": "pants.backend.helm.check.kubeconform.chart.run_check_chart", + "output_type": "CheckResults", + "provider": "pants.backend.experimental.helm.check.kubeconform" + }, + "pants.backend.helm.check.kubeconform.chart.run_kubeconform_on_chart": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(RenderedHelmFiles, RenderHelmChartRequest, ..)", + "Get(CheckResult, RunKubeconformRequest, ..)" + ], + "input_types": ["KubeconformChartFieldSet"], + "name": "pants.backend.helm.check.kubeconform.chart.run_kubeconform_on_chart", + "output_type": "CheckResult", + "provider": "pants.backend.experimental.helm.check.kubeconform" + }, + "pants.backend.helm.check.kubeconform.common.run_kubeconform": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(FallibleProcessResult, Process, ..)", + "Get(Digest, CreateDigest, ..)" + ], + "input_types": [ + "RunKubeconformRequest", + "KubeconformSetup", + "KubeconformSubsystem" + ], + "name": "pants.backend.helm.check.kubeconform.common.run_kubeconform", + "output_type": "CheckResult", + "provider": "pants.backend.experimental.helm.check.kubeconform" + }, + "pants.backend.helm.check.kubeconform.common.setup_kube_conform": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(DownloadedExternalTool, ExternalToolRequest, ..)", + "Get(EnvironmentVars, EnvironmentVarsRequest, ..)" + ], + "input_types": ["HelmSubsystem", "KubeconformSubsystem", "Platform"], + "name": "pants.backend.helm.check.kubeconform.common.setup_kube_conform", + "output_type": "KubeconformSetup", + "provider": "pants.backend.experimental.helm.check.kubeconform" + }, + "pants.backend.helm.check.kubeconform.deployment.run_check_deployment": { + "description": null, + "documentation": null, + "input_gets": ["Get(CheckResult, KubeconformDeploymentFieldSet, ..)"], + "input_types": [ + "KubeconformCheckDeploymentRequest", + "KubeconformSubsystem" + ], + "name": "pants.backend.helm.check.kubeconform.deployment.run_check_deployment", + "output_type": "CheckResults", + "provider": "pants.backend.experimental.helm.check.kubeconform" + }, + "pants.backend.helm.check.kubeconform.deployment.run_kubeconform_on_deployment": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(HelmPostRenderer, HelmDeploymentPostRendererRequest, ..)", + "Get(RenderedHelmFiles, HelmDeploymentRequest, ..)", + "Get(CheckResult, RunKubeconformRequest, ..)" + ], + "input_types": ["KubeconformDeploymentFieldSet"], + "name": "pants.backend.helm.check.kubeconform.deployment.run_kubeconform_on_deployment", + "output_type": "CheckResult", + "provider": "pants.backend.experimental.helm.check.kubeconform" + }, "pants.backend.helm.dependency_inference.chart.first_party_helm_chart_mapping": { "description": null, "documentation": null, @@ -56562,6 +65369,17 @@ "output_type": "CheckResults", "provider": "pants.backend.experimental.java" }, + "pants.backend.java.goals.debug_goals.dump_java_source_analysis": { + "description": "`java-dump-source-analysis` goal", + "documentation": null, + "input_gets": [ + "Get(JavaSourceDependencyAnalysis, SourceFilesRequest, ..)" + ], + "input_types": ["Targets", "Console"], + "name": "pants.backend.java.goals.debug_goals.dump_java_source_analysis", + "output_type": "DumpJavaSourceAnalysis", + "provider": "pants.backend.experimental.java.debug_goals" + }, "pants.backend.java.goals.tailor.find_putative_targets": { "description": "Determine candidate Java targets to create", "documentation": null, @@ -56616,7 +65434,7 @@ "input_types": ["InferJSDependenciesRequest", "NodeJSInfer"], "name": "pants.backend.javascript.dependency_inference.rules.infer_js_source_dependencies", "output_type": "InferredDependencies", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.dependency_inference.rules.infer_node_package_dependencies": { "description": null, @@ -56629,7 +65447,7 @@ "input_types": ["InferNodePackageDependenciesRequest", "NodeJSInfer"], "name": "pants.backend.javascript.dependency_inference.rules.infer_node_package_dependencies", "output_type": "InferredDependencies", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.dependency_inference.rules.map_candidate_node_packages": { "description": null, @@ -56641,7 +65459,7 @@ ], "name": "pants.backend.javascript.dependency_inference.rules.map_candidate_node_packages", "output_type": "NodePackageCandidateMap", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.dependency_inference.rules.prepare_inference_metadata": { "description": null, @@ -56650,7 +65468,98 @@ "input_types": ["PackageJsonImports"], "name": "pants.backend.javascript.dependency_inference.rules.prepare_inference_metadata", "output_type": "InferenceMetadata", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" + }, + "pants.backend.javascript.goals.lockfile.determine_package_json_user_resolves": { + "description": null, + "documentation": null, + "input_gets": [], + "input_types": [ + "KnownPackageJsonUserResolveNamesRequest", + "AllNodeJSProjects", + "UserChosenNodeJSResolveAliases" + ], + "name": "pants.backend.javascript.goals.lockfile.determine_package_json_user_resolves", + "output_type": "KnownUserResolveNames", + "provider": "pants.backend.experimental.javascript" + }, + "pants.backend.javascript.goals.lockfile.generate_lockfile_from_package_jsons": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(ProcessResult, NodeJsProjectEnvironmentProcess, ..)", + "Get(Digest, AddPrefix, ..)" + ], + "input_types": ["GeneratePackageLockJsonFile"], + "name": "pants.backend.javascript.goals.lockfile.generate_lockfile_from_package_jsons", + "output_type": "GenerateLockfileResult", + "provider": "pants.backend.experimental.javascript" + }, + "pants.backend.javascript.goals.lockfile.setup_user_lockfile_requests": { + "description": null, + "documentation": null, + "input_gets": [], + "input_types": [ + "NodeJSProjectResolves", + "RequestedPackageJsonUserResolveNames" + ], + "name": "pants.backend.javascript.goals.lockfile.setup_user_lockfile_requests", + "output_type": "UserGenerateLockfiles", + "provider": "pants.backend.experimental.javascript" + }, + "pants.backend.javascript.goals.tailor.find_putative_js_targets": { + "description": "Determine candidate JS targets to create", + "documentation": null, + "input_gets": ["Get(Paths, PathGlobs, ..)"], + "input_types": ["PutativeJSTargetsRequest", "AllOwnedSources"], + "name": "pants.backend.javascript.goals.tailor.find_putative_js_targets", + "output_type": "PutativeTargets", + "provider": "pants.backend.experimental.javascript" + }, + "pants.backend.javascript.goals.tailor.find_putative_package_json_targets": { + "description": "Determine candidate package.json targets to create", + "documentation": null, + "input_gets": ["Get(Paths, PathGlobs, ..)"], + "input_types": ["PutativePackageJsonTargetsRequest", "AllOwnedSources"], + "name": "pants.backend.javascript.goals.tailor.find_putative_package_json_targets", + "output_type": "PutativeTargets", + "provider": "pants.backend.experimental.javascript" + }, + "pants.backend.javascript.goals.test.collect_coverage_reports": { + "description": "Collecting coverage reports.", + "documentation": null, + "input_gets": ["Get(Snapshot, DigestSubset, ..)"], + "input_types": ["JSCoverageDataCollection", "DistDir", "NodeJSTest"], + "name": "pants.backend.javascript.goals.test.collect_coverage_reports", + "output_type": "CoverageReports", + "provider": "pants.backend.experimental.javascript" + }, + "pants.backend.javascript.goals.test.partition_nodejs_tests": { + "description": "Partition NodeJS tests", + "documentation": null, + "input_gets": ["Get(OwningNodePackage, OwningNodePackageRequest, ..)"], + "input_types": ["PartitionRequest"], + "name": "pants.backend.javascript.goals.test.partition_nodejs_tests", + "output_type": "Partitions", + "provider": "pants.backend.experimental.javascript" + }, + "pants.backend.javascript.goals.test.run_javascript_tests": { + "description": "Run javascript tests", + "documentation": null, + "input_gets": [ + "Get(InstalledNodePackage, InstalledNodePackageRequest, ..)", + "Get(TransitiveTargets, TransitiveTargetsRequest, ..)", + "Get(SourceFiles, SourceFilesRequest, ..)", + "Get(EnvironmentVars, EnvironmentVarsRequest, ..)", + "Get(Digest, MergeDigests, ..)", + "Get(Process, NodeJsProjectEnvironmentProcess, ..)", + "Get(FallibleProcessResult, Process, ..)", + "Get(Snapshot, DigestSubset, ..)" + ], + "input_types": ["Batch", "TestSubsystem", "TestExtraEnv"], + "name": "pants.backend.javascript.goals.test.run_javascript_tests", + "output_type": "TestResult", + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.install_node_package.add_sources_to_installed_node_package": { "description": null, @@ -56664,7 +65573,7 @@ "input_types": ["InstalledNodePackageRequest"], "name": "pants.backend.javascript.install_node_package.add_sources_to_installed_node_package", "output_type": "InstalledNodePackageWithSource", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.install_node_package.install_node_packages_for_address": { "description": null, @@ -56681,7 +65590,21 @@ "input_types": ["InstalledNodePackageRequest", "UnionMembership"], "name": "pants.backend.javascript.install_node_package.install_node_packages_for_address", "output_type": "InstalledNodePackage", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" + }, + "pants.backend.javascript.lint.prettier.rules.prettier_fmt": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(ConfigFiles, ConfigFilesRequest, ..)", + "Get(Digest, MergeDigests, ..)", + "Get(ProcessResult, NodeJSToolRequest, ..)", + "Get(Snapshot, Digest, ..)" + ], + "input_types": ["Batch", "Prettier"], + "name": "pants.backend.javascript.lint.prettier.rules.prettier_fmt", + "output_type": "FixResult", + "provider": "pants.backend.experimental.javascript.lint.prettier" }, "pants.backend.javascript.nodejs_project.find_node_js_projects": { "description": null, @@ -56695,7 +65618,7 @@ ], "name": "pants.backend.javascript.nodejs_project.find_node_js_projects", "output_type": "AllNodeJSProjects", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.nodejs_project_environment.get_nodejs_environment": { "description": "Assembling nodejs project environment", @@ -56707,7 +65630,7 @@ "input_types": ["NodeJSProjectEnvironmentRequest"], "name": "pants.backend.javascript.nodejs_project_environment.get_nodejs_environment", "output_type": "NodeJsProjectEnvironment", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.nodejs_project_environment.setup_nodejs_project_environment_process": { "description": null, @@ -56720,7 +65643,57 @@ "input_types": ["NodeJsProjectEnvironmentProcess"], "name": "pants.backend.javascript.nodejs_project_environment.setup_nodejs_project_environment_process", "output_type": "Process", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" + }, + "pants.backend.javascript.package.rules.generate_package_artifact_from_node_build_script": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(NodeBuildScriptResult, NodeBuildScriptRequest, ..)", + "Get(Digest, AddPrefix, ..)" + ], + "input_types": ["NodeBuildScriptPackageFieldSet"], + "name": "pants.backend.javascript.package.rules.generate_package_artifact_from_node_build_script", + "output_type": "BuiltPackage", + "provider": "pants.backend.experimental.javascript" + }, + "pants.backend.javascript.package.rules.generate_resources_from_node_build_script": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(NodeBuildScriptResult, NodeBuildScriptRequest, ..)", + "Get(Snapshot, AddPrefix, ..)" + ], + "input_types": ["GenerateResourcesFromNodeBuildScriptRequest"], + "name": "pants.backend.javascript.package.rules.generate_resources_from_node_build_script", + "output_type": "GeneratedSources", + "provider": "pants.backend.experimental.javascript" + }, + "pants.backend.javascript.package.rules.pack_node_package_into_tgz_for_publication": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(InstalledNodePackageWithSource, InstalledNodePackageRequest, ..)", + "Get(ProcessResult, NodeJsProjectEnvironmentProcess, ..)", + "Get(Digest, AddPrefix, ..)" + ], + "input_types": ["NodePackageTarFieldSet"], + "name": "pants.backend.javascript.package.rules.pack_node_package_into_tgz_for_publication", + "output_type": "BuiltPackage", + "provider": "pants.backend.experimental.javascript" + }, + "pants.backend.javascript.package.rules.run_node_build_script": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(InstalledNodePackageWithSource, InstalledNodePackageRequest, ..)", + "Get(EnvironmentVars, EnvironmentVarsRequest, ..)", + "Get(ProcessResult, NodeJsProjectEnvironmentProcess, ..)" + ], + "input_types": ["NodeBuildScriptRequest"], + "name": "pants.backend.javascript.package.rules.run_node_build_script", + "output_type": "NodeBuildScriptResult", + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.package_json.all_first_party_node_package_targets": { "description": null, @@ -56729,7 +65702,7 @@ "input_types": ["AllTargets"], "name": "pants.backend.javascript.package_json.all_first_party_node_package_targets", "output_type": "FirstPartyNodePackageTargets", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.package_json.all_package_json": { "description": null, @@ -56741,7 +65714,7 @@ "input_types": [], "name": "pants.backend.javascript.package_json.all_package_json", "output_type": "AllPackageJson", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.package_json.all_package_json_names": { "description": null, @@ -56750,7 +65723,7 @@ "input_types": ["AllPackageJson"], "name": "pants.backend.javascript.package_json.all_package_json_names", "output_type": "AllPackageJsonNames", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.package_json.find_owning_package": { "description": null, @@ -56762,7 +65735,7 @@ "input_types": ["OwningNodePackageRequest"], "name": "pants.backend.javascript.package_json.find_owning_package", "output_type": "OwningNodePackage", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.package_json.generate_node_package_targets": { "description": null, @@ -56775,7 +65748,7 @@ ], "name": "pants.backend.javascript.package_json.generate_node_package_targets", "output_type": "GeneratedTargets", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.package_json.package_json_for_source": { "description": null, @@ -56784,7 +65757,7 @@ "input_types": ["PackageJsonSourceField"], "name": "pants.backend.javascript.package_json.package_json_for_source", "output_type": "PackageJson", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.package_json.parse_package_json": { "description": null, @@ -56793,7 +65766,7 @@ "input_types": ["FileContent"], "name": "pants.backend.javascript.package_json.parse_package_json", "output_type": "PackageJson", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.package_json.pnpm_workspace_files": { "description": null, @@ -56806,7 +65779,7 @@ "input_types": ["AllPackageJson"], "name": "pants.backend.javascript.package_json.pnpm_workspace_files", "output_type": "PnpmWorkspaces", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.package_json.read_package_jsons": { "description": null, @@ -56819,7 +65792,7 @@ "input_types": ["PathGlobs"], "name": "pants.backend.javascript.package_json.read_package_jsons", "output_type": "PackageJsonForGlobs", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.package_json.script_entrypoints_for_source": { "description": null, @@ -56828,7 +65801,7 @@ "input_types": ["PackageJsonSourceField"], "name": "pants.backend.javascript.package_json.script_entrypoints_for_source", "output_type": "PackageJsonEntryPoints", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.package_json.subpath_imports_for_source": { "description": null, @@ -56837,7 +65810,7 @@ "input_types": ["PackageJsonSourceField"], "name": "pants.backend.javascript.package_json.subpath_imports_for_source", "output_type": "PackageJsonImports", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.resolve.resolve_for_package": { "description": null, @@ -56849,7 +65822,7 @@ "input_types": ["RequestNodeResolve", "AllNodeJSProjects"], "name": "pants.backend.javascript.resolve.resolve_for_package", "output_type": "ChosenNodeResolve", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.resolve.resolve_to_first_party_node_package": { "description": null, @@ -56858,7 +65831,7 @@ "input_types": ["NodeJSProjectResolves", "FirstPartyNodePackageTargets"], "name": "pants.backend.javascript.resolve.resolve_to_first_party_node_package", "output_type": "FirstPartyNodePackageResolves", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.resolve.resolve_to_projects": { "description": null, @@ -56867,7 +65840,20 @@ "input_types": ["AllNodeJSProjects", "UserChosenNodeJSResolveAliases"], "name": "pants.backend.javascript.resolve.resolve_to_projects", "output_type": "NodeJSProjectResolves", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" + }, + "pants.backend.javascript.run.rules.run_node_build_script": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(InstalledNodePackageWithSource, InstalledNodePackageRequest, ..)", + "Get(EnvironmentVars, EnvironmentVarsRequest, ..)", + "Get(Process, NodeJsProjectEnvironmentProcess, ..)" + ], + "input_types": ["RunNodeBuildScriptFieldSet"], + "name": "pants.backend.javascript.run.rules.run_node_build_script", + "output_type": "RunRequest", + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.subsystems.nodejs.determine_nodejs_binaries": { "description": "Finding Node.js distribution binaries.", @@ -56876,7 +65862,7 @@ "input_types": ["NodeJS", "Platform", "_BinaryPathsPerVersion"], "name": "pants.backend.javascript.subsystems.nodejs.determine_nodejs_binaries", "output_type": "NodeJSBinaries", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.subsystems.nodejs.get_valid_nodejs_paths_by_version": { "description": "Testing for Node.js binaries.", @@ -56885,7 +65871,7 @@ "input_types": ["NodeJSBootstrap"], "name": "pants.backend.javascript.subsystems.nodejs.get_valid_nodejs_paths_by_version", "output_type": "_BinaryPathsPerVersion", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.subsystems.nodejs.node_process_environment": { "description": null, @@ -56900,7 +65886,7 @@ "input_types": ["NodeJSBinaries", "EnvironmentAware"], "name": "pants.backend.javascript.subsystems.nodejs.node_process_environment", "output_type": "NodeJSProcessEnvironment", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.subsystems.nodejs.nodejs_bootstrap": { "description": null, @@ -56915,7 +65901,7 @@ "input_types": ["EnvironmentAware"], "name": "pants.backend.javascript.subsystems.nodejs.nodejs_bootstrap", "output_type": "NodeJSBootstrap", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.subsystems.nodejs.prepare_corepack_tool": { "description": "Preparing Corepack managed tool.", @@ -56928,7 +65914,7 @@ ], "name": "pants.backend.javascript.subsystems.nodejs.prepare_corepack_tool", "output_type": "CorepackToolDigest", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.subsystems.nodejs.setup_node_tool_process": { "description": null, @@ -56940,7 +65926,7 @@ "input_types": ["NodeJSToolProcess", "NodeJSProcessEnvironment"], "name": "pants.backend.javascript.subsystems.nodejs.setup_node_tool_process", "output_type": "Process", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.subsystems.nodejs.user_chosen_resolve_aliases": { "description": null, @@ -56949,7 +65935,7 @@ "input_types": ["NodeJS"], "name": "pants.backend.javascript.subsystems.nodejs.user_chosen_resolve_aliases", "output_type": "UserChosenNodeJSResolveAliases", - "provider": "pants.backend.experimental.openapi.lint.spectral" + "provider": "pants.backend.experimental.javascript" }, "pants.backend.javascript.subsystems.nodejs_tool.prepare_tool_process": { "description": null, @@ -57172,6 +66158,17 @@ "output_type": "CheckResults", "provider": "pants.backend.experimental.kotlin" }, + "pants.backend.kotlin.goals.debug_goals.dump_kotlin_source_analysis": { + "description": "`kotlin-dump-source-analysis` goal", + "documentation": null, + "input_gets": [ + "Get(KotlinSourceDependencyAnalysis, SourceFilesRequest, ..)" + ], + "input_types": ["Targets", "Console"], + "name": "pants.backend.kotlin.goals.debug_goals.dump_kotlin_source_analysis", + "output_type": "DumpKotlinSourceAnalysis", + "provider": "pants.backend.experimental.kotlin.debug_goals" + }, "pants.backend.kotlin.goals.tailor.find_putative_targets": { "description": "Determine candidate Kotlin targets to create", "documentation": null, @@ -57233,6 +66230,56 @@ "output_type": "KotlinJunitLibrariesForResolve", "provider": "pants.backend.experimental.kotlin" }, + "pants.backend.openapi.codegen.java.rules.compile_openapi_into_java": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(Digest, CreateDigest, ..)", + "Get(Digest, MergeDigests, ..)", + "Get(ProcessResult, OpenAPIGeneratorProcess, ..)", + "Get(Digest, RemovePrefix, ..)", + "Get(Digest, DigestSubset, ..)", + "Get(PomReport, AnalysePomRequest, ..)" + ], + "input_types": ["CompileOpenApiIntoJavaRequest"], + "name": "pants.backend.openapi.codegen.java.rules.compile_openapi_into_java", + "output_type": "CompiledJavaFromOpenApi", + "provider": "pants.backend.experimental.openapi.codegen.java" + }, + "pants.backend.openapi.codegen.java.rules.generate_java_from_openapi": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(HydratedSources, HydrateSourcesRequest, ..)", + "Get(TransitiveTargets, TransitiveTargetsRequest, ..)", + "Get(Digest, MergeDigests, ..)", + "Get(CompiledJavaFromOpenApi, CompileOpenApiIntoJavaRequest, ..)", + "Get(SourceRoot, SourceRootRequest, ..)", + "Get(Snapshot, AddPrefix, ..)", + "Get(Snapshot, Digest, ..)" + ], + "input_types": ["GenerateJavaFromOpenAPIRequest"], + "name": "pants.backend.openapi.codegen.java.rules.generate_java_from_openapi", + "output_type": "GeneratedSources", + "provider": "pants.backend.experimental.openapi.codegen.java" + }, + "pants.backend.openapi.codegen.java.rules.infer_openapi_java_dependencies": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(Digest, CreateDigest, ..)", + "Get(CompiledJavaFromOpenApi, CompileOpenApiIntoJavaRequest, ..)" + ], + "input_types": [ + "InferOpenApiJavaRuntimeDependencyRequest", + "JvmSubsystem", + "AllJvmArtifactTargets", + "OpenAPIGenerator" + ], + "name": "pants.backend.openapi.codegen.java.rules.infer_openapi_java_dependencies", + "output_type": "InferredDependencies", + "provider": "pants.backend.experimental.openapi.codegen.java" + }, "pants.backend.openapi.dependency_inference.infer_openapi_document_dependencies": { "description": null, "documentation": null, @@ -57301,6 +66348,41 @@ "output_type": "LintResult", "provider": "pants.backend.experimental.openapi.lint.spectral" }, + "pants.backend.openapi.subsystems.openapi_generator.generate_openapi_generator_lockfile_request": { + "description": null, + "documentation": null, + "input_gets": [], + "input_types": ["OpenAPIGeneratorLockfileSentinel", "OpenAPIGenerator"], + "name": "pants.backend.openapi.subsystems.openapi_generator.generate_openapi_generator_lockfile_request", + "output_type": "GenerateJvmLockfileFromTool", + "provider": "pants.backend.experimental.openapi.codegen.java" + }, + "pants.backend.openapi.util_rules.generator_process.openapi_generator_process": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(GenerateJvmLockfileFromTool, OpenAPIGeneratorLockfileSentinel, ..)", + "Get(ToolClasspath, ToolClasspathRequest, ..)", + "Get(Process, JvmProcess, ..)" + ], + "input_types": [ + "OpenAPIGeneratorProcess", + "InternalJdk", + "OpenAPIGenerator" + ], + "name": "pants.backend.openapi.util_rules.generator_process.openapi_generator_process", + "output_type": "Process", + "provider": "pants.backend.experimental.openapi.codegen.java" + }, + "pants.backend.openapi.util_rules.pom_parser.analyse_pom": { + "description": "Analysing Maven POM file", + "documentation": null, + "input_gets": ["Get(DigestContents, Digest, ..)"], + "input_types": ["AnalysePomRequest"], + "name": "pants.backend.openapi.util_rules.pom_parser.analyse_pom", + "output_type": "PomReport", + "provider": "pants.backend.experimental.openapi.codegen.java" + }, "pants.backend.plugin_development.pants_requirements.generate_from_pants_requirements": { "description": null, "documentation": null, @@ -57667,6 +66749,38 @@ "output_type": "ResolvedParsedPythonDependencies", "provider": "pants.backend.python" }, + "pants.backend.python.framework.django.dependency_inference.django_parser_script": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(StrippedSourceFiles, SourceFilesRequest, ..)", + "Get(Digest, CreateDigest, ..)", + "Get(VenvPex, PexRequest, ..)", + "Get(ProcessResult, VenvPexProcess, ..)", + "Get(ResolvedParsedPythonDependencies, ResolvedParsedPythonDependenciesRequest, ..)" + ], + "input_types": ["InferDjangoDependencies", "PythonSetup", "DjangoApps"], + "name": "pants.backend.python.framework.django.dependency_inference.django_parser_script", + "output_type": "InferredDependencies", + "provider": "pants.backend.experimental.python.framework.django" + }, + "pants.backend.python.framework.django.detect_apps.detect_django_apps": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(Targets, RawSpecs, ..)", + "Get(Digest, CreateDigest, ..)", + "Get(HydratedSources, HydrateSourcesRequest, ..)", + "Get(Digest, MergeDigests, ..)", + "Get(Digest, AddPrefix, ..)", + "Get(PythonExecutable, InterpreterConstraints, ..)", + "Get(ProcessResult, Process, ..)" + ], + "input_types": ["PythonSetup"], + "name": "pants.backend.python.framework.django.detect_apps.detect_django_apps", + "output_type": "DjangoApps", + "provider": "pants.backend.experimental.python.framework.django" + }, "pants.backend.python.framework.stevedore.python_target_dependencies.find_all_python_distributions_with_any_stevedore_entry_points": { "description": "Find all `python_distribution` targets with `stevedore_namespace` entry_points", "documentation": null, @@ -58652,6 +67766,72 @@ "output_type": "RunRequest", "provider": "pants.backend.experimental.python.packaging.pyoxidizer" }, + "pants.backend.python.providers.pyenv.custom_install.rules.make_synthetic_targets": { + "description": null, + "documentation": null, + "input_gets": [], + "input_types": ["SyntheticPyenvTargetsRequest"], + "name": "pants.backend.python.providers.pyenv.custom_install.rules.make_synthetic_targets", + "output_type": "SyntheticAddressMaps", + "provider": "pants.backend.python.providers.experimental.pyenv.custom_install" + }, + "pants.backend.python.providers.pyenv.custom_install.rules.run_pyenv_install": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(RunRequest, PyenvInstallInfoRequest, ..)", + "Get(DownloadedExternalTool, ExternalToolRequest, ..)", + "Get(Digest, CreateDigest, ..)", + "Get(Digest, MergeDigests, ..)" + ], + "input_types": [ + "RunPyenvInstallFieldSet", + "Platform", + "PyenvPythonProviderSubsystem" + ], + "name": "pants.backend.python.providers.pyenv.custom_install.rules.run_pyenv_install", + "output_type": "RunRequest", + "provider": "pants.backend.python.providers.experimental.pyenv.custom_install" + }, + "pants.backend.python.providers.pyenv.rules.get_pyenv_install_info": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(EnvironmentVars, EnvironmentVarsRequest, ..)", + "Get(DownloadedExternalTool, ExternalToolRequest, ..)", + "Get(Digest, CreateDigest, ..)", + "Get(Digest, MergeDigests, ..)" + ], + "input_types": [ + "PyenvInstallInfoRequest", + "PyenvPythonProviderSubsystem", + "EnvironmentAware", + "Platform", + "PythonBuildStandaloneBinary" + ], + "name": "pants.backend.python.providers.pyenv.rules.get_pyenv_install_info", + "output_type": "RunRequest", + "provider": "pants.backend.python.providers.experimental.pyenv" + }, + "pants.backend.python.providers.pyenv.rules.get_python": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(EnvironmentVars, EnvironmentVarsRequest, ..)", + "Get(DownloadedExternalTool, ExternalToolRequest, ..)", + "Get(RunRequest, PyenvInstallInfoRequest, ..)", + "Get(ProcessResult, Process, ..)" + ], + "input_types": [ + "PyenvPythonProvider", + "PythonSetup", + "Platform", + "PyenvPythonProviderSubsystem" + ], + "name": "pants.backend.python.providers.pyenv.rules.get_python", + "output_type": "PythonExecutable", + "provider": "pants.backend.python.providers.experimental.pyenv" + }, "pants.backend.python.target_types_rules.generate_targets_from_pex_binaries": { "description": null, "documentation": null, @@ -58846,6 +68026,47 @@ "output_type": "MyPyConfigFile", "provider": "pants.backend.python.typecheck.mypy" }, + "pants.backend.python.typecheck.pyright.rules.pyright_determine_partitions": { + "description": "Determine if it is necessary to partition Pyright's input (interpreter_constraints and resolves)", + "documentation": null, + "input_gets": ["Get(CoarsenedTargets, CoarsenedTargetsRequest, ..)"], + "input_types": ["PyrightRequest", "Pyright", "PythonSetup"], + "name": "pants.backend.python.typecheck.pyright.rules.pyright_determine_partitions", + "output_type": "PyrightPartitions", + "provider": "pants.backend.experimental.python.typecheck.pyright" + }, + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck": { + "description": "Typecheck using Pyright", + "documentation": null, + "input_gets": [ + "Get(PyrightPartitions, PyrightRequest, ..)", + "Get(CheckResult, PyrightPartition, ..)" + ], + "input_types": ["PyrightRequest", "Pyright"], + "name": "pants.backend.python.typecheck.pyright.rules.pyright_typecheck", + "output_type": "CheckResults", + "provider": "pants.backend.experimental.python.typecheck.pyright" + }, + "pants.backend.python.typecheck.pyright.rules.pyright_typecheck_partition": { + "description": "Pyright typecheck each partition based on its interpreter_constraints", + "documentation": null, + "input_gets": [ + "Get(SourceFiles, SourceFilesRequest, ..)", + "Get(PythonSourceFiles, PythonSourceFilesRequest, ..)", + "Get(Pex, RequirementsPexRequest, ..)", + "Get(ConfigFiles, ConfigFilesRequest, ..)", + "Get(VenvPex, PexRequest, ..)", + "Get(Digest, CreateDigest, ..)", + "Get(DigestContents, Digest, ..)", + "Get(Digest, MergeDigests, ..)", + "Get(Process, NodeJSToolRequest, ..)", + "Get(FallibleProcessResult, Process, ..)" + ], + "input_types": ["PyrightPartition", "Pyright", "PexEnvironment"], + "name": "pants.backend.python.typecheck.pyright.rules.pyright_typecheck_partition", + "output_type": "CheckResult", + "provider": "pants.backend.experimental.python.typecheck.pyright" + }, "pants.backend.python.typecheck.pytype.rules.pytype_determine_partitions": { "description": "Determine if it is necessary to partition Pytype's input (interpreter_constraints and resolves)", "documentation": null, @@ -59632,10 +68853,65 @@ "output_type": "FirstPartyPythonMappingImpl", "provider": "pants.backend.experimental.python" }, + "pants.backend.rust.goals.tailor.find_putative_rust_targets": { + "description": "Determine candidate Rust targets to create", + "documentation": null, + "input_gets": ["Get(Paths, PathGlobs, ..)"], + "input_types": ["PutativeRustTargetsRequest"], + "name": "pants.backend.rust.goals.tailor.find_putative_rust_targets", + "output_type": "PutativeTargets", + "provider": "pants.backend.experimental.rust" + }, + "pants.backend.rust.lint.rustfmt.rules.rustfmt_fmt": { + "description": "Format with rustfmt", + "documentation": null, + "input_gets": [ + "Get(ProcessResult, RustToolchainProcess, ..)", + "Get(Snapshot, Digest, ..)" + ], + "input_types": ["Batch"], + "name": "pants.backend.rust.lint.rustfmt.rules.rustfmt_fmt", + "output_type": "FixResult", + "provider": "pants.backend.experimental.rust" + }, + "pants.backend.rust.util_rules.toolchains.find_rustup": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(EnvironmentVars, EnvironmentVarsRequest, ..)", + "Get(BinaryPaths, BinaryPathRequest, ..)" + ], + "input_types": ["RustSubsystem"], + "name": "pants.backend.rust.util_rules.toolchains.find_rustup", + "output_type": "RustupBinary", + "provider": "pants.backend.experimental.rust" + }, + "pants.backend.rust.util_rules.toolchains.rust_binary_path": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(ProcessResult, Process, ..)", + "Get(BinaryPaths, BinaryPathRequest, ..)" + ], + "input_types": ["RustBinaryPathRequest", "RustupBinary", "RustSubsystem"], + "name": "pants.backend.rust.util_rules.toolchains.rust_binary_path", + "output_type": "BinaryPath", + "provider": "pants.backend.experimental.rust" + }, + "pants.backend.rust.util_rules.toolchains.rust_toolchain_process": { + "description": null, + "documentation": null, + "input_gets": ["Get(BinaryPath, RustBinaryPathRequest, ..)"], + "input_types": ["RustToolchainProcess"], + "name": "pants.backend.rust.util_rules.toolchains.rust_toolchain_process", + "output_type": "Process", + "provider": "pants.backend.experimental.rust" + }, "pants.backend.scala.bsp.rules.bsp_resolve_scala_metadata": { "description": null, "documentation": null, "input_gets": [ + "Get(ScalaArtifactsForVersionResult, ScalaArtifactsForVersionRequest, ..)", "Get(ToolClasspath, ToolClasspathRequest, ..)", "Get(Snapshot, AddPrefix, ..)", "Get(JdkEnvironment, JdkRequest, ..)", @@ -60011,6 +69287,17 @@ "output_type": "CheckResults", "provider": "pants.backend.experimental.scala" }, + "pants.backend.scala.goals.debug_goals.dump_scala_source_analysis": { + "description": "`scala-dump-source-analysis` goal", + "documentation": null, + "input_gets": [ + "Get(ScalaSourceDependencyAnalysis, SourceFilesRequest, ..)" + ], + "input_types": ["Targets", "Console"], + "name": "pants.backend.scala.goals.debug_goals.dump_scala_source_analysis", + "output_type": "DumpScalaSourceAnalysis", + "provider": "pants.backend.experimental.scala.debug_goals" + }, "pants.backend.scala.goals.repl.create_scala_repl_request": { "description": null, "documentation": null, @@ -60431,6 +69718,15 @@ "output_type": "GeneratedSources", "provider": "pants.backend.shell" }, + "pants.backend.swift.goals.tailor.find_putative_targets": { + "description": "Determine candidate Swift targets to create", + "documentation": null, + "input_gets": ["Get(Paths, PathGlobs, ..)"], + "input_types": ["PutativeSwiftTargetsRequest", "AllOwnedSources"], + "name": "pants.backend.swift.goals.tailor.find_putative_targets", + "output_type": "PutativeTargets", + "provider": "pants.backend.experimental.swift" + }, "pants.backend.terraform.dependencies.get_terraform_providers": { "description": null, "documentation": null, @@ -60562,6 +69858,21 @@ "output_type": "FixResult", "provider": "pants.backend.experimental.terraform" }, + "pants.backend.terraform.lint.tfsec.rules.run_tfsec": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(DownloadedExternalTool, ExternalToolRequest, ..)", + "Get(SourceFiles, SourceFilesRequest, ..)", + "Get(ConfigFiles, ConfigFilesRequest, ..)", + "Get(Digest, MergeDigests, ..)", + "Get(FallibleProcessResult, Process, ..)" + ], + "input_types": ["Batch", "TFSec", "Platform"], + "name": "pants.backend.terraform.lint.tfsec.rules.run_tfsec", + "output_type": "LintResult", + "provider": "pants.backend.experimental.terraform.lint.tfsec" + }, "pants.backend.terraform.target_types.all_terraform_deployment_targets": { "description": null, "documentation": null, @@ -60604,6 +69915,30 @@ "output_type": "FixResult", "provider": "pants.backend.tools.preamble" }, + "pants.backend.tools.taplo.rules.partition_inputs": { + "description": null, + "documentation": null, + "input_gets": [], + "input_types": ["PartitionRequest", "Taplo"], + "name": "pants.backend.tools.taplo.rules.partition_inputs", + "output_type": "Partitions", + "provider": "pants.backend.tools.taplo" + }, + "pants.backend.tools.taplo.rules.taplo_fmt": { + "description": "Format with taplo", + "documentation": null, + "input_gets": [ + "Get(DownloadedExternalTool, ExternalToolRequest, ..)", + "Get(ConfigFiles, ConfigFilesRequest, ..)", + "Get(Digest, MergeDigests, ..)", + "Get(ProcessResult, Process, ..)", + "Get(Snapshot, Digest, ..)" + ], + "input_types": ["Batch", "Taplo", "Platform"], + "name": "pants.backend.tools.taplo.rules.taplo_fmt", + "output_type": "FixResult", + "provider": "pants.backend.tools.taplo" + }, "pants.backend.tools.workunit_logger.rules.construct_callback": { "description": null, "documentation": null, @@ -60648,6 +69983,90 @@ "output_type": "LintResult", "provider": "pants.backend.experimental.tools.yamllint" }, + "pants.backend.url_handlers.s3.register.access_aws_credentials": { + "description": null, + "documentation": null, + "input_gets": [], + "input_types": [], + "name": "pants.backend.url_handlers.s3.register.access_aws_credentials", + "output_type": "AWSCredentials", + "provider": "pants.backend.url_handlers.s3" + }, + "pants.backend.url_handlers.s3.register.download_file_from_path_s3_authority": { + "description": null, + "documentation": null, + "input_gets": ["Get(Digest, S3DownloadFile, ..)"], + "input_types": ["DownloadS3AuthorityPathStyleURL", "AWSCredentials"], + "name": "pants.backend.url_handlers.s3.register.download_file_from_path_s3_authority", + "output_type": "Digest", + "provider": "pants.backend.url_handlers.s3" + }, + "pants.backend.url_handlers.s3.register.download_file_from_s3_scheme": { + "description": null, + "documentation": null, + "input_gets": ["Get(Digest, S3DownloadFile, ..)"], + "input_types": ["DownloadS3SchemeURL"], + "name": "pants.backend.url_handlers.s3.register.download_file_from_s3_scheme", + "output_type": "Digest", + "provider": "pants.backend.url_handlers.s3" + }, + "pants.backend.url_handlers.s3.register.download_file_from_virtual_hosted_s3_authority": { + "description": null, + "documentation": null, + "input_gets": ["Get(Digest, S3DownloadFile, ..)"], + "input_types": [ + "DownloadS3AuthorityVirtualHostedStyleURL", + "AWSCredentials" + ], + "name": "pants.backend.url_handlers.s3.register.download_file_from_virtual_hosted_s3_authority", + "output_type": "Digest", + "provider": "pants.backend.url_handlers.s3" + }, + "pants.backend.url_handlers.s3.register.download_from_s3": { + "description": null, + "documentation": null, + "input_gets": ["Get(Digest, NativeDownloadFile, ..)"], + "input_types": ["S3DownloadFile", "AWSCredentials"], + "name": "pants.backend.url_handlers.s3.register.download_from_s3", + "output_type": "Digest", + "provider": "pants.backend.url_handlers.s3" + }, + "pants.backend.visibility.lint.check_visibility_rule_violations": { + "description": "Check for visibility rule violations", + "documentation": null, + "input_gets": [ + "Get(Addresses, DependenciesRequest, ..)", + "Get(DependenciesRuleApplication, DependenciesRuleApplicationRequest, ..)" + ], + "input_types": ["Batch", "Platform", "RunId"], + "name": "pants.backend.visibility.lint.check_visibility_rule_violations", + "output_type": "LintResult", + "provider": "pants.backend.experimental.visibility" + }, + "pants.backend.visibility.rules.build_file_visibility_implementation": { + "description": null, + "documentation": null, + "input_gets": [], + "input_types": ["BuildFileVisibilityImplementationRequest"], + "name": "pants.backend.visibility.rules.build_file_visibility_implementation", + "output_type": "BuildFileDependencyRulesImplementation", + "provider": "pants.backend.experimental.visibility" + }, + "pants.backend.visibility.rules.visibility_validate_dependencies": { + "description": null, + "documentation": null, + "input_gets": [ + "Get(DependenciesRuleApplication, DependenciesRuleApplicationRequest, ..)" + ], + "input_types": [ + "VisibilityValidateDependenciesRequest", + "VisibilitySubsystem", + "CurrentExecutingGoals" + ], + "name": "pants.backend.visibility.rules.visibility_validate_dependencies", + "output_type": "ValidatedDependencies", + "provider": "pants.backend.experimental.visibility" + }, "pants.bsp.rules.bsp_context": { "description": null, "documentation": null, @@ -62345,6 +71764,51 @@ "output_type": "TransitiveTargets", "provider": "pants.backend.experimental.go" }, + "pants.engine.internals.platform_rules.complete_environment_vars": { + "description": null, + "documentation": null, + "input_gets": ["Get(ProcessResult, Process, ..)"], + "input_types": [ + "SessionValues", + "EnvironmentTarget", + "GlobalOptions", + "EnvironmentsSubsystem" + ], + "name": "pants.engine.internals.platform_rules.complete_environment_vars", + "output_type": "CompleteEnvironmentVars", + "provider": "pants.backend.experimental.javascript" + }, + "pants.engine.internals.platform_rules.current_platform": { + "description": null, + "documentation": null, + "input_gets": [], + "input_types": [ + "EnvironmentTarget", + "GlobalOptions", + "EnvironmentsSubsystem" + ], + "name": "pants.engine.internals.platform_rules.current_platform", + "output_type": "Platform", + "provider": "pants.backend.experimental.javascript" + }, + "pants.engine.internals.platform_rules.environment_path_variable": { + "description": null, + "documentation": null, + "input_gets": ["Get(EnvironmentVars, EnvironmentVarsRequest, ..)"], + "input_types": [], + "name": "pants.engine.internals.platform_rules.environment_path_variable", + "output_type": "PathEnvironmentVariable", + "provider": "pants.backend.experimental.javascript" + }, + "pants.engine.internals.platform_rules.environment_vars_subset": { + "description": null, + "documentation": null, + "input_gets": [], + "input_types": ["CompleteEnvironmentVars", "EnvironmentVarsRequest"], + "name": "pants.engine.internals.platform_rules.environment_vars_subset", + "output_type": "EnvironmentVars", + "provider": "pants.backend.experimental.javascript" + }, "pants.engine.process.fallible_to_exec_result_or_raise": { "description": null, "documentation": "Converts a FallibleProcessResult to a ProcessResult or raises an error.", @@ -62506,6 +71970,15 @@ "output_type": "SymbolMapping", "provider": "pants.backend.experimental.java" }, + "pants.jvm.goals.debug_goals.jvm_symbol_map": { + "description": "`jvm-symbol-map` goal", + "documentation": null, + "input_gets": [], + "input_types": ["Console", "SymbolMapping"], + "name": "pants.jvm.goals.debug_goals.jvm_symbol_map", + "output_type": "JvmSymbolMap", + "provider": "pants.backend.experimental.java.debug_goals" + }, "pants.jvm.goals.lockfile.determine_jvm_user_resolves": { "description": null, "documentation": null, @@ -62665,6 +72138,15 @@ "output_type": "JdkEnvironment", "provider": "pants.backend.experimental.java" }, + "pants.jvm.non_jvm_dependencies.noop_classpath_entry": { + "description": "Compile with javac", + "documentation": null, + "input_gets": [], + "input_types": ["NoopClasspathEntryRequest"], + "name": "pants.jvm.non_jvm_dependencies.noop_classpath_entry", + "output_type": "FallibleClasspathEntry", + "provider": "pants.backend.experimental.openapi.codegen.java" + }, "pants.jvm.package.deploy_jar.deploy_jar_classpath": { "description": null, "documentation": null, @@ -63172,7 +72654,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -63180,7 +72662,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -63204,7 +72686,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -63212,7 +72694,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -63228,7 +72710,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -63244,7 +72726,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -63252,7 +72734,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -63268,7 +72750,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -63277,6 +72759,13 @@ "provider": "pants.core", "summary": "Generate a `_lockfile` target for each file in the `sources` field." }, + "_pyenv_install": { + "alias": "_pyenv_install", + "description": "", + "fields": [], + "provider": "pants.backend.python.providers.experimental.pyenv.custom_install", + "summary": "" + }, "adhoc_tool": { "alias": "adhoc_tool", "description": "Execute any runnable target for its side effects.\n\nExample BUILD file:\n\n adhoc_tool(\n runnable=\":python_source\",\n args=[\"\"],\n execution_dependencies=[\":scripts\"],\n output_directories=[\"results/\"],\n output_files=[\"logs/my-script.log\"],\n )\n\n shell_sources(name=\"scripts\")", @@ -63284,7 +72773,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -63292,7 +72781,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -63428,7 +72917,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -63436,7 +72925,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -63444,7 +72933,7 @@ { "alias": "output_path", "default": null, - "description": "Where the built asset should be located.\n\nIf undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`.\n\nWhen running `scie-pants-linux-x86_64 package`, this path will be prefixed by `--distdir` (e.g. `dist/`).\n\nWarning: setting this value risks naming collisions with other package targets you may have.", + "description": "Where the built asset should be located.\n\nIf undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`.\n\nWhen running `pants package`, this path will be prefixed by `--distdir` (e.g. `dist/`).\n\nWarning: setting this value risks naming collisions with other package targets you may have.", "provider": "", "required": false, "type_hint": "str | None" @@ -63452,7 +72941,7 @@ { "alias": "packages", "default": null, - "description": "Addresses to any targets that can be built with `scie-pants-linux-x86_64 package`, e.g. `[\"project:app\"]`.\n\nPants will build the assets as if you had run `scie-pants-linux-x86_64 package`. It will include the results in your archive using the same name they would normally have, but without the `--distdir` prefix (e.g. `dist/`).\n\nYou can include anything that can be built by `scie-pants-linux-x86_64 package`, e.g. a `pex_binary`, `python_aws_lambda_function`, or even another `archive`.", + "description": "Addresses to any targets that can be built with `pants package`, e.g. `[\"project:app\"]`.\n\nPants will build the assets as if you had run `pants package`. It will include the results in your archive using the same name they would normally have, but without the `--distdir` prefix (e.g. `dist/`).\n\nYou can include anything that can be built by `pants package`, e.g. a `pex_binary`, `python_aws_lambda_function`, or even another `archive`.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -63477,6 +72966,318 @@ "provider": "pants.core", "summary": "A ZIP or TAR file containing loose files and code packages." }, + "avro_source": { + "alias": "avro_source", + "description": "A single Avro file used to generate various languages.\n\nSee https://www.pantsbuild.org/v2.18/docs/avro.", + "fields": [ + { + "alias": "tags", + "default": null, + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "description", + "default": null, + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", + "provider": "", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "dependencies", + "default": null, + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "source", + "default": null, + "description": "A single file that belongs to this target.\n\nPath is relative to the BUILD file's directory, e.g. `source='example.ext'`.", + "provider": "", + "required": true, + "type_hint": "str" + }, + { + "alias": "jvm_jdk", + "default": null, + "description": "The major version of the JDK that this target should be built with. If not defined, will default to `[jvm].default_source_jdk`.", + "provider": "pants.backend.experimental.codegen.avro.java", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "jvm_resolve", + "default": null, + "description": "The resolve from `[jvm].resolves` to use when compiling this target.\n\nIf not defined, will default to `[jvm].default_resolve`.", + "provider": "pants.backend.experimental.codegen.avro.java", + "required": false, + "type_hint": "str | None" + } + ], + "provider": "pants.backend.experimental.codegen.avro.java", + "summary": "A single Avro file used to generate various languages." + }, + "avro_sources": { + "alias": "avro_sources", + "description": "Generate a `avro_source` target for each file in the `sources` field.", + "fields": [ + { + "alias": "tags", + "default": null, + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "description", + "default": null, + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", + "provider": "", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "sources", + "default": "('*.avsc', '*.avpr', '*.avdl')", + "description": "A list of files and globs that belong to this target.\n\nPaths are relative to the BUILD file's directory. You can ignore files/globs by prefixing them with `!`.\n\nExample: `sources=['example.avsc', 'new_*.avpr', '!old_ignore.avdl']`", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "overrides", + "default": null, + "description": "Override the field values for generated `avro_source` targets.\n\nExpects a dictionary of relative file paths and globs to a dictionary for the overrides. You may either use a string for a single path / glob, or a string tuple for multiple paths / globs. Each override is a dictionary of field names to the overridden value.\n\nFor example:\n\n overrides={\n \"bar.proto\": {\"description\": \"our user model\"]},\n (\"foo.proto\", \"bar.proto\"): {\"tags\": [\"overridden\"]},\n }\n\nFile paths and globs are relative to the BUILD file's directory. Every overridden file is validated to belong to this target's `sources` field.\n\nIf you'd like to override a field's value for every `avro_source` target generated by this target, change the field directly on this target rather than using the `overrides` field.\n\nYou can specify the same file name in multiple keys, so long as you don't override the same field more than one time for the file.", + "provider": "", + "required": false, + "type_hint": "Dict[Union[str, Tuple[str, ...]], Dict[str, Any]] | None" + }, + { + "alias": "jvm_jdk", + "default": null, + "description": "The major version of the JDK that this target should be built with. If not defined, will default to `[jvm].default_source_jdk`.", + "provider": "pants.backend.experimental.codegen.avro.java", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "jvm_resolve", + "default": null, + "description": "The resolve from `[jvm].resolves` to use when compiling this target.\n\nIf not defined, will default to `[jvm].default_resolve`.", + "provider": "pants.backend.experimental.codegen.avro.java", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "dependencies", + "default": null, + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + } + ], + "provider": "pants.backend.experimental.codegen.avro.java", + "summary": "Generate a `avro_source` target for each file in the `sources` field." + }, + "cc_source": { + "alias": "cc_source", + "description": "A single C/C++ source file or header file.", + "fields": [ + { + "alias": "tags", + "default": null, + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "description", + "default": null, + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", + "provider": "", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "dependencies", + "default": null, + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "source", + "default": null, + "description": "A single file that belongs to this target.\n\nPath is relative to the BUILD file's directory, e.g. `source='example.ext'`.", + "provider": "", + "required": true, + "type_hint": "str" + }, + { + "alias": "skip_clang_format", + "default": "False", + "description": "If true, don't run clang-format on this target's code.", + "provider": "pants.backend.experimental.cc.lint.clangformat", + "required": false, + "type_hint": "bool" + } + ], + "provider": "pants.backend.experimental.cc", + "summary": "A single C/C++ source file or header file." + }, + "cc_sources": { + "alias": "cc_sources", + "description": "Generate a `cc_source` target for each file in the `sources` field.", + "fields": [ + { + "alias": "tags", + "default": null, + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "description", + "default": null, + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", + "provider": "", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "sources", + "default": "('*.h', '*.hh', '*.hpp', '*.c', '*.cc', '*.cpp', '*.cxx')", + "description": "A list of files and globs that belong to this target.\n\nPaths are relative to the BUILD file's directory. You can ignore files/globs by prefixing them with `!`.\n\nExample: `sources=['example.cpp', 'new_*.cc', '!old_ignore.cc']`", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "skip_clang_format", + "default": "False", + "description": "If true, don't run clang-format on this target's code.", + "provider": "pants.backend.experimental.cc.lint.clangformat", + "required": false, + "type_hint": "bool" + }, + { + "alias": "dependencies", + "default": null, + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + } + ], + "provider": "pants.backend.experimental.cc", + "summary": "Generate a `cc_source` target for each file in the `sources` field." + }, + "cue_package": { + "alias": "cue_package", + "description": "The `cue_package` target defines a CUE package. Within a module, CUE organizes files grouped by package. A package can be defined within the module or externally. Definitions and constraints can be split across files within a package, and even organized across directories.\n\nCUE docs: https://cuelang.org/docs/concepts/packages/", + "fields": [ + { + "alias": "tags", + "default": null, + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "description", + "default": null, + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", + "provider": "", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "sources", + "default": "('*.cue',)", + "description": "A list of files and globs that belong to this target.\n\nPaths are relative to the BUILD file's directory. You can ignore files/globs by prefixing them with `!`.\n\nExample: `sources=['schema.cue', 'lib/**/*.cue']`", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + } + ], + "provider": "pants.backend.experimental.cue", + "summary": "The `cue_package` target defines a CUE package. Within a module, CUE organizes files grouped by package. A package can be defined within the module or externally. Definitions and constraints can be split across files within a package, and even organized across directories." + }, + "debian_package": { + "alias": "debian_package", + "description": "\"\n A Debian package containing an artifact.\n\n This will not install the package, only create a .deb file\n that you can then distribute and install, e.g. via dpkg.\n\n \"See https://www.pantsbuild.org/v2.18/docs/debian-package.", + "fields": [ + { + "alias": "tags", + "default": null, + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "description", + "default": null, + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", + "provider": "", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "output_path", + "default": null, + "description": "Where the built asset should be located.\n\nIf undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`.\n\nWhen running `pants package`, this path will be prefixed by `--distdir` (e.g. `dist/`).\n\nWarning: setting this value risks naming collisions with other package targets you may have.", + "provider": "", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "sources", + "default": null, + "description": "Paths that will be included in the package to be produced such as Debian metadata files. You must include a DEBIAN/control file.\n\nPaths are relative to the BUILD file's directory and all paths must belong to the same parent directory. For example, `sources=['dir/**']` is valid, but `sources=['top_level_file.txt']` and `sources=['dir1/*', 'dir2/*']` are not.", + "provider": "", + "required": true, + "type_hint": "Iterable[str]" + }, + { + "alias": "symlinks", + "default": null, + "description": "Symlinks to create for each target being packaged.\n\nFor example, you could set symlinks={'command-name': 'entrypoint-name'}.", + "provider": "", + "required": false, + "type_hint": "Dict[str, str] | None" + }, + { + "alias": "install_prefix", + "default": "'/opt'", + "description": "Absolute path to a directory where Debian package will be installed to.", + "provider": "", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "packages", + "default": null, + "description": "Addresses to any targets that can be built with `pants package`, e.g. `[\"project:app\"]`.\n\nPants will build the assets as if you had run `pants package`. It will include the results in your Debian package using the same name they would normally have, but without the `--distdir` prefix (e.g. `dist/`).\n\nYou can include anything that can be uilt by `pants package`, e.g. a `pex_binary`, a `python_distribution`, or an `archive`.", + "provider": "", + "required": true, + "type_hint": "Iterable[str]" + } + ], + "provider": "pants.backend.experimental.debian", + "summary": "\" A Debian package containing an artifact." + }, "deploy_jar": { "alias": "deploy_jar", "description": "A `jar` file with first and third-party code bundled for deploys.\n\nThe JAR will contain class files for both first-party code and third-party dependencies, all in a common directory structure.", @@ -63484,7 +73285,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -63492,7 +73293,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -63508,7 +73309,7 @@ { "alias": "output_path", "default": null, - "description": "Where the built asset should be located.\n\nIf undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`.\n\nWhen running `scie-pants-linux-x86_64 package`, this path will be prefixed by `--distdir` (e.g. `dist/`).\n\nWarning: setting this value risks naming collisions with other package targets you may have.", + "description": "Where the built asset should be located.\n\nIf undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`.\n\nWhen running `pants package`, this path will be prefixed by `--distdir` (e.g. `dist/`).\n\nWarning: setting this value risks naming collisions with other package targets you may have.", "provider": "", "required": false, "type_hint": "str | None" @@ -63516,7 +73317,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -63580,7 +73381,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -63588,7 +73389,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -63596,7 +73397,7 @@ { "alias": "image", "default": null, - "description": "The docker image ID to use when this environment is loaded.\n\nThis value may be any image identifier that the local Docker installation can accept. This includes image names with or without tags (e.g. `centos6` or `centos6:latest`), or image names with an immutable digest (e.g. `centos@sha256:`).\n\nThe choice of image ID can affect the reproducibility of builds. Consider using an immutable digest if reproducibility is needed, but regularly ensure that the image is free of relevant bugs or security vulnerabilities.", + "description": "The docker image ID to use when this environment is loaded.\n\nThis value may be any image identifier that the local Docker installation can accept. This includes image names with or without tags (e.g. `centos6` or `centos6:latest`), or image names with an immutable digest (e.g. `centos@sha256:`).\n\nThe choice of image ID can affect the reproducibility of builds. Consider using an immutable digest if reproducibility is needed, but regularly ensure that the image is free of relevant bugs or security vulnerabilities.\n\nNote that in order to use an image as a `docker_environment` it must have a few tools: - `/bin/sh` - `/usr/bin/env` - `bash` - `tar`\n\nWhile most images will have these preinstalled, users of base images such as Distroless or scratch will need to bake these tools into the image themselves. All of these except `bash` are available via busybox.", "provider": "", "required": true, "type_hint": "str" @@ -63618,18 +73419,26 @@ "type_hint": "str | None" }, { - "alias": "apache_thrift_thrift_search_paths", + "alias": "golang_cgo_c_flags", "default": null, - "description": "Overrides the default value from the option `[apache-thrift].thrift_search_paths` when this environment target is active.", - "provider": "pants.backend.codegen.thrift.apache.python", + "description": "Overrides the default value from the option `[golang].cgo_c_flags` when this environment target is active.", + "provider": "pants.backend.experimental.go", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "nodejs_executable_search_paths", + "alias": "go_generate_env_vars", "default": null, - "description": "Overrides the default value from the option `[nodejs].executable_search_paths` when this environment target is active.", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "description": "Overrides the default value from the option `[go-generate].env_vars` when this environment target is active.", + "provider": "pants.backend.experimental.go", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "docker_executable_search_paths", + "default": null, + "description": "Overrides the default value from the option `[docker].executable_search_paths` when this environment target is active.", + "provider": "pants.backend.docker", "required": false, "type_hint": "Iterable[str] | None" }, @@ -63642,98 +73451,106 @@ "type_hint": "str | None" }, { - "alias": "python_native_code_ld_flags", + "alias": "golang_go_search_paths", "default": null, - "description": "Overrides the default value from the option `[python-native-code].ld_flags` when this environment target is active.", - "provider": "pants.core", + "description": "Overrides the default value from the option `[golang].go_search_paths` when this environment target is active.", + "provider": "pants.backend.experimental.go", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "docker_env_vars", + "alias": "pex_executable_search_paths", "default": null, - "description": "Overrides the default value from the option `[docker].env_vars` when this environment target is active.", - "provider": "pants.backend.docker", + "description": "Overrides the default value from the option `[pex].executable_search_paths` when this environment target is active.", + "provider": "pants.core", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "golang_cgo_gcc_binary_name", + "alias": "golang_subprocess_env_vars", "default": null, - "description": "Overrides the default value from the option `[golang].cgo_gcc_binary_name` when this environment target is active.", + "description": "Overrides the default value from the option `[golang].subprocess_env_vars` when this environment target is active.", "provider": "pants.backend.experimental.go", "required": false, - "type_hint": "str | None" + "type_hint": "Iterable[str] | None" }, { - "alias": "test_extra_env_vars", + "alias": "nodejs_search_path", "default": null, - "description": "Overrides the default value from the option `[test].extra_env_vars` when this environment target is active.", - "provider": "pants.core", + "description": "Overrides the default value from the option `[nodejs].search_path` when this environment target is active.", + "provider": "pants.backend.experimental.javascript", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "python_bootstrap_search_path", + "alias": "golang_cgo_fortran_flags", "default": null, - "description": "Overrides the default value from the option `[python-bootstrap].search_path` when this environment target is active.", - "provider": "pants.core", + "description": "Overrides the default value from the option `[golang].cgo_fortran_flags` when this environment target is active.", + "provider": "pants.backend.experimental.go", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "golang_go_search_paths", + "alias": "golang_cgo_tool_search_paths", "default": null, - "description": "Overrides the default value from the option `[golang].go_search_paths` when this environment target is active.", + "description": "Overrides the default value from the option `[golang].cgo_tool_search_paths` when this environment target is active.", "provider": "pants.backend.experimental.go", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "golang_cgo_fortran_flags", + "alias": "golang_cgo_gcc_binary_name", "default": null, - "description": "Overrides the default value from the option `[golang].cgo_fortran_flags` when this environment target is active.", + "description": "Overrides the default value from the option `[golang].cgo_gcc_binary_name` when this environment target is active.", "provider": "pants.backend.experimental.go", "required": false, + "type_hint": "str | None" + }, + { + "alias": "apache_thrift_thrift_search_paths", + "default": null, + "description": "Overrides the default value from the option `[apache-thrift].thrift_search_paths` when this environment target is active.", + "provider": "pants.backend.codegen.thrift.apache.python", + "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "python_native_code_cpp_flags", + "alias": "python_native_code_ld_flags", "default": null, - "description": "Overrides the default value from the option `[python-native-code].cpp_flags` when this environment target is active.", + "description": "Overrides the default value from the option `[python-native-code].ld_flags` when this environment target is active.", "provider": "pants.core", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "go_generate_env_vars", + "alias": "shell_setup_executable_search_paths", "default": null, - "description": "Overrides the default value from the option `[go-generate].env_vars` when this environment target is active.", - "provider": "pants.backend.experimental.go", + "description": "Overrides the default value from the option `[shell-setup].executable_search_paths` when this environment target is active.", + "provider": "pants.backend.shell", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "golang_cgo_c_flags", + "alias": "test_extra_env_vars", "default": null, - "description": "Overrides the default value from the option `[golang].cgo_c_flags` when this environment target is active.", - "provider": "pants.backend.experimental.go", + "description": "Overrides the default value from the option `[test].extra_env_vars` when this environment target is active.", + "provider": "pants.core", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "jvm_global_options", + "alias": "golang_external_linker_binary_name", "default": null, - "description": "Overrides the default value from the option `[jvm].global_options` when this environment target is active.", - "provider": "pants.backend.experimental.java", + "description": "Overrides the default value from the option `[golang].external_linker_binary_name` when this environment target is active.", + "provider": "pants.backend.experimental.go", "required": false, - "type_hint": "Iterable[str] | None" + "type_hint": "str | None" }, { - "alias": "pex_executable_search_paths", + "alias": "docker_env_vars", "default": null, - "description": "Overrides the default value from the option `[pex].executable_search_paths` when this environment target is active.", - "provider": "pants.core", + "description": "Overrides the default value from the option `[docker].env_vars` when this environment target is active.", + "provider": "pants.backend.docker", "required": false, "type_hint": "Iterable[str] | None" }, @@ -63746,92 +73563,84 @@ "type_hint": "str | None" }, { - "alias": "golang_subprocess_env_vars", - "default": null, - "description": "Overrides the default value from the option `[golang].subprocess_env_vars` when this environment target is active.", - "provider": "pants.backend.experimental.go", - "required": false, - "type_hint": "Iterable[str] | None" - }, - { - "alias": "nodejs_search_path", + "alias": "jvm_global_options", "default": null, - "description": "Overrides the default value from the option `[nodejs].search_path` when this environment target is active.", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "description": "Overrides the default value from the option `[jvm].global_options` when this environment target is active.", + "provider": "pants.backend.experimental.java", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "golang_cgo_tool_search_paths", + "alias": "python_native_code_cpp_flags", "default": null, - "description": "Overrides the default value from the option `[golang].cgo_tool_search_paths` when this environment target is active.", - "provider": "pants.backend.experimental.go", + "description": "Overrides the default value from the option `[python-native-code].cpp_flags` when this environment target is active.", + "provider": "pants.core", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "docker_executable_search_paths", + "alias": "nodejs_corepack_env_vars", "default": null, - "description": "Overrides the default value from the option `[docker].executable_search_paths` when this environment target is active.", - "provider": "pants.backend.docker", + "description": "Overrides the default value from the option `[nodejs].corepack_env_vars` when this environment target is active.", + "provider": "pants.backend.experimental.javascript", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "python_bootstrap_names", + "alias": "golang_cgo_linker_flags", "default": null, - "description": "Overrides the default value from the option `[python-bootstrap].names` when this environment target is active.", - "provider": "pants.core", + "description": "Overrides the default value from the option `[golang].cgo_linker_flags` when this environment target is active.", + "provider": "pants.backend.experimental.go", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "subprocess_environment_env_vars", + "alias": "python_bootstrap_search_path", "default": null, - "description": "Overrides the default value from the option `[subprocess-environment].env_vars` when this environment target is active.", + "description": "Overrides the default value from the option `[python-bootstrap].search_path` when this environment target is active.", "provider": "pants.core", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "nodejs_corepack_env_vars", + "alias": "pyenv_python_provider_installation_extra_env_vars", "default": null, - "description": "Overrides the default value from the option `[nodejs].corepack_env_vars` when this environment target is active.", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "description": "Overrides the default value from the option `[pyenv-python-provider].installation_extra_env_vars` when this environment target is active.", + "provider": "pants.backend.python.providers.experimental.pyenv", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "golang_cgo_linker_flags", + "alias": "golang_cgo_cxx_flags", "default": null, - "description": "Overrides the default value from the option `[golang].cgo_linker_flags` when this environment target is active.", + "description": "Overrides the default value from the option `[golang].cgo_cxx_flags` when this environment target is active.", "provider": "pants.backend.experimental.go", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "shell_setup_executable_search_paths", + "alias": "nodejs_executable_search_paths", "default": null, - "description": "Overrides the default value from the option `[shell-setup].executable_search_paths` when this environment target is active.", - "provider": "pants.backend.shell", + "description": "Overrides the default value from the option `[nodejs].executable_search_paths` when this environment target is active.", + "provider": "pants.backend.experimental.javascript", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "golang_cgo_cxx_flags", + "alias": "python_bootstrap_names", "default": null, - "description": "Overrides the default value from the option `[golang].cgo_cxx_flags` when this environment target is active.", - "provider": "pants.backend.experimental.go", + "description": "Overrides the default value from the option `[python-bootstrap].names` when this environment target is active.", + "provider": "pants.core", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "golang_external_linker_binary_name", + "alias": "subprocess_environment_env_vars", "default": null, - "description": "Overrides the default value from the option `[golang].external_linker_binary_name` when this environment target is active.", - "provider": "pants.backend.experimental.go", + "description": "Overrides the default value from the option `[subprocess-environment].env_vars` when this environment target is active.", + "provider": "pants.core", "required": false, - "type_hint": "str | None" + "type_hint": "Iterable[str] | None" } ], "provider": "pants.core", @@ -63844,7 +73653,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -63852,7 +73661,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -63868,7 +73677,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -63956,7 +73765,7 @@ { "alias": "skip_push", "default": "False", - "description": "If true, do not push this image to registries when running `scie-pants-linux-x86_64 publish`.", + "description": "If true, do not push this image to registries when running `pants publish`.", "provider": "", "required": false, "type_hint": "bool" @@ -64004,7 +73813,7 @@ { "alias": "output_path", "default": null, - "description": "Where the built asset should be located.\n\nIf undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`.\n\nWhen running `scie-pants-linux-x86_64 package`, this path will be prefixed by `--distdir` (e.g. `dist/`).\n\nWarning: setting this value risks naming collisions with other package targets you may have.", + "description": "Where the built asset should be located.\n\nIf undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`.\n\nWhen running `pants package`, this path will be prefixed by `--distdir` (e.g. `dist/`).\n\nWarning: setting this value risks naming collisions with other package targets you may have.", "provider": "", "required": false, "type_hint": "str | None" @@ -64036,7 +73845,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -64044,7 +73853,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -64132,7 +73941,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -64140,7 +73949,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -64172,7 +73981,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -64180,7 +73989,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -64212,7 +74021,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -64220,7 +74029,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -64252,7 +74061,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -64260,7 +74069,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -64292,7 +74101,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -64300,7 +74109,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -64332,7 +74141,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -64340,7 +74149,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -64372,7 +74181,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -64380,7 +74189,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -64388,7 +74197,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -64412,7 +74221,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -64420,7 +74229,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -64444,7 +74253,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -64460,7 +74269,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -64468,7 +74277,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -64476,7 +74285,7 @@ { "alias": "output_path", "default": null, - "description": "Where the built asset should be located.\n\nIf undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`.\n\nWhen running `scie-pants-linux-x86_64 package`, this path will be prefixed by `--distdir` (e.g. `dist/`).\n\nWarning: setting this value risks naming collisions with other package targets you may have.", + "description": "Where the built asset should be located.\n\nIf undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`.\n\nWhen running `pants package`, this path will be prefixed by `--distdir` (e.g. `dist/`).\n\nWarning: setting this value risks naming collisions with other package targets you may have.", "provider": "", "required": false, "type_hint": "str | None" @@ -64572,7 +74381,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -64580,7 +74389,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -64652,7 +74461,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -64660,7 +74469,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -64668,7 +74477,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -64752,6 +74561,22 @@ "provider": "pants.backend.experimental.go", "required": false, "type_hint": "bool" + }, + { + "alias": "skip_go_vet", + "default": "False", + "description": "If true, don't run `go vet` on this target's code.", + "provider": "pants.backend.experimental.go.lint.vet", + "required": false, + "type_hint": "bool" + }, + { + "alias": "skip_golangci_lint", + "default": "False", + "description": "If true, don't run `golangci-lint` on this target's code.", + "provider": "pants.backend.experimental.go.lint.golangci_lint", + "required": false, + "type_hint": "bool" } ], "provider": "pants.backend.experimental.go", @@ -64764,7 +74589,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -64772,7 +74597,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -64780,7 +74605,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -64804,7 +74629,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -64812,7 +74637,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -64860,7 +74685,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -64868,7 +74693,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -64892,7 +74717,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -64900,7 +74725,7 @@ { "alias": "output_path", "default": null, - "description": "Where the built directory tree should be located.\n\nIf undefined, this will use the path to the BUILD file, For example, `src/charts/mychart:tgt_name` would be `src.charts.mychart/tgt_name/`.\n\nRegardless of whether you use the default or set this field, the path will end with Helms's file format of `-.tgz`, where `chart_name` and `chart_version` are the values extracted from the Chart.yaml file. So, using the default for this field, the target `src/charts/mychart:tgt_name` might have a final path like `src.charts.mychart/tgt_name/mychart-0.1.0.tgz`.\n\nWhen running `scie-pants-linux-x86_64 package`, this path will be prefixed by `--distdir` (e.g. `dist/`).\n\nWarning: setting this value risks naming collisions with other package targets you may have.", + "description": "Where the built directory tree should be located.\n\nIf undefined, this will use the path to the BUILD file, For example, `src/charts/mychart:tgt_name` would be `src.charts.mychart/tgt_name/`.\n\nRegardless of whether you use the default or set this field, the path will end with Helms's file format of `-.tgz`, where `chart_name` and `chart_version` are the values extracted from the Chart.yaml file. So, using the default for this field, the target `src/charts/mychart:tgt_name` might have a final path like `src.charts.mychart/tgt_name/mychart-0.1.0.tgz`.\n\nWhen running `pants package`, this path will be prefixed by `--distdir` (e.g. `dist/`).\n\nWarning: setting this value risks naming collisions with other package targets you may have.", "provider": "", "required": false, "type_hint": "str | None" @@ -64940,7 +74765,7 @@ { "alias": "skip_push", "default": "False", - "description": "If set to true, do not push this Helm chart to registries when running `scie-pants-linux-x86_64 publish`.", + "description": "If set to true, do not push this Helm chart to registries when running `pants publish`.", "provider": "", "required": false, "type_hint": "bool" @@ -64948,10 +74773,66 @@ { "alias": "skip_lint", "default": "False", - "description": "If set to true, do not run any linting in this Helm chart when running `scie-pants-linux-x86_64 lint`.", + "description": "If set to true, do not run any linting in this Helm chart when running `pants lint`.", "provider": "", "required": false, "type_hint": "bool" + }, + { + "alias": "kubeconform_ignore_missing_schemas", + "default": null, + "description": "Whether to fail if there are missing schemas for custom resources.", + "provider": "pants.backend.experimental.helm.check.kubeconform", + "required": false, + "type_hint": "bool | None" + }, + { + "alias": "kubeconform_reject_kinds", + "default": null, + "description": "List of kinds or GVKs to reject.", + "provider": "pants.backend.experimental.helm.check.kubeconform", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "kubeconform_ignore_sources", + "default": null, + "description": "Regular expression patterns specifying paths to ignore.", + "provider": "pants.backend.experimental.helm.check.kubeconform", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "kubeconform_skip_kinds", + "default": null, + "description": "List of kinds or GVKs to ignore.", + "provider": "pants.backend.experimental.helm.check.kubeconform", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "skip_kubeconform", + "default": "False", + "description": "If set to true, do not run any kubeconform checking in this Helm target when running `pants check`.", + "provider": "pants.backend.experimental.helm.check.kubeconform", + "required": false, + "type_hint": "bool" + }, + { + "alias": "kubeconform_strict", + "default": null, + "description": "Run Kubeconform in strict mode.", + "provider": "pants.backend.experimental.helm.check.kubeconform", + "required": false, + "type_hint": "bool | None" + }, + { + "alias": "kubeconform_kubernetes_version", + "default": null, + "description": "Kubernetes version to use for the validation.", + "provider": "pants.backend.experimental.helm.check.kubeconform", + "required": false, + "type_hint": "str | None" } ], "provider": "pants.backend.experimental.helm", @@ -64964,7 +74845,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -64972,7 +74853,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -64996,7 +74877,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -65064,6 +74945,62 @@ "provider": "", "required": false, "type_hint": "bool" + }, + { + "alias": "kubeconform_ignore_missing_schemas", + "default": null, + "description": "Whether to fail if there are missing schemas for custom resources.", + "provider": "pants.backend.experimental.helm.check.kubeconform", + "required": false, + "type_hint": "bool | None" + }, + { + "alias": "kubeconform_reject_kinds", + "default": null, + "description": "List of kinds or GVKs to reject.", + "provider": "pants.backend.experimental.helm.check.kubeconform", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "kubeconform_ignore_sources", + "default": null, + "description": "Regular expression patterns specifying paths to ignore.", + "provider": "pants.backend.experimental.helm.check.kubeconform", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "kubeconform_skip_kinds", + "default": null, + "description": "List of kinds or GVKs to ignore.", + "provider": "pants.backend.experimental.helm.check.kubeconform", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "skip_kubeconform", + "default": "False", + "description": "If set to true, do not run any kubeconform checking in this Helm target when running `pants check`.", + "provider": "pants.backend.experimental.helm.check.kubeconform", + "required": false, + "type_hint": "bool" + }, + { + "alias": "kubeconform_strict", + "default": null, + "description": "Run Kubeconform in strict mode.", + "provider": "pants.backend.experimental.helm.check.kubeconform", + "required": false, + "type_hint": "bool | None" + }, + { + "alias": "kubeconform_kubernetes_version", + "default": null, + "description": "Kubernetes version to use for the validation.", + "provider": "pants.backend.experimental.helm.check.kubeconform", + "required": false, + "type_hint": "str | None" } ], "provider": "pants.backend.experimental.helm", @@ -65076,7 +75013,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -65084,7 +75021,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -65100,7 +75037,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -65132,7 +75069,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -65140,7 +75077,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -65156,7 +75093,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -65196,7 +75133,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -65204,7 +75141,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -65212,7 +75149,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -65276,7 +75213,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -65284,7 +75221,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -65308,7 +75245,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -65349,6 +75286,246 @@ "provider": "pants.backend.experimental.java", "summary": "Generate a `java_source` target for each file in the `sources` field." }, + "javascript_source": { + "alias": "javascript_source", + "description": "A single Javascript source file.", + "fields": [ + { + "alias": "tags", + "default": null, + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "description", + "default": null, + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", + "provider": "", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "dependencies", + "default": null, + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "source", + "default": null, + "description": "A single file that belongs to this target.\n\nPath is relative to the BUILD file's directory, e.g. `source='example.ext'`.", + "provider": "", + "required": true, + "type_hint": "str" + }, + { + "alias": "skip_prettier", + "default": "False", + "description": "If true, don't run Prettier on this target's code.", + "provider": "pants.backend.experimental.javascript.lint.prettier", + "required": false, + "type_hint": "bool" + } + ], + "provider": "pants.backend.experimental.javascript", + "summary": "A single Javascript source file." + }, + "javascript_sources": { + "alias": "javascript_sources", + "description": "Generate a `javascript_source` target for each file in the `sources` field.", + "fields": [ + { + "alias": "tags", + "default": null, + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "description", + "default": null, + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", + "provider": "", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "sources", + "default": "('*.js', '*.cjs', '*.mjs')", + "description": "A list of files and globs that belong to this target.\n\nPaths are relative to the BUILD file's directory. You can ignore files/globs by prefixing them with `!`.\n\nExample: `sources=['utils.js', 'subdir/*.js', '!ignore_me.js']`", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "overrides", + "default": null, + "description": "Override the field values for generated `javascript_source` targets.\n\nExpects a dictionary of relative file paths and globs to a dictionary for the overrides. You may either use a string for a single path / glob, or a string tuple for multiple paths / globs. Each override is a dictionary of field names to the overridden value.\n\nFor example:\n\n overrides={\n \"foo.js\": {\"skip_prettier\": True},\n \"bar.js\": {\"skip_prettier\": True},\n (\"foo.js\", \"bar.js\"): {\"tags\": [\"no_lint\"]},\n }\n\nFile paths and globs are relative to the BUILD file's directory. Every overridden file is validated to belong to this target's `sources` field.\n\nIf you'd like to override a field's value for every `javascript_source` target generated by this target, change the field directly on this target rather than using the `overrides` field.\n\nYou can specify the same file name in multiple keys, so long as you don't override the same field more than one time for the file.", + "provider": "", + "required": false, + "type_hint": "Dict[Union[str, Tuple[str, ...]], Dict[str, Any]] | None" + }, + { + "alias": "skip_prettier", + "default": "False", + "description": "If true, don't run Prettier on this target's code.", + "provider": "pants.backend.experimental.javascript.lint.prettier", + "required": false, + "type_hint": "bool" + }, + { + "alias": "dependencies", + "default": null, + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + } + ], + "provider": "pants.backend.experimental.javascript", + "summary": "Generate a `javascript_source` target for each file in the `sources` field." + }, + "javascript_test": { + "alias": "javascript_test", + "description": "A single Javascript test file.", + "fields": [ + { + "alias": "tags", + "default": null, + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "description", + "default": null, + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", + "provider": "", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "dependencies", + "default": null, + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "source", + "default": null, + "description": "A single file that belongs to this target.\n\nPath is relative to the BUILD file's directory, e.g. `source='example.ext'`.", + "provider": "", + "required": true, + "type_hint": "str" + }, + { + "alias": "timeout", + "default": null, + "description": "A timeout (in seconds) used by each test file belonging to this target.\n\nIf unset, will default to `[test].timeout_default`; if that option is also unset, then the test will never time out. Will never exceed `[test].timeout_maximum`. Only applies if the option `--test-timeouts` is set to true (the default).", + "provider": "", + "required": false, + "type_hint": "int | None" + }, + { + "alias": "extra_env_vars", + "default": null, + "description": "Additional environment variables to include in test processes.\n\nEntries are strings in the form `ENV_VAR=value` to use explicitly; or just `ENV_VAR` to copy the value of a variable in Pants's own environment.\n\nThis will be merged with and override values from `[test].extra_env_vars`.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "batch_compatibility_tag", + "default": null, + "description": "An arbitrary value used to mark the test files belonging to this target as valid for batched execution.\n\nIt's _sometimes_ safe to run multiple `javascript_test`s within a single test runner process, and doing so can give significant wins by allowing reuse of expensive test setup / teardown logic. To opt into this behavior, set this field to an arbitrary non-empty string on all the `javascript_test` targets that are safe/compatible to run in the same process.\n\nIf this field is left unset on a target, the target is assumed to be incompatible with all others and will run in a dedicated `nodejs test runner` process.\n\nIf this field is set on a target, and its value is different from the value on some other test `javascript_test`, then the two targets are explicitly incompatible and are guaranteed to not run in the same `nodejs test runner` process.\n\nIf this field is set on a target, and its value is the same as the value on some other `javascript_test`, then the two targets are explicitly compatible and _may_ run in the same test runner process. Compatible tests may not end up in the same test runner batch if:\n\n * There are \"too many\" compatible tests in a partition, as determined by the `[test].batch_size` config parameter, or\n * Compatible tests have some incompatibility in Pants metadata (i.e. different `resolve`s or `extra_env_vars`).\n\nWhen tests with the same `batch_compatibility_tag` have incompatibilities in some other Pants metadata, they will be automatically split into separate batches. This way you can set a high-level `batch_compatibility_tag` using `__defaults__` and then have tests continue to work as you tweak BUILD metadata on specific targets.", + "provider": "", + "required": false, + "type_hint": "str | None" + } + ], + "provider": "pants.backend.experimental.javascript", + "summary": "A single Javascript test file." + }, + "javascript_tests": { + "alias": "javascript_tests", + "description": "Generate a `javascript_test` target for each file in the `sources` field.", + "fields": [ + { + "alias": "tags", + "default": null, + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "description", + "default": null, + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", + "provider": "", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "sources", + "default": "('*.test.js', '*.test.cjs', '*.test.mjs')", + "description": "A list of files and globs that belong to this target.\n\nPaths are relative to the BUILD file's directory. You can ignore files/globs by prefixing them with `!`.\n\nExample: `sources=['utils.test.js', 'subdir/*.test.mjs', '!ignore_me.test.js']`", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "overrides", + "default": null, + "description": "Override the field values for generated `javascript_test` targets.\n\nExpects a dictionary of relative file paths and globs to a dictionary for the overrides. You may either use a string for a single path / glob, or a string tuple for multiple paths / globs. Each override is a dictionary of field names to the overridden value.\n\nFor example:\n\n overrides={\n \"foo.test.js\": {\"timeout\": 120},\n \"bar.test.js\": {\"timeout\": 200},\n (\"foo.test.js\", \"bar.test.js\"): {\"tags\": [\"slow_tests\"]},\n }\n\nFile paths and globs are relative to the BUILD file's directory. Every overridden file is validated to belong to this target's `sources` field.\n\nIf you'd like to override a field's value for every `javascript_test` target generated by this target, change the field directly on this target rather than using the `overrides` field.\n\nYou can specify the same file name in multiple keys, so long as you don't override the same field more than one time for the file.", + "provider": "", + "required": false, + "type_hint": "Dict[Union[str, Tuple[str, ...]], Dict[str, Any]] | None" + }, + { + "alias": "dependencies", + "default": null, + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "timeout", + "default": null, + "description": "A timeout (in seconds) used by each test file belonging to this target.\n\nIf unset, will default to `[test].timeout_default`; if that option is also unset, then the test will never time out. Will never exceed `[test].timeout_maximum`. Only applies if the option `--test-timeouts` is set to true (the default).", + "provider": "", + "required": false, + "type_hint": "int | None" + }, + { + "alias": "extra_env_vars", + "default": null, + "description": "Additional environment variables to include in test processes.\n\nEntries are strings in the form `ENV_VAR=value` to use explicitly; or just `ENV_VAR` to copy the value of a variable in Pants's own environment.\n\nThis will be merged with and override values from `[test].extra_env_vars`.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "batch_compatibility_tag", + "default": null, + "description": "An arbitrary value used to mark the test files belonging to this target as valid for batched execution.\n\nIt's _sometimes_ safe to run multiple `javascript_test`s within a single test runner process, and doing so can give significant wins by allowing reuse of expensive test setup / teardown logic. To opt into this behavior, set this field to an arbitrary non-empty string on all the `javascript_test` targets that are safe/compatible to run in the same process.\n\nIf this field is left unset on a target, the target is assumed to be incompatible with all others and will run in a dedicated `nodejs test runner` process.\n\nIf this field is set on a target, and its value is different from the value on some other test `javascript_test`, then the two targets are explicitly incompatible and are guaranteed to not run in the same `nodejs test runner` process.\n\nIf this field is set on a target, and its value is the same as the value on some other `javascript_test`, then the two targets are explicitly compatible and _may_ run in the same test runner process. Compatible tests may not end up in the same test runner batch if:\n\n * There are \"too many\" compatible tests in a partition, as determined by the `[test].batch_size` config parameter, or\n * Compatible tests have some incompatibility in Pants metadata (i.e. different `resolve`s or `extra_env_vars`).\n\nWhen tests with the same `batch_compatibility_tag` have incompatibilities in some other Pants metadata, they will be automatically split into separate batches. This way you can set a high-level `batch_compatibility_tag` using `__defaults__` and then have tests continue to work as you tweak BUILD metadata on specific targets.", + "provider": "", + "required": false, + "type_hint": "str | None" + } + ], + "provider": "pants.backend.experimental.javascript", + "summary": "Generate a `javascript_test` target for each file in the `sources` field." + }, "junit_test": { "alias": "junit_test", "description": "A single Java test, run with JUnit.", @@ -65356,7 +75533,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -65364,7 +75541,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -65396,7 +75573,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -65436,7 +75613,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -65444,7 +75621,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -65476,7 +75653,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -65516,7 +75693,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -65524,7 +75701,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -65556,7 +75733,7 @@ { "alias": "packages", "default": null, - "description": "The JVM packages this artifact provides for the purposes of dependency inference.\n\nFor example, the JVM artifact `junit:junit` might provide `[\"org.junit.**\"]`.\n\nUsually you can leave this field off. If unspecified, Pants will fall back to the `[java-infer].third_party_import_mapping`, then to a built in mapping (https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/jvm/dependency_inference/jvm_artifact_mappings.py), and then finally it will default to the normalized `group` of the artifact. For example, in the absence of any other mapping the artifact `io.confluent:common-config` would default to providing `[\"io.confluent.**\"]`.\n\nThe package path may be made recursive to match symbols in subpackages by adding `.**` to the end of the package path. For example, specify `[\"org.junit.**\"]` to infer a dependency on the artifact for any file importing a symbol from `org.junit` or its subpackages.", + "description": "The JVM packages this artifact provides for the purposes of dependency inference.\n\nFor example, the JVM artifact `junit:junit` might provide `[\"org.junit.**\"]`.\n\nUsually you can leave this field off. If unspecified, Pants will fall back to the `[java-infer].third_party_import_mapping`, then to a built in mapping (https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/jvm/dependency_inference/jvm_artifact_mappings.py), and then finally it will default to the normalized `group` of the artifact. For example, in the absence of any other mapping the artifact `io.confluent:common-config` would default to providing `[\"io.confluent.**\"]`.\n\nThe package path may be made recursive to match symbols in subpackages by adding `.**` to the end of the package path. For example, specify `[\"org.junit.**\"]` to infer a dependency on the artifact for any file importing a symbol from `org.junit` or its subpackages.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -65620,7 +75797,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -65628,7 +75805,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -65652,7 +75829,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -65676,7 +75853,7 @@ { "alias": "output_path", "default": null, - "description": "Where the built asset should be located.\n\nIf undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`.\n\nWhen running `scie-pants-linux-x86_64 package`, this path will be prefixed by `--distdir` (e.g. `dist/`).\n\nWarning: setting this value risks naming collisions with other package targets you may have.", + "description": "Where the built asset should be located.\n\nIf undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`.\n\nWhen running `pants package`, this path will be prefixed by `--distdir` (e.g. `dist/`).\n\nWarning: setting this value risks naming collisions with other package targets you may have.", "provider": "", "required": false, "type_hint": "str | None" @@ -65692,7 +75869,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -65700,7 +75877,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -65708,7 +75885,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -65780,7 +75957,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -65788,7 +75965,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -65804,7 +75981,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -65868,7 +76045,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -65876,7 +76053,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -65884,7 +76061,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -65956,7 +76133,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -65964,7 +76141,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -65988,7 +76165,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -66044,7 +76221,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -66052,7 +76229,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -66092,7 +76269,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -66100,7 +76277,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -66122,18 +76299,26 @@ "type_hint": "str | None" }, { - "alias": "apache_thrift_thrift_search_paths", + "alias": "golang_cgo_c_flags", "default": null, - "description": "Overrides the default value from the option `[apache-thrift].thrift_search_paths` when this environment target is active.", - "provider": "pants.backend.codegen.thrift.apache.python", + "description": "Overrides the default value from the option `[golang].cgo_c_flags` when this environment target is active.", + "provider": "pants.backend.experimental.go", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "nodejs_executable_search_paths", + "alias": "go_generate_env_vars", "default": null, - "description": "Overrides the default value from the option `[nodejs].executable_search_paths` when this environment target is active.", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "description": "Overrides the default value from the option `[go-generate].env_vars` when this environment target is active.", + "provider": "pants.backend.experimental.go", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "docker_executable_search_paths", + "default": null, + "description": "Overrides the default value from the option `[docker].executable_search_paths` when this environment target is active.", + "provider": "pants.backend.docker", "required": false, "type_hint": "Iterable[str] | None" }, @@ -66146,85 +76331,117 @@ "type_hint": "str | None" }, { - "alias": "python_native_code_ld_flags", + "alias": "golang_go_search_paths", "default": null, - "description": "Overrides the default value from the option `[python-native-code].ld_flags` when this environment target is active.", - "provider": "pants.core", + "description": "Overrides the default value from the option `[golang].go_search_paths` when this environment target is active.", + "provider": "pants.backend.experimental.go", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "docker_env_vars", + "alias": "pex_executable_search_paths", "default": null, - "description": "Overrides the default value from the option `[docker].env_vars` when this environment target is active.", - "provider": "pants.backend.docker", + "description": "Overrides the default value from the option `[pex].executable_search_paths` when this environment target is active.", + "provider": "pants.core", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "golang_cgo_gcc_binary_name", + "alias": "golang_subprocess_env_vars", "default": null, - "description": "Overrides the default value from the option `[golang].cgo_gcc_binary_name` when this environment target is active.", + "description": "Overrides the default value from the option `[golang].subprocess_env_vars` when this environment target is active.", "provider": "pants.backend.experimental.go", "required": false, - "type_hint": "str | None" + "type_hint": "Iterable[str] | None" }, { - "alias": "test_extra_env_vars", + "alias": "nodejs_search_path", "default": null, - "description": "Overrides the default value from the option `[test].extra_env_vars` when this environment target is active.", - "provider": "pants.core", + "description": "Overrides the default value from the option `[nodejs].search_path` when this environment target is active.", + "provider": "pants.backend.experimental.javascript", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "python_bootstrap_search_path", + "alias": "golang_cgo_fortran_flags", "default": null, - "description": "Overrides the default value from the option `[python-bootstrap].search_path` when this environment target is active.", - "provider": "pants.core", + "description": "Overrides the default value from the option `[golang].cgo_fortran_flags` when this environment target is active.", + "provider": "pants.backend.experimental.go", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "golang_go_search_paths", + "alias": "golang_cgo_tool_search_paths", "default": null, - "description": "Overrides the default value from the option `[golang].go_search_paths` when this environment target is active.", + "description": "Overrides the default value from the option `[golang].cgo_tool_search_paths` when this environment target is active.", "provider": "pants.backend.experimental.go", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "golang_cgo_fortran_flags", + "alias": "golang_cgo_gcc_binary_name", "default": null, - "description": "Overrides the default value from the option `[golang].cgo_fortran_flags` when this environment target is active.", + "description": "Overrides the default value from the option `[golang].cgo_gcc_binary_name` when this environment target is active.", "provider": "pants.backend.experimental.go", "required": false, + "type_hint": "str | None" + }, + { + "alias": "apache_thrift_thrift_search_paths", + "default": null, + "description": "Overrides the default value from the option `[apache-thrift].thrift_search_paths` when this environment target is active.", + "provider": "pants.backend.codegen.thrift.apache.python", + "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "python_native_code_cpp_flags", + "alias": "python_native_code_ld_flags", "default": null, - "description": "Overrides the default value from the option `[python-native-code].cpp_flags` when this environment target is active.", + "description": "Overrides the default value from the option `[python-native-code].ld_flags` when this environment target is active.", "provider": "pants.core", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "go_generate_env_vars", + "alias": "shell_setup_executable_search_paths", "default": null, - "description": "Overrides the default value from the option `[go-generate].env_vars` when this environment target is active.", - "provider": "pants.backend.experimental.go", + "description": "Overrides the default value from the option `[shell-setup].executable_search_paths` when this environment target is active.", + "provider": "pants.backend.shell", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "golang_cgo_c_flags", + "alias": "test_extra_env_vars", "default": null, - "description": "Overrides the default value from the option `[golang].cgo_c_flags` when this environment target is active.", + "description": "Overrides the default value from the option `[test].extra_env_vars` when this environment target is active.", + "provider": "pants.core", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "golang_external_linker_binary_name", + "default": null, + "description": "Overrides the default value from the option `[golang].external_linker_binary_name` when this environment target is active.", "provider": "pants.backend.experimental.go", "required": false, + "type_hint": "str | None" + }, + { + "alias": "docker_env_vars", + "default": null, + "description": "Overrides the default value from the option `[docker].env_vars` when this environment target is active.", + "provider": "pants.backend.docker", + "required": false, "type_hint": "Iterable[str] | None" }, + { + "alias": "golang_cgo_gxx_binary_name", + "default": null, + "description": "Overrides the default value from the option `[golang].cgo_gxx_binary_name` when this environment target is active.", + "provider": "pants.backend.experimental.go", + "required": false, + "type_hint": "str | None" + }, { "alias": "jvm_global_options", "default": null, @@ -66234,50 +76451,58 @@ "type_hint": "Iterable[str] | None" }, { - "alias": "pex_executable_search_paths", + "alias": "python_native_code_cpp_flags", "default": null, - "description": "Overrides the default value from the option `[pex].executable_search_paths` when this environment target is active.", + "description": "Overrides the default value from the option `[python-native-code].cpp_flags` when this environment target is active.", "provider": "pants.core", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "golang_cgo_gxx_binary_name", + "alias": "nodejs_corepack_env_vars", "default": null, - "description": "Overrides the default value from the option `[golang].cgo_gxx_binary_name` when this environment target is active.", - "provider": "pants.backend.experimental.go", + "description": "Overrides the default value from the option `[nodejs].corepack_env_vars` when this environment target is active.", + "provider": "pants.backend.experimental.javascript", "required": false, - "type_hint": "str | None" + "type_hint": "Iterable[str] | None" }, { - "alias": "golang_subprocess_env_vars", + "alias": "golang_cgo_linker_flags", "default": null, - "description": "Overrides the default value from the option `[golang].subprocess_env_vars` when this environment target is active.", + "description": "Overrides the default value from the option `[golang].cgo_linker_flags` when this environment target is active.", "provider": "pants.backend.experimental.go", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "nodejs_search_path", + "alias": "python_bootstrap_search_path", "default": null, - "description": "Overrides the default value from the option `[nodejs].search_path` when this environment target is active.", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "description": "Overrides the default value from the option `[python-bootstrap].search_path` when this environment target is active.", + "provider": "pants.core", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "golang_cgo_tool_search_paths", + "alias": "pyenv_python_provider_installation_extra_env_vars", "default": null, - "description": "Overrides the default value from the option `[golang].cgo_tool_search_paths` when this environment target is active.", + "description": "Overrides the default value from the option `[pyenv-python-provider].installation_extra_env_vars` when this environment target is active.", + "provider": "pants.backend.python.providers.experimental.pyenv", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "golang_cgo_cxx_flags", + "default": null, + "description": "Overrides the default value from the option `[golang].cgo_cxx_flags` when this environment target is active.", "provider": "pants.backend.experimental.go", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "docker_executable_search_paths", + "alias": "nodejs_executable_search_paths", "default": null, - "description": "Overrides the default value from the option `[docker].executable_search_paths` when this environment target is active.", - "provider": "pants.backend.docker", + "description": "Overrides the default value from the option `[nodejs].executable_search_paths` when this environment target is active.", + "provider": "pants.backend.experimental.javascript", "required": false, "type_hint": "Iterable[str] | None" }, @@ -66296,50 +76521,114 @@ "provider": "pants.core", "required": false, "type_hint": "Iterable[str] | None" - }, + } + ], + "provider": "pants.core", + "summary": "Configuration of a local execution environment for specific platforms." + }, + "node_package": { + "alias": "node_package", + "description": "A first party node package.", + "fields": [ { - "alias": "nodejs_corepack_env_vars", + "alias": "tags", "default": null, - "description": "Overrides the default value from the option `[nodejs].corepack_env_vars` when this environment target is active.", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", + "provider": "", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "golang_cgo_linker_flags", + "alias": "description", "default": null, - "description": "Overrides the default value from the option `[golang].cgo_linker_flags` when this environment target is active.", - "provider": "pants.backend.experimental.go", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", + "provider": "", "required": false, - "type_hint": "Iterable[str] | None" + "type_hint": "str | None" }, { - "alias": "shell_setup_executable_search_paths", + "alias": "source", + "default": "'package.json'", + "description": "A single file that belongs to this target.\n\nPath is relative to the BUILD file's directory, e.g. `source='example.ext'`.", + "provider": "", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "package", "default": null, - "description": "Overrides the default value from the option `[shell-setup].executable_search_paths` when this environment target is active.", - "provider": "pants.backend.shell", + "description": "Name of the Node package, as specified in the package.json.\n\nThis field should not be overridden; use the value from target generation.", + "provider": "", + "required": true, + "type_hint": "str" + }, + { + "alias": "version", + "default": null, + "description": "Version of the Node package, as specified in the package.json.\n\nThis field should not be overridden; use the value from target generation.", + "provider": "", "required": false, - "type_hint": "Iterable[str] | None" + "type_hint": "str | None" }, { - "alias": "golang_cgo_cxx_flags", + "alias": "dependencies", "default": null, - "description": "Overrides the default value from the option `[golang].cgo_cxx_flags` when this environment target is active.", - "provider": "pants.backend.experimental.go", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + } + ], + "provider": "pants.backend.experimental.javascript", + "summary": "A first party node package." + }, + "node_third_party_package": { + "alias": "node_third_party_package", + "description": "A third party node package.", + "fields": [ + { + "alias": "tags", + "default": null, + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", + "provider": "", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "golang_external_linker_binary_name", + "alias": "description", "default": null, - "description": "Overrides the default value from the option `[golang].external_linker_binary_name` when this environment target is active.", - "provider": "pants.backend.experimental.go", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", + "provider": "", "required": false, "type_hint": "str | None" + }, + { + "alias": "package", + "default": null, + "description": "Name of the Node package, as specified in the package.json.\n\nThis field should not be overridden; use the value from target generation.", + "provider": "", + "required": true, + "type_hint": "str" + }, + { + "alias": "version", + "default": null, + "description": "Version of the Node package, as specified in the package.json.\n\nThis field should not be overridden; use the value from target generation.", + "provider": "", + "required": true, + "type_hint": "str" + }, + { + "alias": "dependencies", + "default": null, + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" } ], - "provider": "pants.core", - "summary": "Configuration of a local execution environment for specific platforms." + "provider": "pants.backend.experimental.javascript", + "summary": "A third party node package." }, "openapi_document": { "alias": "openapi_document", @@ -66348,7 +76637,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -66356,7 +76645,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -66364,7 +76653,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -66377,6 +76666,22 @@ "required": true, "type_hint": "str" }, + { + "alias": "jvm_jdk", + "default": null, + "description": "The major version of the JDK that this target should be built with. If not defined, will default to `[jvm].default_source_jdk`.", + "provider": "pants.backend.experimental.openapi.codegen.java", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "skip_java", + "default": "False", + "description": "If true, skips generation of Java sources from this target", + "provider": "pants.backend.experimental.openapi.codegen.java", + "required": false, + "type_hint": "bool" + }, { "alias": "skip_spectral", "default": "False", @@ -66384,6 +76689,30 @@ "provider": "pants.backend.experimental.openapi.lint.spectral", "required": false, "type_hint": "bool" + }, + { + "alias": "java_api_package", + "default": null, + "description": "Root package for generated API code", + "provider": "pants.backend.experimental.openapi.codegen.java", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "java_model_package", + "default": null, + "description": "Root package for generated model code", + "provider": "pants.backend.experimental.openapi.codegen.java", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "jvm_resolve", + "default": null, + "description": "The resolve from `[jvm].resolves` to use when compiling this target.\n\nIf not defined, will default to `[jvm].default_resolve`.", + "provider": "pants.backend.experimental.openapi.codegen.java", + "required": false, + "type_hint": "str | None" } ], "provider": "pants.backend.experimental.openapi", @@ -66396,7 +76725,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -66404,7 +76733,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -66417,6 +76746,22 @@ "required": false, "type_hint": "Iterable[str] | None" }, + { + "alias": "jvm_jdk", + "default": null, + "description": "The major version of the JDK that this target should be built with. If not defined, will default to `[jvm].default_source_jdk`.", + "provider": "pants.backend.experimental.openapi.codegen.java", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "skip_java", + "default": "False", + "description": "If true, skips generation of Java sources from this target", + "provider": "pants.backend.experimental.openapi.codegen.java", + "required": false, + "type_hint": "bool" + }, { "alias": "skip_spectral", "default": "False", @@ -66425,10 +76770,34 @@ "required": false, "type_hint": "bool" }, + { + "alias": "java_api_package", + "default": null, + "description": "Root package for generated API code", + "provider": "pants.backend.experimental.openapi.codegen.java", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "java_model_package", + "default": null, + "description": "Root package for generated model code", + "provider": "pants.backend.experimental.openapi.codegen.java", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "jvm_resolve", + "default": null, + "description": "The resolve from `[jvm].resolves` to use when compiling this target.\n\nIf not defined, will default to `[jvm].default_resolve`.", + "provider": "pants.backend.experimental.openapi.codegen.java", + "required": false, + "type_hint": "str | None" + }, { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -66444,7 +76813,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -66452,7 +76821,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -66460,7 +76829,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -66484,7 +76853,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -66492,7 +76861,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -66508,7 +76877,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -66517,6 +76886,54 @@ "provider": "pants.backend.experimental.openapi", "summary": "Generate an `openapi_source` target for each file in the `sources` field." }, + "package_json": { + "alias": "package_json", + "description": "A package.json file describing a nodejs package. (https://nodejs.org/api/packages.html#introduction)\n\nGenerates a `node_package` target for the package.\n\nGenerates `node_third_party_package` targets for each specified 3rd party dependency (e.g. in the package.json#devDependencies field).", + "fields": [ + { + "alias": "tags", + "default": null, + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "description", + "default": null, + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", + "provider": "", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "source", + "default": "'package.json'", + "description": "A single file that belongs to this target.\n\nPath is relative to the BUILD file's directory, e.g. `source='example.ext'`.", + "provider": "", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "scripts", + "default": "()", + "description": "Custom node package manager scripts that should be known and ran as part of relevant goals.\n\nMaps the package.json#scripts section to a cacheable pants invocation.", + "provider": "", + "required": false, + "type_hint": "Iterable[Any] | None" + }, + { + "alias": "dependencies", + "default": null, + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + } + ], + "provider": "pants.backend.experimental.javascript", + "summary": "A package.json file describing a nodejs package. (https://nodejs.org/api/packages.html#introduction)" + }, "pants_requirements": { "alias": "pants_requirements", "description": "Generate `python_requirement` targets for Pants itself to use with Pants plugins.\n\nThis is useful when writing plugins so that you can build and test your plugin using Pants.\n\nThe generated targets will have the correct version based on the exact `version` in your `pants.toml`, and they will work with dependency inference. They're pulled directly from our GitHub releases, using the relevant platform markers.\n\n(If this versioning scheme does not work for you, you can directly create `python_requirement` targets for `pantsbuild.pants` and `pantsbuild.pants.testutil`. We also invite you to share your ideas at https://github.com/pantsbuild/pants/issues/new/choose)", @@ -66524,7 +76941,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -66532,14 +76949,14 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" }, { "alias": "version_spec", - "default": "'== 2.18.0rc5'", + "default": "'== 2.18.1'", "description": "The PEP 440 version specifier version of Pants to target. E.g. `== 2.15.*`, or `>= 2.16.0, < 2.17.0`", "provider": "", "required": false, @@ -66572,7 +76989,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -66580,7 +76997,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -66628,7 +77045,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -66772,7 +77189,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -66780,7 +77197,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -66812,7 +77229,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -66980,7 +77397,7 @@ { "alias": "output_path", "default": null, - "description": "Where the built asset should be located.\n\nIf undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`.\n\nWhen running `scie-pants-linux-x86_64 package`, this path will be prefixed by `--distdir` (e.g. `dist/`).\n\nWarning: setting this value risks naming collisions with other package targets you may have.", + "description": "Where the built asset should be located.\n\nIf undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`.\n\nWhen running `pants package`, this path will be prefixed by `--distdir` (e.g. `dist/`).\n\nWarning: setting this value risks naming collisions with other package targets you may have.", "provider": "", "required": false, "type_hint": "str | None" @@ -66996,7 +77413,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -67004,7 +77421,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -67060,7 +77477,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -67068,7 +77485,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -67124,7 +77541,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -67132,7 +77549,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -67140,7 +77557,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -67162,29 +77579,37 @@ "type_hint": "bool" }, { - "alias": "skip_buf_lint", - "default": "False", - "description": "If true, don't run `buf lint` on this target's code.", - "provider": "pants.backend.codegen.protobuf.lint.buf", + "alias": "python_interpreter_constraints", + "default": null, + "description": "The Python interpreters this code is compatible with.\n\nEach element should be written in pip-style format, e.g. `CPython==2.7.*` or `CPython>=3.6,<4`. You can leave off `CPython` as a shorthand, e.g. `>=2.7` will be expanded to `CPython>=2.7`.\n\nSpecify more than one element to OR the constraints, e.g. `['PyPy==3.7.*', 'CPython==3.7.*']` means either PyPy 3.7 _or_ CPython 3.7.\n\nIf the field is not set, it will default to the option `[python].interpreter_constraints`.\n\nSee https://www.pantsbuild.org/v2.18/docs/python-interpreter-compatibility for how these interpreter constraints are merged with the constraints of dependencies.", + "provider": "pants.backend.codegen.protobuf.python", "required": false, - "type_hint": "bool" + "type_hint": "Iterable[str] | None" }, { - "alias": "python_source_root", + "alias": "jvm_jdk", "default": null, - "description": "The source root to generate Python sources under.\n\nIf unspecified, the source root the `protobuf_sources` is under will be used.", - "provider": "pants.backend.codegen.protobuf.python", + "description": "The major version of the JDK that this target should be built with. If not defined, will default to `[jvm].default_source_jdk`.", + "provider": "pants.backend.experimental.codegen.protobuf.java", "required": false, "type_hint": "str | None" }, { - "alias": "jvm_jdk", + "alias": "jvm_resolve", "default": null, - "description": "The major version of the JDK that this target should be built with. If not defined, will default to `[jvm].default_source_jdk`.", + "description": "The resolve from `[jvm].resolves` to use when compiling this target.\n\nIf not defined, will default to `[jvm].default_resolve`.", "provider": "pants.backend.experimental.codegen.protobuf.java", "required": false, "type_hint": "str | None" }, + { + "alias": "skip_buf_lint", + "default": "False", + "description": "If true, don't run `buf lint` on this target's code.", + "provider": "pants.backend.codegen.protobuf.lint.buf", + "required": false, + "type_hint": "bool" + }, { "alias": "skip_buf_format", "default": "False", @@ -67194,34 +77619,26 @@ "type_hint": "bool" }, { - "alias": "python_resolve", + "alias": "go_mod_address", "default": null, - "description": "The resolve from `[python].resolves` to use.\n\nIf not defined, will default to `[python].default_resolve`.\n\nAll dependencies must share the same value for their `resolve` field.", - "provider": "pants.backend.codegen.protobuf.python", + "description": "Address of the `go_mod` target representing the Go module that this target is part of.\n\nThis field is similar to the `resolve` field used in the Python and JVM backends. If a codegen target such as `protobuf_sources` will be used in multiple Go modules, then you should use the `parametrize` built-in to parametrize that `protobuf_sources` target for each Go module.\n\nIf there is a single `go_mod` target in the repository, then this field defaults to the address for that single `go_mod` target.", + "provider": "pants.backend.experimental.codegen.protobuf.go", "required": false, "type_hint": "str | None" }, { - "alias": "python_interpreter_constraints", + "alias": "python_source_root", "default": null, - "description": "The Python interpreters this code is compatible with.\n\nEach element should be written in pip-style format, e.g. `CPython==2.7.*` or `CPython>=3.6,<4`. You can leave off `CPython` as a shorthand, e.g. `>=2.7` will be expanded to `CPython>=2.7`.\n\nSpecify more than one element to OR the constraints, e.g. `['PyPy==3.7.*', 'CPython==3.7.*']` means either PyPy 3.7 _or_ CPython 3.7.\n\nIf the field is not set, it will default to the option `[python].interpreter_constraints`.\n\nSee https://www.pantsbuild.org/v2.18/docs/python-interpreter-compatibility for how these interpreter constraints are merged with the constraints of dependencies.", + "description": "The source root to generate Python sources under.\n\nIf unspecified, the source root the `protobuf_sources` is under will be used.", "provider": "pants.backend.codegen.protobuf.python", "required": false, - "type_hint": "Iterable[str] | None" - }, - { - "alias": "go_mod_address", - "default": null, - "description": "Address of the `go_mod` target representing the Go module that this target is part of.\n\nThis field is similar to the `resolve` field used in the Python and JVM backends. If a codegen target such as `protobuf_sources` will be used in multiple Go modules, then you should use the `parametrize` built-in to parametrize that `protobuf_sources` target for each Go module.\n\nIf there is a single `go_mod` target in the repository, then this field defaults to the address for that single `go_mod` target.", - "provider": "pants.backend.experimental.codegen.protobuf.go", - "required": false, "type_hint": "str | None" }, { - "alias": "jvm_resolve", + "alias": "python_resolve", "default": null, - "description": "The resolve from `[jvm].resolves` to use when compiling this target.\n\nIf not defined, will default to `[jvm].default_resolve`.", - "provider": "pants.backend.experimental.codegen.protobuf.java", + "description": "The resolve from `[python].resolves` to use.\n\nIf not defined, will default to `[python].default_resolve`.\n\nAll dependencies must share the same value for their `resolve` field.", + "provider": "pants.backend.codegen.protobuf.python", "required": false, "type_hint": "str | None" } @@ -67236,7 +77653,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -67244,7 +77661,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -67266,29 +77683,37 @@ "type_hint": "Dict[Union[str, Tuple[str, ...]], Dict[str, Any]] | None" }, { - "alias": "skip_buf_lint", - "default": "False", - "description": "If true, don't run `buf lint` on this target's code.", - "provider": "pants.backend.codegen.protobuf.lint.buf", + "alias": "python_interpreter_constraints", + "default": null, + "description": "The Python interpreters this code is compatible with.\n\nEach element should be written in pip-style format, e.g. `CPython==2.7.*` or `CPython>=3.6,<4`. You can leave off `CPython` as a shorthand, e.g. `>=2.7` will be expanded to `CPython>=2.7`.\n\nSpecify more than one element to OR the constraints, e.g. `['PyPy==3.7.*', 'CPython==3.7.*']` means either PyPy 3.7 _or_ CPython 3.7.\n\nIf the field is not set, it will default to the option `[python].interpreter_constraints`.\n\nSee https://www.pantsbuild.org/v2.18/docs/python-interpreter-compatibility for how these interpreter constraints are merged with the constraints of dependencies.", + "provider": "pants.backend.codegen.protobuf.python", "required": false, - "type_hint": "bool" + "type_hint": "Iterable[str] | None" }, { - "alias": "python_source_root", + "alias": "jvm_jdk", "default": null, - "description": "The source root to generate Python sources under.\n\nIf unspecified, the source root the `protobuf_sources` is under will be used.", - "provider": "pants.backend.codegen.protobuf.python", + "description": "The major version of the JDK that this target should be built with. If not defined, will default to `[jvm].default_source_jdk`.", + "provider": "pants.backend.experimental.codegen.protobuf.java", "required": false, "type_hint": "str | None" }, { - "alias": "jvm_jdk", + "alias": "jvm_resolve", "default": null, - "description": "The major version of the JDK that this target should be built with. If not defined, will default to `[jvm].default_source_jdk`.", + "description": "The resolve from `[jvm].resolves` to use when compiling this target.\n\nIf not defined, will default to `[jvm].default_resolve`.", "provider": "pants.backend.experimental.codegen.protobuf.java", "required": false, "type_hint": "str | None" }, + { + "alias": "skip_buf_lint", + "default": "False", + "description": "If true, don't run `buf lint` on this target's code.", + "provider": "pants.backend.codegen.protobuf.lint.buf", + "required": false, + "type_hint": "bool" + }, { "alias": "skip_buf_format", "default": "False", @@ -67298,34 +77723,26 @@ "type_hint": "bool" }, { - "alias": "python_resolve", + "alias": "go_mod_address", "default": null, - "description": "The resolve from `[python].resolves` to use.\n\nIf not defined, will default to `[python].default_resolve`.\n\nAll dependencies must share the same value for their `resolve` field.", - "provider": "pants.backend.codegen.protobuf.python", + "description": "Address of the `go_mod` target representing the Go module that this target is part of.\n\nThis field is similar to the `resolve` field used in the Python and JVM backends. If a codegen target such as `protobuf_sources` will be used in multiple Go modules, then you should use the `parametrize` built-in to parametrize that `protobuf_sources` target for each Go module.\n\nIf there is a single `go_mod` target in the repository, then this field defaults to the address for that single `go_mod` target.", + "provider": "pants.backend.experimental.codegen.protobuf.go", "required": false, "type_hint": "str | None" }, { - "alias": "python_interpreter_constraints", + "alias": "python_source_root", "default": null, - "description": "The Python interpreters this code is compatible with.\n\nEach element should be written in pip-style format, e.g. `CPython==2.7.*` or `CPython>=3.6,<4`. You can leave off `CPython` as a shorthand, e.g. `>=2.7` will be expanded to `CPython>=2.7`.\n\nSpecify more than one element to OR the constraints, e.g. `['PyPy==3.7.*', 'CPython==3.7.*']` means either PyPy 3.7 _or_ CPython 3.7.\n\nIf the field is not set, it will default to the option `[python].interpreter_constraints`.\n\nSee https://www.pantsbuild.org/v2.18/docs/python-interpreter-compatibility for how these interpreter constraints are merged with the constraints of dependencies.", + "description": "The source root to generate Python sources under.\n\nIf unspecified, the source root the `protobuf_sources` is under will be used.", "provider": "pants.backend.codegen.protobuf.python", "required": false, - "type_hint": "Iterable[str] | None" - }, - { - "alias": "go_mod_address", - "default": null, - "description": "Address of the `go_mod` target representing the Go module that this target is part of.\n\nThis field is similar to the `resolve` field used in the Python and JVM backends. If a codegen target such as `protobuf_sources` will be used in multiple Go modules, then you should use the `parametrize` built-in to parametrize that `protobuf_sources` target for each Go module.\n\nIf there is a single `go_mod` target in the repository, then this field defaults to the address for that single `go_mod` target.", - "provider": "pants.backend.experimental.codegen.protobuf.go", - "required": false, "type_hint": "str | None" }, { - "alias": "jvm_resolve", + "alias": "python_resolve", "default": null, - "description": "The resolve from `[jvm].resolves` to use when compiling this target.\n\nIf not defined, will default to `[jvm].default_resolve`.", - "provider": "pants.backend.experimental.codegen.protobuf.java", + "description": "The resolve from `[python].resolves` to use.\n\nIf not defined, will default to `[python].default_resolve`.\n\nAll dependencies must share the same value for their `resolve` field.", + "provider": "pants.backend.codegen.protobuf.python", "required": false, "type_hint": "str | None" }, @@ -67340,7 +77757,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -67356,7 +77773,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -67364,7 +77781,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -67372,7 +77789,7 @@ { "alias": "output_path", "default": null, - "description": "Where the built directory tree should be located.\n\nIf undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:bin` would be `src.python.project/bin/`.\n\nRegardless of whether you use the default or set this field, the path will end with PyOxidizer's file format of `/{debug,release}/install/`, where `platform` is a Rust platform triplet like `aarch-64-apple-darwin` and `binary_name` is the value of the `binary_name` field. So, using the default for this field, the target `src/python/project:bin` might have a final path like `src.python.project/bin/aarch-64-apple-darwin/release/bin`.\n\nWhen running `scie-pants-linux-x86_64 package`, this path will be prefixed by `--distdir` (e.g. `dist/`).\n\nWarning: setting this value risks naming collisions with other package targets you may have.", + "description": "Where the built directory tree should be located.\n\nIf undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:bin` would be `src.python.project/bin/`.\n\nRegardless of whether you use the default or set this field, the path will end with PyOxidizer's file format of `/{debug,release}/install/`, where `platform` is a Rust platform triplet like `aarch-64-apple-darwin` and `binary_name` is the value of the `binary_name` field. So, using the default for this field, the target `src/python/project:bin` might have a final path like `src.python.project/bin/aarch-64-apple-darwin/release/bin`.\n\nWhen running `pants package`, this path will be prefixed by `--distdir` (e.g. `dist/`).\n\nWarning: setting this value risks naming collisions with other package targets you may have.", "provider": "", "required": false, "type_hint": "str | None" @@ -67436,7 +77853,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -67444,7 +77861,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -67452,7 +77869,7 @@ { "alias": "output_path", "default": null, - "description": "Where the built asset should be located.\n\nIf undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`.\n\nWhen running `scie-pants-linux-x86_64 package`, this path will be prefixed by `--distdir` (e.g. `dist/`).\n\nWarning: setting this value risks naming collisions with other package targets you may have.", + "description": "Where the built asset should be located.\n\nIf undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`.\n\nWhen running `pants package`, this path will be prefixed by `--distdir` (e.g. `dist/`).\n\nWarning: setting this value risks naming collisions with other package targets you may have.", "provider": "", "required": false, "type_hint": "str | None" @@ -67500,7 +77917,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -67524,7 +77941,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -67532,7 +77949,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -67540,7 +77957,7 @@ { "alias": "output_path", "default": null, - "description": "Where the built asset should be located.\n\nIf undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`.\n\nWhen running `scie-pants-linux-x86_64 package`, this path will be prefixed by `--distdir` (e.g. `dist/`).\n\nWarning: setting this value risks naming collisions with other package targets you may have.", + "description": "Where the built asset should be located.\n\nIf undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`.\n\nWhen running `pants package`, this path will be prefixed by `--distdir` (e.g. `dist/`).\n\nWarning: setting this value risks naming collisions with other package targets you may have.", "provider": "", "required": false, "type_hint": "str | None" @@ -67596,7 +78013,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": true, "type_hint": "Iterable[str]" @@ -67612,7 +78029,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -67620,7 +78037,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -67636,7 +78053,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -67644,7 +78061,7 @@ { "alias": "entry_points", "default": null, - "description": "Any entry points, such as `console_scripts` and `gui_scripts`.\n\nSpecify as a nested dictionary, with a dictionary for each type of entry point, e.g. `console_scripts` vs. `gui_scripts`. Each dictionary maps the entry point name to either a setuptools entry point (`\"path.to.module:func\"`) or a Pants target address to a `pex_binary` target.\n\nExample:\n\n entry_points={\n \"console_scripts\": {\n \"my-script\": \"project.app:main\",\n \"another-script\": \"project/subdir:pex_binary_tgt\"\n }\n }\n\nNote that Pants will assume that any value that either starts with `:` or has `/` in it, is a target address to a `pex_binary` target. Otherwise, it will assume it's a setuptools entry point as defined by https://packaging.python.org/specifications/entry-points/#entry-points-specification. Use `//` as a prefix for target addresses if you need to disambiguate.\n\nPants will attempt to infer dependencies, which you can confirm by running:\n\n scie-pants-linux-x86_64 dependencies ", + "description": "Any entry points, such as `console_scripts` and `gui_scripts`.\n\nSpecify as a nested dictionary, with a dictionary for each type of entry point, e.g. `console_scripts` vs. `gui_scripts`. Each dictionary maps the entry point name to either a setuptools entry point (`\"path.to.module:func\"`) or a Pants target address to a `pex_binary` target.\n\nExample:\n\n entry_points={\n \"console_scripts\": {\n \"my-script\": \"project.app:main\",\n \"another-script\": \"project/subdir:pex_binary_tgt\"\n }\n }\n\nNote that Pants will assume that any value that either starts with `:` or has `/` in it, is a target address to a `pex_binary` target. Otherwise, it will assume it's a setuptools entry point as defined by https://packaging.python.org/specifications/entry-points/#entry-points-specification. Use `//` as a prefix for target addresses if you need to disambiguate.\n\nPants will attempt to infer dependencies, which you can confirm by running:\n\n pants dependencies ", "provider": "", "required": false, "type_hint": "Dict[str, Dict[str, str]] | None" @@ -67722,12 +78139,12 @@ "type_hint": "str | None" }, { - "alias": "skip_twine", - "default": "False", - "description": "If true, don't publish this target's packages using Twine.", + "alias": "repositories", + "default": null, + "description": "List of URL addresses or Twine repository aliases where to publish the Python package.\n\nTwine is used for publishing Python packages, so the address to any kind of repository that Twine supports may be used here.\n\nAliases are prefixed with `@` to refer to a config section in your Twine configuration, such as a `.pypirc` file. Use `@pypi` to upload to the public PyPi repository, which is the default when using Twine directly.", "provider": "pants.backend.experimental.python", "required": false, - "type_hint": "bool" + "type_hint": "Iterable[str] | None" }, { "alias": "uses_mypyc", @@ -67738,12 +78155,12 @@ "type_hint": "bool" }, { - "alias": "repositories", - "default": null, - "description": "List of URL addresses or Twine repository aliases where to publish the Python package.\n\nTwine is used for publishing Python packages, so the address to any kind of repository that Twine supports may be used here.\n\nAliases are prefixed with `@` to refer to a config section in your Twine configuration, such as a `.pypirc` file. Use `@pypi` to upload to the public PyPi repository, which is the default when using Twine directly.", + "alias": "skip_twine", + "default": "False", + "description": "If true, don't publish this target's packages using Twine.", "provider": "pants.backend.experimental.python", "required": false, - "type_hint": "Iterable[str] | None" + "type_hint": "bool" } ], "provider": "pants.backend.python", @@ -67756,7 +78173,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -67764,7 +78181,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -67772,7 +78189,7 @@ { "alias": "output_path", "default": null, - "description": "Where the built asset should be located.\n\nIf undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`.\n\nWhen running `scie-pants-linux-x86_64 package`, this path will be prefixed by `--distdir` (e.g. `dist/`).\n\nWarning: setting this value risks naming collisions with other package targets you may have.", + "description": "Where the built asset should be located.\n\nIf undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`.\n\nWhen running `pants package`, this path will be prefixed by `--distdir` (e.g. `dist/`).\n\nWarning: setting this value risks naming collisions with other package targets you may have.", "provider": "", "required": false, "type_hint": "str | None" @@ -67780,7 +78197,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -67844,7 +78261,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -67852,7 +78269,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -67868,7 +78285,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -67876,7 +78293,7 @@ { "alias": "modules", "default": null, - "description": "The modules this requirement provides (used for dependency inference).\n\nFor example, the requirement `setuptools` provides `[\"setuptools\", \"pkg_resources\", \"easy_install\"]`.\n\nUsually you can leave this field off. If unspecified, Pants will first look at the default module mapping (https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/backend/python/dependency_inference/default_module_mapping.py), and then will default to the normalized project name. For example, the requirement `Django` would default to the module `django`.\n\nMutually exclusive with the `type_stub_modules` field.", + "description": "The modules this requirement provides (used for dependency inference).\n\nFor example, the requirement `setuptools` provides `[\"setuptools\", \"pkg_resources\", \"easy_install\"]`.\n\nUsually you can leave this field off. If unspecified, Pants will first look at the default module mapping (https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/python/dependency_inference/default_module_mapping.py), and then will default to the normalized project name. For example, the requirement `Django` would default to the module `django`.\n\nMutually exclusive with the `type_stub_modules` field.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -67884,7 +78301,7 @@ { "alias": "type_stub_modules", "default": null, - "description": "The modules this requirement provides if the requirement is a type stub (used for dependency inference).\n\nFor example, the requirement `types-requests` provides `[\"requests\"]`.\n\nUsually you can leave this field off. If unspecified, Pants will first look at the default module mapping (https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/backend/python/dependency_inference/default_module_mapping.py). If not found _and_ the requirement name starts with `types-` or `stubs-`, or ends with `-types` or `-stubs`, will default to that requirement name without the prefix/suffix. For example, `types-requests` would default to `requests`. Otherwise, will be treated like a normal requirement (see the `modules` field).\n\nMutually exclusive with the `modules` field.", + "description": "The modules this requirement provides if the requirement is a type stub (used for dependency inference).\n\nFor example, the requirement `types-requests` provides `[\"requests\"]`.\n\nUsually you can leave this field off. If unspecified, Pants will first look at the default module mapping (https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/python/dependency_inference/default_module_mapping.py). If not found _and_ the requirement name starts with `types-` or `stubs-`, or ends with `-types` or `-stubs`, will default to that requirement name without the prefix/suffix. For example, `types-requests` would default to `requests`. Otherwise, will be treated like a normal requirement (see the `modules` field).\n\nMutually exclusive with the `modules` field.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -67916,7 +78333,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -67924,7 +78341,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -67980,7 +78397,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -67988,7 +78405,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -68004,7 +78421,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -68042,58 +78459,50 @@ "type_hint": "bool" }, { - "alias": "skip_pylint", - "default": "False", - "description": "If true, don't run Pylint on this target's code.", - "provider": "pants.backend.python.lint.pylint", - "required": false, - "type_hint": "bool" - }, - { - "alias": "skip_pytype", + "alias": "skip_mypy", "default": "False", - "description": "If true, don't run pytype on this target's code.", - "provider": "pants.backend.experimental.python.typecheck.pytype", + "description": "If true, don't run MyPy on this target's code.", + "provider": "pants.backend.python.typecheck.mypy", "required": false, "type_hint": "bool" }, { - "alias": "skip_autoflake", + "alias": "skip_isort", "default": "False", - "description": "If true, don't run Autoflake on this target's code.", - "provider": "pants.backend.python.lint.autoflake", + "description": "If true, don't run isort on this target's code.", + "provider": "pants.backend.python.lint.isort", "required": false, "type_hint": "bool" }, { - "alias": "skip_docformatter", + "alias": "skip_pyupgrade", "default": "False", - "description": "If true, don't run Docformatter on this target's code.", - "provider": "pants.backend.python.lint.docformatter", + "description": "If true, don't run pyupgrade on this target's code.", + "provider": "pants.backend.python.lint.pyupgrade", "required": false, "type_hint": "bool" }, { - "alias": "skip_mypy", + "alias": "skip_ruff", "default": "False", - "description": "If true, don't run MyPy on this target's code.", - "provider": "pants.backend.python.typecheck.mypy", + "description": "If true, don't run ruff on this target's code.", + "provider": "pants.backend.experimental.python.lint.ruff", "required": false, "type_hint": "bool" }, { - "alias": "skip_isort", + "alias": "skip_pyright", "default": "False", - "description": "If true, don't run isort on this target's code.", - "provider": "pants.backend.python.lint.isort", + "description": "If true, don't run Pyright on this target's code.", + "provider": "pants.backend.experimental.python.typecheck.pyright", "required": false, "type_hint": "bool" }, { - "alias": "skip_pydocstyle", + "alias": "skip_flake8", "default": "False", - "description": "If true, don't run pydocstyle on this target's code.", - "provider": "pants.backend.python.lint.pydocstyle", + "description": "If true, don't run Flake8 on this target's code.", + "provider": "pants.backend.python.lint.flake8", "required": false, "type_hint": "bool" }, @@ -68106,18 +78515,18 @@ "type_hint": "bool" }, { - "alias": "skip_ruff", + "alias": "skip_pytype", "default": "False", - "description": "If true, don't run ruff on this target's code.", - "provider": "pants.backend.experimental.python.lint.ruff", + "description": "If true, don't run pytype on this target's code.", + "provider": "pants.backend.experimental.python.typecheck.pytype", "required": false, "type_hint": "bool" }, { - "alias": "skip_flake8", + "alias": "skip_autoflake", "default": "False", - "description": "If true, don't run Flake8 on this target's code.", - "provider": "pants.backend.python.lint.flake8", + "description": "If true, don't run Autoflake on this target's code.", + "provider": "pants.backend.python.lint.autoflake", "required": false, "type_hint": "bool" }, @@ -68129,6 +78538,22 @@ "required": false, "type_hint": "bool" }, + { + "alias": "skip_black", + "default": "False", + "description": "If true, don't run Black on this target's code.", + "provider": "pants.backend.python.lint.black", + "required": false, + "type_hint": "bool" + }, + { + "alias": "skip_pylint", + "default": "False", + "description": "If true, don't run Pylint on this target's code.", + "provider": "pants.backend.python.lint.pylint", + "required": false, + "type_hint": "bool" + }, { "alias": "skip_yapf", "default": "False", @@ -68138,18 +78563,18 @@ "type_hint": "bool" }, { - "alias": "skip_pyupgrade", + "alias": "skip_docformatter", "default": "False", - "description": "If true, don't run pyupgrade on this target's code.", - "provider": "pants.backend.python.lint.pyupgrade", + "description": "If true, don't run Docformatter on this target's code.", + "provider": "pants.backend.python.lint.docformatter", "required": false, "type_hint": "bool" }, { - "alias": "skip_black", + "alias": "skip_pydocstyle", "default": "False", - "description": "If true, don't run Black on this target's code.", - "provider": "pants.backend.python.lint.black", + "description": "If true, don't run pydocstyle on this target's code.", + "provider": "pants.backend.python.lint.pydocstyle", "required": false, "type_hint": "bool" } @@ -68164,7 +78589,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -68172,7 +78597,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -68194,58 +78619,50 @@ "type_hint": "Dict[Union[str, Tuple[str, ...]], Dict[str, Any]] | None" }, { - "alias": "skip_pylint", - "default": "False", - "description": "If true, don't run Pylint on this target's code.", - "provider": "pants.backend.python.lint.pylint", - "required": false, - "type_hint": "bool" - }, - { - "alias": "skip_pytype", + "alias": "skip_mypy", "default": "False", - "description": "If true, don't run pytype on this target's code.", - "provider": "pants.backend.experimental.python.typecheck.pytype", + "description": "If true, don't run MyPy on this target's code.", + "provider": "pants.backend.python.typecheck.mypy", "required": false, "type_hint": "bool" }, { - "alias": "skip_autoflake", + "alias": "skip_isort", "default": "False", - "description": "If true, don't run Autoflake on this target's code.", - "provider": "pants.backend.python.lint.autoflake", + "description": "If true, don't run isort on this target's code.", + "provider": "pants.backend.python.lint.isort", "required": false, "type_hint": "bool" }, { - "alias": "skip_docformatter", + "alias": "skip_pyupgrade", "default": "False", - "description": "If true, don't run Docformatter on this target's code.", - "provider": "pants.backend.python.lint.docformatter", + "description": "If true, don't run pyupgrade on this target's code.", + "provider": "pants.backend.python.lint.pyupgrade", "required": false, "type_hint": "bool" }, { - "alias": "skip_mypy", + "alias": "skip_ruff", "default": "False", - "description": "If true, don't run MyPy on this target's code.", - "provider": "pants.backend.python.typecheck.mypy", + "description": "If true, don't run ruff on this target's code.", + "provider": "pants.backend.experimental.python.lint.ruff", "required": false, "type_hint": "bool" }, { - "alias": "skip_isort", + "alias": "skip_pyright", "default": "False", - "description": "If true, don't run isort on this target's code.", - "provider": "pants.backend.python.lint.isort", + "description": "If true, don't run Pyright on this target's code.", + "provider": "pants.backend.experimental.python.typecheck.pyright", "required": false, "type_hint": "bool" }, { - "alias": "skip_pydocstyle", + "alias": "skip_flake8", "default": "False", - "description": "If true, don't run pydocstyle on this target's code.", - "provider": "pants.backend.python.lint.pydocstyle", + "description": "If true, don't run Flake8 on this target's code.", + "provider": "pants.backend.python.lint.flake8", "required": false, "type_hint": "bool" }, @@ -68258,18 +78675,18 @@ "type_hint": "bool" }, { - "alias": "skip_ruff", + "alias": "skip_pytype", "default": "False", - "description": "If true, don't run ruff on this target's code.", - "provider": "pants.backend.experimental.python.lint.ruff", + "description": "If true, don't run pytype on this target's code.", + "provider": "pants.backend.experimental.python.typecheck.pytype", "required": false, "type_hint": "bool" }, { - "alias": "skip_flake8", + "alias": "skip_autoflake", "default": "False", - "description": "If true, don't run Flake8 on this target's code.", - "provider": "pants.backend.python.lint.flake8", + "description": "If true, don't run Autoflake on this target's code.", + "provider": "pants.backend.python.lint.autoflake", "required": false, "type_hint": "bool" }, @@ -68281,6 +78698,22 @@ "required": false, "type_hint": "bool" }, + { + "alias": "skip_black", + "default": "False", + "description": "If true, don't run Black on this target's code.", + "provider": "pants.backend.python.lint.black", + "required": false, + "type_hint": "bool" + }, + { + "alias": "skip_pylint", + "default": "False", + "description": "If true, don't run Pylint on this target's code.", + "provider": "pants.backend.python.lint.pylint", + "required": false, + "type_hint": "bool" + }, { "alias": "skip_yapf", "default": "False", @@ -68290,18 +78723,18 @@ "type_hint": "bool" }, { - "alias": "skip_pyupgrade", + "alias": "skip_docformatter", "default": "False", - "description": "If true, don't run pyupgrade on this target's code.", - "provider": "pants.backend.python.lint.pyupgrade", + "description": "If true, don't run Docformatter on this target's code.", + "provider": "pants.backend.python.lint.docformatter", "required": false, "type_hint": "bool" }, { - "alias": "skip_black", + "alias": "skip_pydocstyle", "default": "False", - "description": "If true, don't run Black on this target's code.", - "provider": "pants.backend.python.lint.black", + "description": "If true, don't run pydocstyle on this target's code.", + "provider": "pants.backend.python.lint.pydocstyle", "required": false, "type_hint": "bool" }, @@ -68324,7 +78757,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -68356,7 +78789,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -68364,7 +78797,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -68372,7 +78805,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -68420,7 +78853,7 @@ { "alias": "runtime_package_dependencies", "default": null, - "description": "Addresses to targets that can be built with the `scie-pants-linux-x86_64 package` goal and whose resulting artifacts should be included in the test run.\n\nPants will build the artifacts as if you had run `scie-pants-linux-x86_64 package`. It will include the results in your test's chroot, using the same name they would normally have, but without the `--distdir` prefix (e.g. `dist/`).\n\nYou can include anything that can be built by `scie-pants-linux-x86_64 package`, e.g. a `pex_binary`, `python_aws_lambda_function`, or an `archive`.", + "description": "Addresses to targets that can be built with the `pants package` goal and whose resulting artifacts should be included in the test run.\n\nPants will build the artifacts as if you had run `pants package`. It will include the results in your test's chroot, using the same name they would normally have, but without the `--distdir` prefix (e.g. `dist/`).\n\nYou can include anything that can be built by `pants package`, e.g. a `pex_binary`, `python_aws_lambda_function`, or an `archive`.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -68466,98 +78899,98 @@ "type_hint": "str" }, { - "alias": "skip_pylint", + "alias": "skip_mypy", "default": "False", - "description": "If true, don't run Pylint on this target's code.", - "provider": "pants.backend.python.lint.pylint", + "description": "If true, don't run MyPy on this target's code.", + "provider": "pants.backend.python.typecheck.mypy", "required": false, "type_hint": "bool" }, { - "alias": "skip_pytype", + "alias": "skip_isort", "default": "False", - "description": "If true, don't run pytype on this target's code.", - "provider": "pants.backend.experimental.python.typecheck.pytype", + "description": "If true, don't run isort on this target's code.", + "provider": "pants.backend.python.lint.isort", "required": false, "type_hint": "bool" }, { - "alias": "skip_autoflake", + "alias": "skip_pyupgrade", "default": "False", - "description": "If true, don't run Autoflake on this target's code.", - "provider": "pants.backend.python.lint.autoflake", + "description": "If true, don't run pyupgrade on this target's code.", + "provider": "pants.backend.python.lint.pyupgrade", "required": false, "type_hint": "bool" }, { - "alias": "skip_docformatter", + "alias": "skip_ruff", "default": "False", - "description": "If true, don't run Docformatter on this target's code.", - "provider": "pants.backend.python.lint.docformatter", + "description": "If true, don't run ruff on this target's code.", + "provider": "pants.backend.experimental.python.lint.ruff", "required": false, "type_hint": "bool" }, { - "alias": "skip_mypy", + "alias": "skip_pyright", "default": "False", - "description": "If true, don't run MyPy on this target's code.", - "provider": "pants.backend.python.typecheck.mypy", + "description": "If true, don't run Pyright on this target's code.", + "provider": "pants.backend.experimental.python.typecheck.pyright", "required": false, "type_hint": "bool" }, { - "alias": "skip_isort", + "alias": "skip_flake8", "default": "False", - "description": "If true, don't run isort on this target's code.", - "provider": "pants.backend.python.lint.isort", + "description": "If true, don't run Flake8 on this target's code.", + "provider": "pants.backend.python.lint.flake8", "required": false, "type_hint": "bool" }, { - "alias": "skip_pydocstyle", + "alias": "skip_bandit", "default": "False", - "description": "If true, don't run pydocstyle on this target's code.", - "provider": "pants.backend.python.lint.pydocstyle", + "description": "If true, don't run Bandit on this target's code.", + "provider": "pants.backend.python.lint.bandit", "required": false, "type_hint": "bool" }, { - "alias": "skip_bandit", + "alias": "skip_pytype", "default": "False", - "description": "If true, don't run Bandit on this target's code.", - "provider": "pants.backend.python.lint.bandit", + "description": "If true, don't run pytype on this target's code.", + "provider": "pants.backend.experimental.python.typecheck.pytype", "required": false, "type_hint": "bool" }, { - "alias": "skip_ruff", + "alias": "skip_add_trailing_comma", "default": "False", - "description": "If true, don't run ruff on this target's code.", - "provider": "pants.backend.experimental.python.lint.ruff", + "description": "If true, don't run add-trailing-comma on this target's code.", + "provider": "pants.backend.experimental.python.lint.add_trailing_comma", "required": false, "type_hint": "bool" }, { - "alias": "stevedore_namespaces", - "default": null, - "description": "List the stevedore namespaces required by this target.\n\nCode for all `entry_points` on `python_distribution` targets with these namespaces will be added as dependencies so that they are available on PYTHONPATH during tests. Note that this is only a subset of the `python_distribution`s dependencies, so the `entry_points` only need to be defined on one `python_distribution` even if the test only needs some of the `entry_points` namespaces on it.\n\nPlus, an `entry_points.txt` file will be generated in the sandbox so that each of the `python_distribution`s appear to be \"installed\". The `entry_points.txt` file will only include the namespaces requested on this field. Without this, stevedore would not be able to look up plugins in the setuptools `entry_points` metadata.\n\nNOTE: Each `python_distribution` must opt-in to being included in this repo-wide inference by tagging the namespaces with `stevedore_namespace(\"my.stevedore.extension\")`.\n\nThe stevedore namespace format (`my.stevedore.extension`) is similar to a Python namespace.", - "provider": "pants.backend.experimental.python.framework.stevedore", + "alias": "skip_autoflake", + "default": "False", + "description": "If true, don't run Autoflake on this target's code.", + "provider": "pants.backend.python.lint.autoflake", "required": false, - "type_hint": "Iterable[str] | None" + "type_hint": "bool" }, { - "alias": "skip_flake8", + "alias": "skip_black", "default": "False", - "description": "If true, don't run Flake8 on this target's code.", - "provider": "pants.backend.python.lint.flake8", + "description": "If true, don't run Black on this target's code.", + "provider": "pants.backend.python.lint.black", "required": false, "type_hint": "bool" }, { - "alias": "skip_add_trailing_comma", + "alias": "skip_pylint", "default": "False", - "description": "If true, don't run add-trailing-comma on this target's code.", - "provider": "pants.backend.experimental.python.lint.add_trailing_comma", + "description": "If true, don't run Pylint on this target's code.", + "provider": "pants.backend.python.lint.pylint", "required": false, "type_hint": "bool" }, @@ -68570,18 +79003,26 @@ "type_hint": "bool" }, { - "alias": "skip_pyupgrade", + "alias": "stevedore_namespaces", + "default": null, + "description": "List the stevedore namespaces required by this target.\n\nCode for all `entry_points` on `python_distribution` targets with these namespaces will be added as dependencies so that they are available on PYTHONPATH during tests. Note that this is only a subset of the `python_distribution`s dependencies, so the `entry_points` only need to be defined on one `python_distribution` even if the test only needs some of the `entry_points` namespaces on it.\n\nPlus, an `entry_points.txt` file will be generated in the sandbox so that each of the `python_distribution`s appear to be \"installed\". The `entry_points.txt` file will only include the namespaces requested on this field. Without this, stevedore would not be able to look up plugins in the setuptools `entry_points` metadata.\n\nNOTE: Each `python_distribution` must opt-in to being included in this repo-wide inference by tagging the namespaces with `stevedore_namespace(\"my.stevedore.extension\")`.\n\nThe stevedore namespace format (`my.stevedore.extension`) is similar to a Python namespace.", + "provider": "pants.backend.experimental.python.framework.stevedore", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "skip_docformatter", "default": "False", - "description": "If true, don't run pyupgrade on this target's code.", - "provider": "pants.backend.python.lint.pyupgrade", + "description": "If true, don't run Docformatter on this target's code.", + "provider": "pants.backend.python.lint.docformatter", "required": false, "type_hint": "bool" }, { - "alias": "skip_black", + "alias": "skip_pydocstyle", "default": "False", - "description": "If true, don't run Black on this target's code.", - "provider": "pants.backend.python.lint.black", + "description": "If true, don't run pydocstyle on this target's code.", + "provider": "pants.backend.python.lint.pydocstyle", "required": false, "type_hint": "bool" } @@ -68596,7 +79037,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -68604,7 +79045,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -68626,58 +79067,50 @@ "type_hint": "Dict[Union[str, Tuple[str, ...]], Dict[str, Any]] | None" }, { - "alias": "skip_pylint", - "default": "False", - "description": "If true, don't run Pylint on this target's code.", - "provider": "pants.backend.python.lint.pylint", - "required": false, - "type_hint": "bool" - }, - { - "alias": "skip_pytype", + "alias": "skip_mypy", "default": "False", - "description": "If true, don't run pytype on this target's code.", - "provider": "pants.backend.experimental.python.typecheck.pytype", + "description": "If true, don't run MyPy on this target's code.", + "provider": "pants.backend.python.typecheck.mypy", "required": false, "type_hint": "bool" }, { - "alias": "skip_autoflake", + "alias": "skip_isort", "default": "False", - "description": "If true, don't run Autoflake on this target's code.", - "provider": "pants.backend.python.lint.autoflake", + "description": "If true, don't run isort on this target's code.", + "provider": "pants.backend.python.lint.isort", "required": false, "type_hint": "bool" }, { - "alias": "skip_docformatter", + "alias": "skip_pyupgrade", "default": "False", - "description": "If true, don't run Docformatter on this target's code.", - "provider": "pants.backend.python.lint.docformatter", + "description": "If true, don't run pyupgrade on this target's code.", + "provider": "pants.backend.python.lint.pyupgrade", "required": false, "type_hint": "bool" }, { - "alias": "skip_mypy", + "alias": "skip_ruff", "default": "False", - "description": "If true, don't run MyPy on this target's code.", - "provider": "pants.backend.python.typecheck.mypy", + "description": "If true, don't run ruff on this target's code.", + "provider": "pants.backend.experimental.python.lint.ruff", "required": false, "type_hint": "bool" }, { - "alias": "skip_isort", + "alias": "skip_pyright", "default": "False", - "description": "If true, don't run isort on this target's code.", - "provider": "pants.backend.python.lint.isort", + "description": "If true, don't run Pyright on this target's code.", + "provider": "pants.backend.experimental.python.typecheck.pyright", "required": false, "type_hint": "bool" }, { - "alias": "skip_pydocstyle", + "alias": "skip_flake8", "default": "False", - "description": "If true, don't run pydocstyle on this target's code.", - "provider": "pants.backend.python.lint.pydocstyle", + "description": "If true, don't run Flake8 on this target's code.", + "provider": "pants.backend.python.lint.flake8", "required": false, "type_hint": "bool" }, @@ -68690,18 +79123,18 @@ "type_hint": "bool" }, { - "alias": "skip_ruff", + "alias": "skip_pytype", "default": "False", - "description": "If true, don't run ruff on this target's code.", - "provider": "pants.backend.experimental.python.lint.ruff", + "description": "If true, don't run pytype on this target's code.", + "provider": "pants.backend.experimental.python.typecheck.pytype", "required": false, "type_hint": "bool" }, { - "alias": "skip_flake8", + "alias": "skip_autoflake", "default": "False", - "description": "If true, don't run Flake8 on this target's code.", - "provider": "pants.backend.python.lint.flake8", + "description": "If true, don't run Autoflake on this target's code.", + "provider": "pants.backend.python.lint.autoflake", "required": false, "type_hint": "bool" }, @@ -68713,6 +79146,22 @@ "required": false, "type_hint": "bool" }, + { + "alias": "skip_black", + "default": "False", + "description": "If true, don't run Black on this target's code.", + "provider": "pants.backend.python.lint.black", + "required": false, + "type_hint": "bool" + }, + { + "alias": "skip_pylint", + "default": "False", + "description": "If true, don't run Pylint on this target's code.", + "provider": "pants.backend.python.lint.pylint", + "required": false, + "type_hint": "bool" + }, { "alias": "skip_yapf", "default": "False", @@ -68722,18 +79171,18 @@ "type_hint": "bool" }, { - "alias": "skip_pyupgrade", + "alias": "skip_docformatter", "default": "False", - "description": "If true, don't run pyupgrade on this target's code.", - "provider": "pants.backend.python.lint.pyupgrade", + "description": "If true, don't run Docformatter on this target's code.", + "provider": "pants.backend.python.lint.docformatter", "required": false, "type_hint": "bool" }, { - "alias": "skip_black", + "alias": "skip_pydocstyle", "default": "False", - "description": "If true, don't run Black on this target's code.", - "provider": "pants.backend.python.lint.black", + "description": "If true, don't run pydocstyle on this target's code.", + "provider": "pants.backend.python.lint.pydocstyle", "required": false, "type_hint": "bool" }, @@ -68756,7 +79205,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -68780,7 +79229,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -68788,7 +79237,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -68810,98 +79259,98 @@ "type_hint": "Dict[Union[str, Tuple[str, ...]], Dict[str, Any]] | None" }, { - "alias": "skip_pylint", + "alias": "skip_mypy", "default": "False", - "description": "If true, don't run Pylint on this target's code.", - "provider": "pants.backend.python.lint.pylint", + "description": "If true, don't run MyPy on this target's code.", + "provider": "pants.backend.python.typecheck.mypy", "required": false, "type_hint": "bool" }, { - "alias": "skip_pytype", + "alias": "skip_isort", "default": "False", - "description": "If true, don't run pytype on this target's code.", - "provider": "pants.backend.experimental.python.typecheck.pytype", + "description": "If true, don't run isort on this target's code.", + "provider": "pants.backend.python.lint.isort", "required": false, "type_hint": "bool" }, { - "alias": "skip_autoflake", + "alias": "skip_pyupgrade", "default": "False", - "description": "If true, don't run Autoflake on this target's code.", - "provider": "pants.backend.python.lint.autoflake", + "description": "If true, don't run pyupgrade on this target's code.", + "provider": "pants.backend.python.lint.pyupgrade", "required": false, "type_hint": "bool" }, { - "alias": "skip_docformatter", + "alias": "skip_ruff", "default": "False", - "description": "If true, don't run Docformatter on this target's code.", - "provider": "pants.backend.python.lint.docformatter", + "description": "If true, don't run ruff on this target's code.", + "provider": "pants.backend.experimental.python.lint.ruff", "required": false, "type_hint": "bool" }, { - "alias": "skip_mypy", + "alias": "skip_pyright", "default": "False", - "description": "If true, don't run MyPy on this target's code.", - "provider": "pants.backend.python.typecheck.mypy", + "description": "If true, don't run Pyright on this target's code.", + "provider": "pants.backend.experimental.python.typecheck.pyright", "required": false, "type_hint": "bool" }, { - "alias": "skip_isort", + "alias": "skip_flake8", "default": "False", - "description": "If true, don't run isort on this target's code.", - "provider": "pants.backend.python.lint.isort", + "description": "If true, don't run Flake8 on this target's code.", + "provider": "pants.backend.python.lint.flake8", "required": false, "type_hint": "bool" }, { - "alias": "skip_pydocstyle", + "alias": "skip_bandit", "default": "False", - "description": "If true, don't run pydocstyle on this target's code.", - "provider": "pants.backend.python.lint.pydocstyle", + "description": "If true, don't run Bandit on this target's code.", + "provider": "pants.backend.python.lint.bandit", "required": false, "type_hint": "bool" }, { - "alias": "skip_bandit", + "alias": "skip_pytype", "default": "False", - "description": "If true, don't run Bandit on this target's code.", - "provider": "pants.backend.python.lint.bandit", + "description": "If true, don't run pytype on this target's code.", + "provider": "pants.backend.experimental.python.typecheck.pytype", "required": false, "type_hint": "bool" }, { - "alias": "skip_ruff", + "alias": "skip_add_trailing_comma", "default": "False", - "description": "If true, don't run ruff on this target's code.", - "provider": "pants.backend.experimental.python.lint.ruff", + "description": "If true, don't run add-trailing-comma on this target's code.", + "provider": "pants.backend.experimental.python.lint.add_trailing_comma", "required": false, "type_hint": "bool" }, { - "alias": "stevedore_namespaces", - "default": null, - "description": "List the stevedore namespaces required by this target.\n\nCode for all `entry_points` on `python_distribution` targets with these namespaces will be added as dependencies so that they are available on PYTHONPATH during tests. Note that this is only a subset of the `python_distribution`s dependencies, so the `entry_points` only need to be defined on one `python_distribution` even if the test only needs some of the `entry_points` namespaces on it.\n\nPlus, an `entry_points.txt` file will be generated in the sandbox so that each of the `python_distribution`s appear to be \"installed\". The `entry_points.txt` file will only include the namespaces requested on this field. Without this, stevedore would not be able to look up plugins in the setuptools `entry_points` metadata.\n\nNOTE: Each `python_distribution` must opt-in to being included in this repo-wide inference by tagging the namespaces with `stevedore_namespace(\"my.stevedore.extension\")`.\n\nThe stevedore namespace format (`my.stevedore.extension`) is similar to a Python namespace.", - "provider": "pants.backend.experimental.python.framework.stevedore", + "alias": "skip_autoflake", + "default": "False", + "description": "If true, don't run Autoflake on this target's code.", + "provider": "pants.backend.python.lint.autoflake", "required": false, - "type_hint": "Iterable[str] | None" + "type_hint": "bool" }, { - "alias": "skip_flake8", + "alias": "skip_black", "default": "False", - "description": "If true, don't run Flake8 on this target's code.", - "provider": "pants.backend.python.lint.flake8", + "description": "If true, don't run Black on this target's code.", + "provider": "pants.backend.python.lint.black", "required": false, "type_hint": "bool" }, { - "alias": "skip_add_trailing_comma", + "alias": "skip_pylint", "default": "False", - "description": "If true, don't run add-trailing-comma on this target's code.", - "provider": "pants.backend.experimental.python.lint.add_trailing_comma", + "description": "If true, don't run Pylint on this target's code.", + "provider": "pants.backend.python.lint.pylint", "required": false, "type_hint": "bool" }, @@ -68914,25 +79363,33 @@ "type_hint": "bool" }, { - "alias": "skip_pyupgrade", + "alias": "stevedore_namespaces", + "default": null, + "description": "List the stevedore namespaces required by this target.\n\nCode for all `entry_points` on `python_distribution` targets with these namespaces will be added as dependencies so that they are available on PYTHONPATH during tests. Note that this is only a subset of the `python_distribution`s dependencies, so the `entry_points` only need to be defined on one `python_distribution` even if the test only needs some of the `entry_points` namespaces on it.\n\nPlus, an `entry_points.txt` file will be generated in the sandbox so that each of the `python_distribution`s appear to be \"installed\". The `entry_points.txt` file will only include the namespaces requested on this field. Without this, stevedore would not be able to look up plugins in the setuptools `entry_points` metadata.\n\nNOTE: Each `python_distribution` must opt-in to being included in this repo-wide inference by tagging the namespaces with `stevedore_namespace(\"my.stevedore.extension\")`.\n\nThe stevedore namespace format (`my.stevedore.extension`) is similar to a Python namespace.", + "provider": "pants.backend.experimental.python.framework.stevedore", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "skip_docformatter", "default": "False", - "description": "If true, don't run pyupgrade on this target's code.", - "provider": "pants.backend.python.lint.pyupgrade", + "description": "If true, don't run Docformatter on this target's code.", + "provider": "pants.backend.python.lint.docformatter", "required": false, "type_hint": "bool" }, { - "alias": "skip_black", + "alias": "skip_pydocstyle", "default": "False", - "description": "If true, don't run Black on this target's code.", - "provider": "pants.backend.python.lint.black", + "description": "If true, don't run pydocstyle on this target's code.", + "provider": "pants.backend.python.lint.pydocstyle", "required": false, "type_hint": "bool" }, { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -68980,7 +79437,7 @@ { "alias": "runtime_package_dependencies", "default": null, - "description": "Addresses to targets that can be built with the `scie-pants-linux-x86_64 package` goal and whose resulting artifacts should be included in the test run.\n\nPants will build the artifacts as if you had run `scie-pants-linux-x86_64 package`. It will include the results in your test's chroot, using the same name they would normally have, but without the `--distdir` prefix (e.g. `dist/`).\n\nYou can include anything that can be built by `scie-pants-linux-x86_64 package`, e.g. a `pex_binary`, `python_aws_lambda_function`, or an `archive`.", + "description": "Addresses to targets that can be built with the `pants package` goal and whose resulting artifacts should be included in the test run.\n\nPants will build the artifacts as if you had run `pants package`. It will include the results in your test's chroot, using the same name they would normally have, but without the `--distdir` prefix (e.g. `dist/`).\n\nYou can include anything that can be built by `pants package`, e.g. a `pex_binary`, `python_aws_lambda_function`, or an `archive`.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -69028,7 +79485,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -69036,7 +79493,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -69076,7 +79533,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -69084,7 +79541,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -69122,18 +79579,26 @@ "type_hint": "bool" }, { - "alias": "apache_thrift_thrift_search_paths", + "alias": "golang_cgo_c_flags", "default": null, - "description": "Overrides the default value from the option `[apache-thrift].thrift_search_paths` when this environment target is active.", - "provider": "pants.backend.codegen.thrift.apache.python", + "description": "Overrides the default value from the option `[golang].cgo_c_flags` when this environment target is active.", + "provider": "pants.backend.experimental.go", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "nodejs_executable_search_paths", + "alias": "go_generate_env_vars", "default": null, - "description": "Overrides the default value from the option `[nodejs].executable_search_paths` when this environment target is active.", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "description": "Overrides the default value from the option `[go-generate].env_vars` when this environment target is active.", + "provider": "pants.backend.experimental.go", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "docker_executable_search_paths", + "default": null, + "description": "Overrides the default value from the option `[docker].executable_search_paths` when this environment target is active.", + "provider": "pants.backend.docker", "required": false, "type_hint": "Iterable[str] | None" }, @@ -69146,98 +79611,106 @@ "type_hint": "str | None" }, { - "alias": "python_native_code_ld_flags", + "alias": "golang_go_search_paths", "default": null, - "description": "Overrides the default value from the option `[python-native-code].ld_flags` when this environment target is active.", - "provider": "pants.core", + "description": "Overrides the default value from the option `[golang].go_search_paths` when this environment target is active.", + "provider": "pants.backend.experimental.go", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "docker_env_vars", + "alias": "pex_executable_search_paths", "default": null, - "description": "Overrides the default value from the option `[docker].env_vars` when this environment target is active.", - "provider": "pants.backend.docker", + "description": "Overrides the default value from the option `[pex].executable_search_paths` when this environment target is active.", + "provider": "pants.core", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "golang_cgo_gcc_binary_name", + "alias": "golang_subprocess_env_vars", "default": null, - "description": "Overrides the default value from the option `[golang].cgo_gcc_binary_name` when this environment target is active.", + "description": "Overrides the default value from the option `[golang].subprocess_env_vars` when this environment target is active.", "provider": "pants.backend.experimental.go", "required": false, - "type_hint": "str | None" + "type_hint": "Iterable[str] | None" }, { - "alias": "test_extra_env_vars", + "alias": "nodejs_search_path", "default": null, - "description": "Overrides the default value from the option `[test].extra_env_vars` when this environment target is active.", - "provider": "pants.core", + "description": "Overrides the default value from the option `[nodejs].search_path` when this environment target is active.", + "provider": "pants.backend.experimental.javascript", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "python_bootstrap_search_path", + "alias": "golang_cgo_fortran_flags", "default": null, - "description": "Overrides the default value from the option `[python-bootstrap].search_path` when this environment target is active.", - "provider": "pants.core", + "description": "Overrides the default value from the option `[golang].cgo_fortran_flags` when this environment target is active.", + "provider": "pants.backend.experimental.go", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "golang_go_search_paths", + "alias": "golang_cgo_tool_search_paths", "default": null, - "description": "Overrides the default value from the option `[golang].go_search_paths` when this environment target is active.", + "description": "Overrides the default value from the option `[golang].cgo_tool_search_paths` when this environment target is active.", "provider": "pants.backend.experimental.go", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "golang_cgo_fortran_flags", + "alias": "golang_cgo_gcc_binary_name", "default": null, - "description": "Overrides the default value from the option `[golang].cgo_fortran_flags` when this environment target is active.", + "description": "Overrides the default value from the option `[golang].cgo_gcc_binary_name` when this environment target is active.", "provider": "pants.backend.experimental.go", "required": false, + "type_hint": "str | None" + }, + { + "alias": "apache_thrift_thrift_search_paths", + "default": null, + "description": "Overrides the default value from the option `[apache-thrift].thrift_search_paths` when this environment target is active.", + "provider": "pants.backend.codegen.thrift.apache.python", + "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "python_native_code_cpp_flags", + "alias": "python_native_code_ld_flags", "default": null, - "description": "Overrides the default value from the option `[python-native-code].cpp_flags` when this environment target is active.", + "description": "Overrides the default value from the option `[python-native-code].ld_flags` when this environment target is active.", "provider": "pants.core", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "go_generate_env_vars", + "alias": "shell_setup_executable_search_paths", "default": null, - "description": "Overrides the default value from the option `[go-generate].env_vars` when this environment target is active.", - "provider": "pants.backend.experimental.go", + "description": "Overrides the default value from the option `[shell-setup].executable_search_paths` when this environment target is active.", + "provider": "pants.backend.shell", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "golang_cgo_c_flags", + "alias": "test_extra_env_vars", "default": null, - "description": "Overrides the default value from the option `[golang].cgo_c_flags` when this environment target is active.", - "provider": "pants.backend.experimental.go", + "description": "Overrides the default value from the option `[test].extra_env_vars` when this environment target is active.", + "provider": "pants.core", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "jvm_global_options", + "alias": "golang_external_linker_binary_name", "default": null, - "description": "Overrides the default value from the option `[jvm].global_options` when this environment target is active.", - "provider": "pants.backend.experimental.java", + "description": "Overrides the default value from the option `[golang].external_linker_binary_name` when this environment target is active.", + "provider": "pants.backend.experimental.go", "required": false, - "type_hint": "Iterable[str] | None" + "type_hint": "str | None" }, { - "alias": "pex_executable_search_paths", + "alias": "docker_env_vars", "default": null, - "description": "Overrides the default value from the option `[pex].executable_search_paths` when this environment target is active.", - "provider": "pants.core", + "description": "Overrides the default value from the option `[docker].env_vars` when this environment target is active.", + "provider": "pants.backend.docker", "required": false, "type_hint": "Iterable[str] | None" }, @@ -69250,92 +79723,84 @@ "type_hint": "str | None" }, { - "alias": "golang_subprocess_env_vars", - "default": null, - "description": "Overrides the default value from the option `[golang].subprocess_env_vars` when this environment target is active.", - "provider": "pants.backend.experimental.go", - "required": false, - "type_hint": "Iterable[str] | None" - }, - { - "alias": "nodejs_search_path", + "alias": "jvm_global_options", "default": null, - "description": "Overrides the default value from the option `[nodejs].search_path` when this environment target is active.", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "description": "Overrides the default value from the option `[jvm].global_options` when this environment target is active.", + "provider": "pants.backend.experimental.java", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "golang_cgo_tool_search_paths", + "alias": "python_native_code_cpp_flags", "default": null, - "description": "Overrides the default value from the option `[golang].cgo_tool_search_paths` when this environment target is active.", - "provider": "pants.backend.experimental.go", + "description": "Overrides the default value from the option `[python-native-code].cpp_flags` when this environment target is active.", + "provider": "pants.core", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "docker_executable_search_paths", + "alias": "nodejs_corepack_env_vars", "default": null, - "description": "Overrides the default value from the option `[docker].executable_search_paths` when this environment target is active.", - "provider": "pants.backend.docker", + "description": "Overrides the default value from the option `[nodejs].corepack_env_vars` when this environment target is active.", + "provider": "pants.backend.experimental.javascript", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "python_bootstrap_names", + "alias": "golang_cgo_linker_flags", "default": null, - "description": "Overrides the default value from the option `[python-bootstrap].names` when this environment target is active.", - "provider": "pants.core", + "description": "Overrides the default value from the option `[golang].cgo_linker_flags` when this environment target is active.", + "provider": "pants.backend.experimental.go", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "subprocess_environment_env_vars", + "alias": "python_bootstrap_search_path", "default": null, - "description": "Overrides the default value from the option `[subprocess-environment].env_vars` when this environment target is active.", + "description": "Overrides the default value from the option `[python-bootstrap].search_path` when this environment target is active.", "provider": "pants.core", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "nodejs_corepack_env_vars", + "alias": "pyenv_python_provider_installation_extra_env_vars", "default": null, - "description": "Overrides the default value from the option `[nodejs].corepack_env_vars` when this environment target is active.", - "provider": "pants.backend.experimental.openapi.lint.spectral", + "description": "Overrides the default value from the option `[pyenv-python-provider].installation_extra_env_vars` when this environment target is active.", + "provider": "pants.backend.python.providers.experimental.pyenv", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "golang_cgo_linker_flags", + "alias": "golang_cgo_cxx_flags", "default": null, - "description": "Overrides the default value from the option `[golang].cgo_linker_flags` when this environment target is active.", + "description": "Overrides the default value from the option `[golang].cgo_cxx_flags` when this environment target is active.", "provider": "pants.backend.experimental.go", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "shell_setup_executable_search_paths", + "alias": "nodejs_executable_search_paths", "default": null, - "description": "Overrides the default value from the option `[shell-setup].executable_search_paths` when this environment target is active.", - "provider": "pants.backend.shell", + "description": "Overrides the default value from the option `[nodejs].executable_search_paths` when this environment target is active.", + "provider": "pants.backend.experimental.javascript", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "golang_cgo_cxx_flags", + "alias": "python_bootstrap_names", "default": null, - "description": "Overrides the default value from the option `[golang].cgo_cxx_flags` when this environment target is active.", - "provider": "pants.backend.experimental.go", + "description": "Overrides the default value from the option `[python-bootstrap].names` when this environment target is active.", + "provider": "pants.core", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "golang_external_linker_binary_name", + "alias": "subprocess_environment_env_vars", "default": null, - "description": "Overrides the default value from the option `[golang].external_linker_binary_name` when this environment target is active.", - "provider": "pants.backend.experimental.go", + "description": "Overrides the default value from the option `[subprocess-environment].env_vars` when this environment target is active.", + "provider": "pants.core", "required": false, - "type_hint": "str | None" + "type_hint": "Iterable[str] | None" } ], "provider": "pants.core", @@ -69348,7 +79813,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -69356,7 +79821,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -69364,7 +79829,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -69388,7 +79853,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -69396,7 +79861,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -69420,7 +79885,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -69436,7 +79901,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -69444,7 +79909,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -69485,6 +79950,46 @@ "provider": "pants.backend.shell", "summary": "Run a script in the workspace, with all dependencies packaged/copied into a chroot." }, + "rust_package": { + "alias": "rust_package", + "description": "A Rust package as defined in https://doc.rust-lang.org/book/ch07-01-packages-and-crates.html.\n\nExpects that there is a `Cargo.toml` target in its root directory", + "fields": [ + { + "alias": "tags", + "default": null, + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "description", + "default": null, + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", + "provider": "", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "sources", + "default": "('src/**/*.rs', 'tests/**/*.rs')", + "description": "A list of files and globs that belong to this target.\n\nPaths are relative to the BUILD file's directory. You can ignore files/globs by prefixing them with `!`.\n\nExample: `sources=['src/main.rs', 'src/new_*.rs', '!src/old_ignore.py']`", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "skip_rustfmt", + "default": "False", + "description": "If true, don't run rustfmt on this crate.", + "provider": "pants.backend.experimental.rust", + "required": false, + "type_hint": "bool" + } + ], + "provider": "pants.backend.experimental.rust", + "summary": "A Rust package as defined in https://doc.rust-lang.org/book/ch07-01-packages-and-crates.html." + }, "scala_artifact": { "alias": "scala_artifact", "description": "A third-party Scala artifact, as identified by its Maven-compatible coordinate.\n\nThat is, an artifact identified by its `group`, `artifact`, and `version` components.\n\nEach artifact is associated with one or more resolves (a logical name you give to a lockfile). For this artifact to be used by your first-party code, it must be associated with the resolve(s) used by that code. See the `resolve` field.\n\nBeing a Scala artifact, the final artifact name will be inferred using the Scala version configured for the given resolve.", @@ -69492,7 +79997,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -69500,7 +80005,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -69532,7 +80037,7 @@ { "alias": "packages", "default": null, - "description": "The JVM packages this artifact provides for the purposes of dependency inference.\n\nFor example, the JVM artifact `junit:junit` might provide `[\"org.junit.**\"]`.\n\nUsually you can leave this field off. If unspecified, Pants will fall back to the `[java-infer].third_party_import_mapping`, then to a built in mapping (https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/jvm/dependency_inference/jvm_artifact_mappings.py), and then finally it will default to the normalized `group` of the artifact. For example, in the absence of any other mapping the artifact `io.confluent:common-config` would default to providing `[\"io.confluent.**\"]`.\n\nThe package path may be made recursive to match symbols in subpackages by adding `.**` to the end of the package path. For example, specify `[\"org.junit.**\"]` to infer a dependency on the artifact for any file importing a symbol from `org.junit` or its subpackages.", + "description": "The JVM packages this artifact provides for the purposes of dependency inference.\n\nFor example, the JVM artifact `junit:junit` might provide `[\"org.junit.**\"]`.\n\nUsually you can leave this field off. If unspecified, Pants will fall back to the `[java-infer].third_party_import_mapping`, then to a built in mapping (https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/jvm/dependency_inference/jvm_artifact_mappings.py), and then finally it will default to the normalized `group` of the artifact. For example, in the absence of any other mapping the artifact `io.confluent:common-config` would default to providing `[\"io.confluent.**\"]`.\n\nThe package path may be made recursive to match symbols in subpackages by adding `.**` to the end of the package path. For example, specify `[\"org.junit.**\"]` to infer a dependency on the artifact for any file importing a symbol from `org.junit` or its subpackages.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -69604,7 +80109,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -69612,7 +80117,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -69620,7 +80125,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -69692,7 +80197,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -69700,7 +80205,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -69732,7 +80237,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -69796,7 +80301,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -69804,7 +80309,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -69812,7 +80317,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -69884,7 +80389,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -69892,7 +80397,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -69924,7 +80429,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -69980,7 +80485,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -69988,7 +80493,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -70020,7 +80525,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -70028,7 +80533,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -70036,7 +80541,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -70108,7 +80613,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -70116,7 +80621,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -70140,7 +80645,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -70204,7 +80709,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -70212,7 +80717,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -70332,7 +80837,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -70340,7 +80845,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -70348,7 +80853,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -70362,18 +80867,18 @@ "type_hint": "str" }, { - "alias": "skip_shellcheck", + "alias": "skip_shfmt", "default": "False", - "description": "If true, don't run Shellcheck on this target's code.", - "provider": "pants.backend.shell.lint.shellcheck", + "description": "If true, don't run shfmt on this target's code.", + "provider": "pants.backend.shell.lint.shfmt", "required": false, "type_hint": "bool" }, { - "alias": "skip_shfmt", + "alias": "skip_shellcheck", "default": "False", - "description": "If true, don't run shfmt on this target's code.", - "provider": "pants.backend.shell.lint.shfmt", + "description": "If true, don't run Shellcheck on this target's code.", + "provider": "pants.backend.shell.lint.shellcheck", "required": false, "type_hint": "bool" } @@ -70388,7 +80893,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -70396,7 +80901,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -70418,25 +80923,25 @@ "type_hint": "Dict[Union[str, Tuple[str, ...]], Dict[str, Any]] | None" }, { - "alias": "skip_shellcheck", + "alias": "skip_shfmt", "default": "False", - "description": "If true, don't run Shellcheck on this target's code.", - "provider": "pants.backend.shell.lint.shellcheck", + "description": "If true, don't run shfmt on this target's code.", + "provider": "pants.backend.shell.lint.shfmt", "required": false, "type_hint": "bool" }, { - "alias": "skip_shfmt", + "alias": "skip_shellcheck", "default": "False", - "description": "If true, don't run shfmt on this target's code.", - "provider": "pants.backend.shell.lint.shfmt", + "description": "If true, don't run Shellcheck on this target's code.", + "provider": "pants.backend.shell.lint.shellcheck", "required": false, "type_hint": "bool" }, { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -70452,7 +80957,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -70460,7 +80965,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -70476,7 +80981,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -70508,24 +81013,24 @@ { "alias": "runtime_package_dependencies", "default": null, - "description": "Addresses to targets that can be built with the `scie-pants-linux-x86_64 package` goal and whose resulting artifacts should be included in the test run.\n\nPants will build the artifacts as if you had run `scie-pants-linux-x86_64 package`. It will include the results in your test's chroot, using the same name they would normally have, but without the `--distdir` prefix (e.g. `dist/`).\n\nYou can include anything that can be built by `scie-pants-linux-x86_64 package`, e.g. a `pex_binary`, `python_aws_lambda_function`, or an `archive`.", + "description": "Addresses to targets that can be built with the `pants package` goal and whose resulting artifacts should be included in the test run.\n\nPants will build the artifacts as if you had run `pants package`. It will include the results in your test's chroot, using the same name they would normally have, but without the `--distdir` prefix (e.g. `dist/`).\n\nYou can include anything that can be built by `pants package`, e.g. a `pex_binary`, `python_aws_lambda_function`, or an `archive`.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "skip_shellcheck", + "alias": "skip_shfmt", "default": "False", - "description": "If true, don't run Shellcheck on this target's code.", - "provider": "pants.backend.shell.lint.shellcheck", + "description": "If true, don't run shfmt on this target's code.", + "provider": "pants.backend.shell.lint.shfmt", "required": false, "type_hint": "bool" }, { - "alias": "skip_shfmt", + "alias": "skip_shellcheck", "default": "False", - "description": "If true, don't run shfmt on this target's code.", - "provider": "pants.backend.shell.lint.shfmt", + "description": "If true, don't run Shellcheck on this target's code.", + "provider": "pants.backend.shell.lint.shellcheck", "required": false, "type_hint": "bool" } @@ -70540,7 +81045,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -70548,7 +81053,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -70570,25 +81075,25 @@ "type_hint": "Dict[Union[str, Tuple[str, ...]], Dict[str, Any]] | None" }, { - "alias": "skip_shellcheck", + "alias": "skip_shfmt", "default": "False", - "description": "If true, don't run Shellcheck on this target's code.", - "provider": "pants.backend.shell.lint.shellcheck", + "description": "If true, don't run shfmt on this target's code.", + "provider": "pants.backend.shell.lint.shfmt", "required": false, "type_hint": "bool" }, { - "alias": "skip_shfmt", + "alias": "skip_shellcheck", "default": "False", - "description": "If true, don't run shfmt on this target's code.", - "provider": "pants.backend.shell.lint.shfmt", + "description": "If true, don't run Shellcheck on this target's code.", + "provider": "pants.backend.shell.lint.shellcheck", "required": false, "type_hint": "bool" }, { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -70620,7 +81125,7 @@ { "alias": "runtime_package_dependencies", "default": null, - "description": "Addresses to targets that can be built with the `scie-pants-linux-x86_64 package` goal and whose resulting artifacts should be included in the test run.\n\nPants will build the artifacts as if you had run `scie-pants-linux-x86_64 package`. It will include the results in your test's chroot, using the same name they would normally have, but without the `--distdir` prefix (e.g. `dist/`).\n\nYou can include anything that can be built by `scie-pants-linux-x86_64 package`, e.g. a `pex_binary`, `python_aws_lambda_function`, or an `archive`.", + "description": "Addresses to targets that can be built with the `pants package` goal and whose resulting artifacts should be included in the test run.\n\nPants will build the artifacts as if you had run `pants package`. It will include the results in your test's chroot, using the same name they would normally have, but without the `--distdir` prefix (e.g. `dist/`).\n\nYou can include anything that can be built by `pants package`, e.g. a `pex_binary`, `python_aws_lambda_function`, or an `archive`.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -70629,6 +81134,86 @@ "provider": "pants.backend.shell", "summary": "Generate a `shunit2_test` target for each file in the `sources` field." }, + "swift_source": { + "alias": "swift_source", + "description": "A single Swift source file.", + "fields": [ + { + "alias": "tags", + "default": null, + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "description", + "default": null, + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", + "provider": "", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "dependencies", + "default": null, + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "source", + "default": null, + "description": "A single file that belongs to this target.\n\nPath is relative to the BUILD file's directory, e.g. `source='example.ext'`.", + "provider": "", + "required": true, + "type_hint": "str" + } + ], + "provider": "pants.backend.experimental.swift", + "summary": "A single Swift source file." + }, + "swift_sources": { + "alias": "swift_sources", + "description": "Generate a `swift_source` target for each file in the `sources` field.", + "fields": [ + { + "alias": "tags", + "default": null, + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "description", + "default": null, + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", + "provider": "", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "sources", + "default": "('*.swift',)", + "description": "A list of files and globs that belong to this target.\n\nPaths are relative to the BUILD file's directory. You can ignore files/globs by prefixing them with `!`.\n\nExample: `sources=['utils.swift', 'subdir/*.swift', '!ignore_me.swift']`", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "dependencies", + "default": null, + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + } + ], + "provider": "pants.backend.experimental.swift", + "summary": "Generate a `swift_source` target for each file in the `sources` field." + }, "system_binary": { "alias": "system_binary", "description": "A system binary that can be run with `pants run` or consumed by `adhoc_tool`.\n\nPants will search for binaries with name `binary_name` in the search paths provided, as well as default search paths. If `fingerprint` is specified, each binary that is located will be executed with the arguments from `fingerprint_args`. Any binaries whose output does not match the pattern will be excluded.\n\nThe first non-excluded binary will be the one that is resolved.", @@ -70636,7 +81221,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -70644,7 +81229,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -70700,7 +81285,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -70708,7 +81293,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -70716,7 +81301,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -70732,7 +81317,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -70740,7 +81325,7 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" @@ -70748,7 +81333,7 @@ { "alias": "dependencies", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -70788,7 +81373,7 @@ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -70796,39 +81381,119 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", + "provider": "", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "dependencies", + "default": null, + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "sources", + "default": "('*.tf',)", + "description": "A list of files and globs that belong to this target.\n\nPaths are relative to the BUILD file's directory. You can ignore files/globs by prefixing them with `!`.\n\nExample: `sources=['example.tf', 'new_*.tf', '!old_ignore.tf']`", "provider": "", "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "skip_tfsec", + "default": "False", + "description": "If true, don't run tfsec on this target's Terraform files.", + "provider": "pants.backend.experimental.terraform.lint.tfsec", + "required": false, + "type_hint": "bool" + } + ], + "provider": "pants.backend.experimental.terraform", + "summary": "A single Terraform module corresponding to a directory." + }, + "thrift_source": { + "alias": "thrift_source", + "description": "A single Thrift file used to generate various languages.\n\nSee language-specific docs:\n Python: https://www.pantsbuild.org/v2.18/docs/thrift-python", + "fields": [ + { + "alias": "tags", + "default": null, + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "description", + "default": null, + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", + "provider": "", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "dependencies", + "default": null, + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" + }, + { + "alias": "source", + "default": null, + "description": "A single file that belongs to this target.\n\nPath is relative to the BUILD file's directory, e.g. `source='example.ext'`.", + "provider": "", + "required": true, + "type_hint": "str" + }, + { + "alias": "jvm_jdk", + "default": null, + "description": "The major version of the JDK that this target should be built with. If not defined, will default to `[jvm].default_source_jdk`.", + "provider": "pants.backend.experimental.codegen.thrift.apache.java", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "python_resolve", + "default": null, + "description": "The resolve from `[python].resolves` to use.\n\nIf not defined, will default to `[python].default_resolve`.\n\nAll dependencies must share the same value for their `resolve` field.", + "provider": "pants.backend.codegen.thrift.apache.python", + "required": false, "type_hint": "str | None" }, { - "alias": "dependencies", + "alias": "jvm_resolve", "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", - "provider": "", + "description": "The resolve from `[jvm].resolves` to use when compiling this target.\n\nIf not defined, will default to `[jvm].default_resolve`.", + "provider": "pants.backend.experimental.codegen.thrift.apache.java", "required": false, - "type_hint": "Iterable[str] | None" + "type_hint": "str | None" }, { - "alias": "sources", - "default": "('*.tf',)", - "description": "A list of files and globs that belong to this target.\n\nPaths are relative to the BUILD file's directory. You can ignore files/globs by prefixing them with `!`.\n\nExample: `sources=['example.tf', 'new_*.tf', '!old_ignore.tf']`", - "provider": "", + "alias": "finagle", + "default": "False", + "description": "If True, then also generate Finagle classes for services when using Scrooge as the Thrift generator.", + "provider": "pants.backend.experimental.codegen.thrift.scrooge.java", "required": false, - "type_hint": "Iterable[str] | None" + "type_hint": "bool" } ], - "provider": "pants.backend.experimental.terraform", - "summary": "A single Terraform module corresponding to a directory." + "provider": "pants.backend.codegen.thrift.apache.python", + "summary": "A single Thrift file used to generate various languages." }, - "thrift_source": { - "alias": "thrift_source", - "description": "A single Thrift file used to generate various languages.\n\nSee language-specific docs:\n Python: https://www.pantsbuild.org/v2.18/docs/thrift-python", + "thrift_sources": { + "alias": "thrift_sources", + "description": "Generate a `thrift_source` target for each file in the `sources` field.", "fields": [ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -70836,26 +81501,34 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" }, { - "alias": "dependencies", - "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "alias": "sources", + "default": "('*.thrift',)", + "description": "A list of files and globs that belong to this target.\n\nPaths are relative to the BUILD file's directory. You can ignore files/globs by prefixing them with `!`.\n\nExample: `sources=['example.thrift', 'new_*.thrift', '!old_ignore.thrift']`", "provider": "", "required": false, "type_hint": "Iterable[str] | None" }, { - "alias": "source", + "alias": "overrides", "default": null, - "description": "A single file that belongs to this target.\n\nPath is relative to the BUILD file's directory, e.g. `source='example.ext'`.", + "description": "Override the field values for generated `thrift_source` targets.\n\nExpects a dictionary of relative file paths and globs to a dictionary for the overrides. You may either use a string for a single path / glob, or a string tuple for multiple paths / globs. Each override is a dictionary of field names to the overridden value.\n\nFor example:\n\n overrides={\n \"bar.thrift\": {\"description\": \"our user model\"]},\n (\"foo.thrift\", \"bar.thrift\"): {\"tags\": [\"overridden\"]},\n }\n\nFile paths and globs are relative to the BUILD file's directory. Every overridden file is validated to belong to this target's `sources` field.\n\nIf you'd like to override a field's value for every `thrift_source` target generated by this target, change the field directly on this target rather than using the `overrides` field.\n\nYou can specify the same file name in multiple keys, so long as you don't override the same field more than one time for the file.", "provider": "", - "required": true, - "type_hint": "str" + "required": false, + "type_hint": "Dict[Union[str, Tuple[str, ...]], Dict[str, Any]] | None" + }, + { + "alias": "jvm_jdk", + "default": null, + "description": "The major version of the JDK that this target should be built with. If not defined, will default to `[jvm].default_source_jdk`.", + "provider": "pants.backend.experimental.codegen.thrift.apache.java", + "required": false, + "type_hint": "str | None" }, { "alias": "python_resolve", @@ -70864,19 +81537,43 @@ "provider": "pants.backend.codegen.thrift.apache.python", "required": false, "type_hint": "str | None" + }, + { + "alias": "jvm_resolve", + "default": null, + "description": "The resolve from `[jvm].resolves` to use when compiling this target.\n\nIf not defined, will default to `[jvm].default_resolve`.", + "provider": "pants.backend.experimental.codegen.thrift.apache.java", + "required": false, + "type_hint": "str | None" + }, + { + "alias": "finagle", + "default": "False", + "description": "If True, then also generate Finagle classes for services when using Scrooge as the Thrift generator.", + "provider": "pants.backend.experimental.codegen.thrift.scrooge.java", + "required": false, + "type_hint": "bool" + }, + { + "alias": "dependencies", + "default": null, + "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", + "provider": "", + "required": false, + "type_hint": "Iterable[str] | None" } ], "provider": "pants.backend.codegen.thrift.apache.python", - "summary": "A single Thrift file used to generate various languages." + "summary": "Generate a `thrift_source` target for each file in the `sources` field." }, - "thrift_sources": { - "alias": "thrift_sources", - "description": "Generate a `thrift_source` target for each file in the `sources` field.", + "vcs_version": { + "alias": "vcs_version", + "description": "Generates a version string from VCS state.\n\nUses a constrained but useful subset of the full functionality of setuptools_scm (https://github.com/pypa/setuptools_scm). These constraints avoid pitfalls in the interaction of setuptools_scm with Pants's hermetic environments.\n\nIn particular, we ignore any existing setuptools_scm config. Instead you must provide a subset of that config in this target's fields.\n\nIf you need functionality that is not currently exposed here, please reach out to us at https://www.pantsbuild.org/v2.18/docs/getting-help.", "fields": [ { "alias": "tags", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", + "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag.", "provider": "", "required": false, "type_hint": "Iterable[str] | None" @@ -70884,125 +81581,713 @@ { "alias": "description", "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", + "description": "A human-readable description of the target.\n\nUse `pants list --documented ::` to see all targets with descriptions.", "provider": "", "required": false, "type_hint": "str | None" }, { - "alias": "sources", - "default": "('*.thrift',)", - "description": "A list of files and globs that belong to this target.\n\nPaths are relative to the BUILD file's directory. You can ignore files/globs by prefixing them with `!`.\n\nExample: `sources=['example.thrift', 'new_*.thrift', '!old_ignore.thrift']`", + "alias": "tag_regex", + "default": "'^(?:[\\\\w-]+-)?(?P[vV]?\\\\d+(?:\\\\.\\\\d+){0,2}[^\\\\+]*)(?:\\\\+.*)?$'", + "description": "A Python regex string to extract the version string from a VCS tag.\n\nThe regex needs to contain either a single match group, or a group named version, that captures the actual version information.\n\nNote that this is unrelated to the tags field and Pants's own tags concept.\n\nSee https://github.com/pypa/setuptools_scm for implementation details.", "provider": "", "required": false, - "type_hint": "Iterable[str] | None" + "type_hint": "str | None" }, { - "alias": "overrides", + "alias": "generate_to", "default": null, - "description": "Override the field values for generated `thrift_source` targets.\n\nExpects a dictionary of relative file paths and globs to a dictionary for the overrides. You may either use a string for a single path / glob, or a string tuple for multiple paths / globs. Each override is a dictionary of field names to the overridden value.\n\nFor example:\n\n overrides={\n \"bar.thrift\": {\"description\": \"our user model\"]},\n (\"foo.thrift\", \"bar.thrift\"): {\"tags\": [\"overridden\"]},\n }\n\nFile paths and globs are relative to the BUILD file's directory. Every overridden file is validated to belong to this target's `sources` field.\n\nIf you'd like to override a field's value for every `thrift_source` target generated by this target, change the field directly on this target rather than using the `overrides` field.\n\nYou can specify the same file name in multiple keys, so long as you don't override the same field more than one time for the file.", + "description": "Generate the version data to this relative path, using the template field.\n\nNote that the generated output will not be written to disk in the source tree, but will be available as a generated dependency to code that depends on this target.", "provider": "", - "required": false, - "type_hint": "Dict[Union[str, Tuple[str, ...]], Dict[str, Any]] | None" + "required": true, + "type_hint": "str" + }, + { + "alias": "template", + "default": null, + "description": "Generate the version data using this format string, which takes a version format kwarg.\n\nE.g., `'version = \"{version}\"'`", + "provider": "", + "required": true, + "type_hint": "str" }, { "alias": "python_resolve", "default": null, "description": "The resolve from `[python].resolves` to use.\n\nIf not defined, will default to `[python].default_resolve`.\n\nAll dependencies must share the same value for their `resolve` field.", - "provider": "pants.backend.codegen.thrift.apache.python", + "provider": "pants.backend.experimental.python", "required": false, "type_hint": "str | None" + } + ], + "provider": "pants.backend.experimental.python", + "summary": "Generates a version string from VCS state." + } + }, + "scope_to_help_info": { + "": { + "advanced": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--backend-packages=\"['', '', ...]\"", + "config_key": "backend_packages", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--backend-packages=\"['', '', ...]\""], + "env_var": "PANTS_BACKEND_PACKAGES", + "fromfile": false, + "help": "Register functionality from these backends.\n\nThe backend packages must be present on the PYTHONPATH, typically because they are in the Pants core dist, in a plugin dist, or available as sources in the repo.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--backend-packages"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--backend-packages"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + }, + { + "details": "from command-line flag", + "rank": "FLAG", + "value": [ + "pants.backend.awslambda.python", + "pants.backend.build_files.fix.deprecations", + "pants.backend.build_files.fmt.black", + "pants.backend.build_files.fmt.buildifier", + "pants.backend.build_files.fmt.yapf", + "pants.backend.codegen.protobuf.lint.buf", + "pants.backend.codegen.protobuf.python", + "pants.backend.codegen.thrift.apache.python", + "pants.backend.docker", + "pants.backend.docker.lint.hadolint", + "pants.backend.experimental.adhoc", + "pants.backend.experimental.cc", + "pants.backend.experimental.cc.lint.clangformat", + "pants.backend.experimental.codegen.avro.java", + "pants.backend.experimental.codegen.protobuf.go", + "pants.backend.experimental.codegen.protobuf.java", + "pants.backend.experimental.codegen.protobuf.scala", + "pants.backend.experimental.codegen.thrift.apache.java", + "pants.backend.experimental.codegen.thrift.scrooge.java", + "pants.backend.experimental.codegen.thrift.scrooge.scala", + "pants.backend.experimental.cue", + "pants.backend.experimental.debian", + "pants.backend.experimental.go", + "pants.backend.experimental.go.debug_goals", + "pants.backend.experimental.go.lint.golangci_lint", + "pants.backend.experimental.go.lint.vet", + "pants.backend.experimental.helm", + "pants.backend.experimental.helm.check.kubeconform", + "pants.backend.experimental.java", + "pants.backend.experimental.java.debug_goals", + "pants.backend.experimental.java.lint.google_java_format", + "pants.backend.experimental.javascript", + "pants.backend.experimental.javascript.lint.prettier", + "pants.backend.experimental.kotlin", + "pants.backend.experimental.kotlin.debug_goals", + "pants.backend.experimental.kotlin.lint.ktlint", + "pants.backend.experimental.openapi", + "pants.backend.experimental.openapi.codegen.java", + "pants.backend.experimental.openapi.lint.spectral", + "pants.backend.experimental.python", + "pants.backend.experimental.python.framework.django", + "pants.backend.experimental.python.framework.stevedore", + "pants.backend.experimental.python.lint.add_trailing_comma", + "pants.backend.experimental.python.lint.autoflake", + "pants.backend.experimental.python.lint.pyupgrade", + "pants.backend.experimental.python.lint.ruff", + "pants.backend.experimental.python.packaging.pyoxidizer", + "pants.backend.experimental.python.typecheck.pyright", + "pants.backend.experimental.python.typecheck.pytype", + "pants.backend.experimental.rust", + "pants.backend.experimental.scala", + "pants.backend.experimental.scala.debug_goals", + "pants.backend.experimental.scala.lint.scalafmt", + "pants.backend.experimental.swift", + "pants.backend.experimental.terraform", + "pants.backend.experimental.terraform.lint.tfsec", + "pants.backend.experimental.tools.workunit_logger", + "pants.backend.experimental.tools.yamllint", + "pants.backend.experimental.visibility", + "pants.backend.google_cloud_function.python", + "pants.backend.plugin_development", + "pants.backend.project_info", + "pants.backend.python", + "pants.backend.python.lint.autoflake", + "pants.backend.python.lint.bandit", + "pants.backend.python.lint.black", + "pants.backend.python.lint.docformatter", + "pants.backend.python.lint.flake8", + "pants.backend.python.lint.isort", + "pants.backend.python.lint.pydocstyle", + "pants.backend.python.lint.pylint", + "pants.backend.python.lint.pyupgrade", + "pants.backend.python.lint.yapf", + "pants.backend.python.mixed_interpreter_constraints", + "pants.backend.python.providers.experimental.pyenv", + "pants.backend.python.providers.experimental.pyenv.custom_install", + "pants.backend.python.typecheck.mypy", + "pants.backend.shell", + "pants.backend.shell.lint.shellcheck", + "pants.backend.shell.lint.shfmt", + "pants.backend.tools.preamble", + "pants.backend.tools.taplo", + "pants.backend.url_handlers.s3", + "pants.core" + ] + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--plugins=\"['', '', ...]\"", + "config_key": "plugins", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--plugins=\"['', '', ...]\""], + "env_var": "PANTS_PLUGINS", + "fromfile": false, + "help": "Allow backends to be loaded from these plugins (usually released through PyPI). The default backends for each plugin will be loaded automatically. Other backends in a plugin can be loaded by listing them in `backend_packages` in the `[GLOBAL]` scope.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--plugins"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--plugins"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]plugins-force-resolve", + "config_key": "plugins_force_resolve", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]plugins-force-resolve"], + "env_var": "PANTS_PLUGINS_FORCE_RESOLVE", + "fromfile": false, + "help": "Re-resolve plugins, even if previously resolved.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--plugins-force-resolve", + "--no-plugins-force-resolve" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": [ + "--plugins-force-resolve", + "--no-plugins-force-resolve" + ], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]show-log-target", + "config_key": "show_log_target", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]show-log-target"], + "env_var": "PANTS_SHOW_LOG_TARGET", + "fromfile": false, + "help": "Display the target where a log message originates in that log message's output. This can be helpful when paired with `--log-levels-by-target`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--show-log-target", "--no-show-log-target"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": [ + "--show-log-target", + "--no-show-log-target" + ], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--log-levels-by-target=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "log_levels_by_target", + "default": {}, + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--log-levels-by-target=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_LOG_LEVELS_BY_TARGET", + "fromfile": false, + "help": "Set a more specific logging level for one or more logging targets. The names of logging targets are specified in log strings when the --show-log-target option is set. The logging levels are one of: \"error\", \"warn\", \"info\", \"debug\", \"trace\". All logging targets not specified here use the global log level set with `--level`. For example, you can set `--log-levels-by-target='{\"workunit_store\": \"info\", \"pants.engine.rules\": \"warn\"}'`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--log-levels-by-target"], + "target_field_name": null, + "typ": "dict", + "unscoped_cmd_line_args": ["--log-levels-by-target"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": {} + }, + { + "details": "", + "rank": "HARDCODED", + "value": {} + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]log-show-rust-3rdparty", + "config_key": "log_show_rust_3rdparty", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]log-show-rust-3rdparty"], + "env_var": "PANTS_LOG_SHOW_RUST_3RDPARTY", + "fromfile": false, + "help": "Whether to show/hide logging done by 3rdparty Rust crates used by the Pants engine.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--log-show-rust-3rdparty", + "--no-log-show-rust-3rdparty" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": [ + "--log-show-rust-3rdparty", + "--no-log-show-rust-3rdparty" + ], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--ignore-warnings=\"['', '', ...]\"", + "config_key": "ignore_warnings", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--ignore-warnings=\"['', '', ...]\""], + "env_var": "PANTS_IGNORE_WARNINGS", + "fromfile": false, + "help": "Ignore logs and warnings matching these strings.\n\nNormally, Pants will look for literal matches from the start of the log/warning message, but you can prefix the ignore with `$regex$` for Pants to instead treat your string as a regex pattern. For example:\n\n ignore_warnings = [\n \"DEPRECATED: option 'config' in scope 'flake8' will be removed\",\n '$regex$:No files\\s*'\n ]", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--ignore-warnings"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--ignore-warnings"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pants-version=", + "config_key": "pants_version", + "default": "", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--pants-version="], + "env_var": "PANTS_VERSION", + "fromfile": false, + "help": "Use this Pants version. Note that Pants only uses this to verify that you are using the requested version, as Pants cannot dynamically change the version it is using once the program is already running.\n\nIf you use the `pants` script from https://www.pantsbuild.org/v2.18/docs/installation, however, changing the value in your `pants.toml` will cause the new version to be installed and run automatically.\n\nRun `pants --version` to check what is being used.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--pants-version"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--pants-version"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "2.18.1" + }, + { + "details": "from env var PANTS_VERSION", + "rank": "ENVIRONMENT", + "value": "2.18.1" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pants-bin-name=", + "config_key": "pants_bin_name", + "default": "pants", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--pants-bin-name="], + "env_var": "PANTS_BIN_NAME", + "fromfile": false, + "help": "The name of the script or binary used to invoke Pants. Useful when printing help messages.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--pants-bin-name"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--pants-bin-name"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "pants" + }, + { + "details": "from env var PANTS_BIN_NAME", + "rank": "ENVIRONMENT", + "value": "pants" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pants-workdir=", + "config_key": "pants_workdir", + "default": "/home/runner/work/pantsbuild.org/pantsbuild.org/.pants.d", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--pants-workdir="], + "env_var": "PANTS_WORKDIR", + "fromfile": false, + "help": "Write intermediate logs and output files to this dir.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--pants-workdir"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--pants-workdir"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "/home/runner/work/pantsbuild.org/pantsbuild.org/.pants.d" + } + ] + } }, { - "alias": "dependencies", - "default": null, - "description": "Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`.\n\nThis augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result.\n\nSee https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory.\n\nIf the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`.\n\nYou may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.", - "provider": "", - "required": false, - "type_hint": "Iterable[str] | None" - } - ], - "provider": "pants.backend.codegen.thrift.apache.python", - "summary": "Generate a `thrift_source` target for each file in the `sources` field." - }, - "vcs_version": { - "alias": "vcs_version", - "description": "Generates a version string from VCS state.\n\nUses a constrained but useful subset of the full functionality of setuptools_scm (https://github.com/pypa/setuptools_scm). These constraints avoid pitfalls in the interaction of setuptools_scm with Pants's hermetic environments.\n\nIn particular, we ignore any existing setuptools_scm config. Instead you must provide a subset of that config in this target's fields.\n\nIf you need functionality that is not currently exposed here, please reach out to us at https://www.pantsbuild.org/v2.18/docs/getting-help.", - "fields": [ - { - "alias": "tags", + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pants-physical-workdir-base=", + "config_key": "pants_physical_workdir_base", "default": null, - "description": "Arbitrary strings to describe a target.\n\nFor example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag.", - "provider": "", - "required": false, - "type_hint": "Iterable[str] | None" + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--pants-physical-workdir-base="], + "env_var": "PANTS_PHYSICAL_WORKDIR_BASE", + "fromfile": false, + "help": "When set, a base directory in which to store `--pants-workdir` contents. If this option is a set, the workdir will be created as symlink into a per-workspace subdirectory.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--pants-physical-workdir-base"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--pants-physical-workdir-base"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } }, { - "alias": "description", - "default": null, - "description": "A human-readable description of the target.\n\nUse `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions.", - "provider": "", - "required": false, - "type_hint": "str | None" + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pants-distdir=", + "config_key": "pants_distdir", + "default": "/home/runner/work/pantsbuild.org/pantsbuild.org/dist", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--pants-distdir="], + "env_var": "PANTS_DISTDIR", + "fromfile": false, + "help": "Write end products, such as the results of `pants package`, to this dir.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--pants-distdir"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--pants-distdir"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "/home/runner/work/pantsbuild.org/pantsbuild.org/dist" + } + ] + } }, { - "alias": "tag_regex", - "default": "'^(?:[\\\\w-]+-)?(?P[vV]?\\\\d+(?:\\\\.\\\\d+){0,2}[^\\\\+]*)(?:\\\\+.*)?$'", - "description": "A Python regex string to extract the version string from a VCS tag.\n\nThe regex needs to contain either a single match group, or a group named version, that captures the actual version information.\n\nNote that this is unrelated to the tags field and Pants's own tags concept.\n\nSee https://github.com/pypa/setuptools_scm for implementation details.", - "provider": "", - "required": false, - "type_hint": "str | None" + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pants-subprocessdir=", + "config_key": "pants_subprocessdir", + "default": "/home/runner/work/pantsbuild.org/pantsbuild.org/.pids", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--pants-subprocessdir="], + "env_var": "PANTS_SUBPROCESSDIR", + "fromfile": false, + "help": "The directory to use for tracking subprocess metadata. This should live outside of the dir used by `pants_workdir` to allow for tracking subprocesses that outlive the workdir data.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--pants-subprocessdir"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--pants-subprocessdir"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "/home/runner/work/pantsbuild.org/pantsbuild.org/.pids" + } + ] + } }, { - "alias": "generate_to", - "default": null, - "description": "Generate the version data to this relative path, using the template field.\n\nNote that the generated output will not be written to disk in the source tree, but will be available as a generated dependency to code that depends on this target.", - "provider": "", - "required": true, - "type_hint": "str" + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pants-config-files=\"['', '', ...]\"", + "config_key": "pants_config_files", + "default": [ + "/home/runner/work/pantsbuild.org/pantsbuild.org/pants.toml" + ], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--pants-config-files=\"['', '', ...]\""], + "env_var": "PANTS_CONFIG_FILES", + "fromfile": false, + "help": "Paths to Pants config files. This may only be set through the environment variable `PANTS_CONFIG_FILES` and the command line argument `--pants-config-files`; it will be ignored if in a config file like `pants.toml`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--pants-config-files"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--pants-config-files"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [ + "/home/runner/work/pantsbuild.org/pantsbuild.org/pants.toml" + ] + } + ] + } }, { - "alias": "template", - "default": null, - "description": "Generate the version data using this format string, which takes a version format kwarg.\n\nE.g., `'version = \"{version}\"'`", - "provider": "", - "required": true, - "type_hint": "str" + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]pantsrc", + "config_key": "pantsrc", + "default": true, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]pantsrc"], + "env_var": "PANTS_PANTSRC", + "fromfile": false, + "help": "Use pantsrc files located at the paths specified in the global option `pantsrc_files`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--pantsrc", "--no-pantsrc"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--pantsrc", "--no-pantsrc"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true + } + ] + } }, { - "alias": "python_resolve", - "default": null, - "description": "The resolve from `[python].resolves` to use.\n\nIf not defined, will default to `[python].default_resolve`.\n\nAll dependencies must share the same value for their `resolve` field.", - "provider": "pants.backend.experimental.python", - "required": false, - "type_hint": "str | None" - } - ], - "provider": "pants.backend.experimental.python", - "summary": "Generates a version string from VCS state." - } - }, - "scope_to_help_info": { - "": { - "advanced": [ + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pantsrc-files=\"[, , ...]\"", + "config_key": "pantsrc_files", + "default": ["/etc/pantsrc", "~/.pants.rc", ".pants.rc"], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--pantsrc-files=\"[, , ...]\""], + "env_var": "PANTS_PANTSRC_FILES", + "fromfile": false, + "help": "Override config with values from these files, using syntax matching that of `--pants-config-files`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--pantsrc-files"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--pantsrc-files"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": ["/etc/pantsrc", "~/.pants.rc", ".pants.rc"] + } + ] + } + }, { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--backend-packages=\"['', '', ...]\"", - "config_key": "backend_packages", + "comma_separated_display_args": "--pythonpath=\"['', '', ...]\"", + "config_key": "pythonpath", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--backend-packages=\"['', '', ...]\""], - "env_var": "PANTS_BACKEND_PACKAGES", + "display_args": ["--pythonpath=\"['', '', ...]\""], + "env_var": "PANTS_PYTHONPATH", "fromfile": false, - "help": "Register functionality from these backends.\n\nThe backend packages must be present on the PYTHONPATH, typically because they are in the Pants core dist, in a plugin dist, or available as sources in the repo.", + "help": "Add these directories to PYTHONPATH to search for plugins. This does not impact the PYTHONPATH used by Pants when running your Python code.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--backend-packages"], + "scoped_cmd_line_args": ["--pythonpath"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--backend-packages"], + "unscoped_cmd_line_args": ["--pythonpath"], "value_history": { "ranked_values": [ { @@ -71014,69 +82299,107 @@ "details": "", "rank": "HARDCODED", "value": [] + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]verify-config", + "config_key": "verify_config", + "default": true, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]verify-config"], + "env_var": "PANTS_VERIFY_CONFIG", + "fromfile": false, + "help": "Verify that all config file values correspond to known options.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--verify-config", "--no-verify-config"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--verify-config", "--no-verify-config"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--stats-record-option-scopes=\"['', '', ...]\"", + "config_key": "stats_record_option_scopes", + "default": ["*"], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--stats-record-option-scopes=\"['', '', ...]\"" + ], + "env_var": "PANTS_STATS_RECORD_OPTION_SCOPES", + "fromfile": false, + "help": "Option scopes to record in stats on run completion. Options may be selected by joining the scope and the option with a ^ character, i.e. to get option `pantsd` in the GLOBAL scope, you'd pass `GLOBAL^pantsd`. Add a '*' to the list to capture all known scopes.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--stats-record-option-scopes"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--stats-record-option-scopes"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] }, { - "details": "from env var PANTS_BACKEND_PACKAGES", - "rank": "ENVIRONMENT", + "details": "", + "rank": "HARDCODED", + "value": ["*"] + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pants-ignore=\"['', '', ...]\"", + "config_key": "pants_ignore", + "default": [".*/", "/dist/", "__pycache__"], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--pants-ignore=\"['', '', ...]\""], + "env_var": "PANTS_IGNORE", + "fromfile": false, + "help": "Paths to ignore for all filesystem operations performed by pants (e.g. BUILD file scanning, glob matching, etc).\n\nPatterns use the gitignore syntax (https://git-scm.com/docs/gitignore). The `pants_distdir` and `pants_workdir` locations are automatically ignored.\n\n`pants_ignore` can be used in tandem with `pants_ignore_use_gitignore`; any rules specified here are applied after rules specified in a .gitignore file.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--pants-ignore"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--pants-ignore"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", "value": [] }, { - "details": "from command-line flag", - "rank": "FLAG", - "value": [ - "pants.backend.build_files.fix.deprecations", - "pants.backend.build_files.fmt.black", - "pants.backend.build_files.fmt.buildifier", - "pants.backend.build_files.fmt.yapf", - "pants.backend.awslambda.python", - "pants.backend.codegen.protobuf.lint.buf", - "pants.backend.codegen.protobuf.python", - "pants.backend.codegen.thrift.apache.python", - "pants.backend.docker", - "pants.backend.docker.lint.hadolint", - "pants.backend.experimental.adhoc", - "pants.backend.experimental.codegen.protobuf.go", - "pants.backend.experimental.codegen.protobuf.java", - "pants.backend.experimental.codegen.protobuf.scala", - "pants.backend.experimental.go", - "pants.backend.experimental.helm", - "pants.backend.experimental.java", - "pants.backend.experimental.java.lint.google_java_format", - "pants.backend.experimental.kotlin", - "pants.backend.experimental.kotlin.lint.ktlint", - "pants.backend.experimental.openapi", - "pants.backend.experimental.openapi.lint.spectral", - "pants.backend.experimental.python", - "pants.backend.experimental.python.framework.stevedore", - "pants.backend.experimental.python.lint.add_trailing_comma", - "pants.backend.experimental.python.lint.ruff", - "pants.backend.experimental.python.packaging.pyoxidizer", - "pants.backend.experimental.python.typecheck.pytype", - "pants.backend.experimental.scala", - "pants.backend.experimental.scala.lint.scalafmt", - "pants.backend.experimental.terraform", - "pants.backend.experimental.tools.workunit_logger", - "pants.backend.experimental.tools.yamllint", - "pants.backend.google_cloud_function.python", - "pants.backend.plugin_development", - "pants.backend.python", - "pants.backend.python.lint.autoflake", - "pants.backend.python.lint.bandit", - "pants.backend.python.lint.black", - "pants.backend.python.lint.docformatter", - "pants.backend.python.lint.flake8", - "pants.backend.python.lint.isort", - "pants.backend.python.lint.pydocstyle", - "pants.backend.python.lint.pylint", - "pants.backend.python.lint.pyupgrade", - "pants.backend.python.lint.yapf", - "pants.backend.python.mixed_interpreter_constraints", - "pants.backend.python.typecheck.mypy", - "pants.backend.shell", - "pants.backend.shell.lint.shellcheck", - "pants.backend.shell.lint.shfmt", - "pants.backend.tools.preamble" - ] + "details": "", + "rank": "HARDCODED", + "value": [".*/", "/dist/", "__pycache__"] } ] } @@ -71084,32 +82407,138 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--plugins=\"['', '', ...]\"", - "config_key": "plugins", - "default": [], + "comma_separated_display_args": "--[no-]pants-ignore-use-gitignore", + "config_key": "pants_ignore_use_gitignore", + "default": true, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]pants-ignore-use-gitignore"], + "env_var": "PANTS_IGNORE_USE_GITIGNORE", + "fromfile": false, + "help": "Include patterns from `.gitignore`, `.git/info/exclude`, and the global gitignore files in the option `[GLOBAL].pants_ignore`, which is used for Pants to ignore filesystem operations on those patterns.\n\nPatterns from `[GLOBAL].pants_ignore` take precedence over these files' rules. For example, you can use `!my_pattern` in `pants_ignore` to have Pants operate on files that are gitignored.\n\nWarning: this does not yet support reading nested gitignore files.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--pants-ignore-use-gitignore", + "--no-pants-ignore-use-gitignore" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": [ + "--pants-ignore-use-gitignore", + "--no-pants-ignore-use-gitignore" + ], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--logdir=", + "config_key": "logdir", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--logdir="], + "env_var": "PANTS_LOGDIR", + "fromfile": false, + "help": "Write logs to files under this directory.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--logdir"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--logdir"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pantsd-timeout-when-multiple-invocations=", + "config_key": "pantsd_timeout_when_multiple_invocations", + "default": 60.0, + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--pantsd-timeout-when-multiple-invocations=" + ], + "env_var": "PANTS_PANTSD_TIMEOUT_WHEN_MULTIPLE_INVOCATIONS", + "fromfile": false, + "help": "The maximum amount of time to wait for the invocation to start until raising a timeout exception. Because pantsd currently does not support parallel runs, any prior running Pants command must be finished for the current one to start. To never timeout, use the value -1.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--pantsd-timeout-when-multiple-invocations" + ], + "target_field_name": null, + "typ": "float", + "unscoped_cmd_line_args": [ + "--pantsd-timeout-when-multiple-invocations" + ], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": 60.0 + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pantsd-max-memory-usage=", + "config_key": "pantsd_max_memory_usage", + "default": "4GiB", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--plugins=\"['', '', ...]\""], - "env_var": "PANTS_PLUGINS", + "display_args": ["--pantsd-max-memory-usage="], + "env_var": "PANTS_PANTSD_MAX_MEMORY_USAGE", "fromfile": false, - "help": "Allow backends to be loaded from these plugins (usually released through PyPI). The default backends for each plugin will be loaded automatically. Other backends in a plugin can be loaded by listing them in `backend_packages` in the `[GLOBAL]` scope.", + "help": "The maximum memory usage of the pantsd process.\n\nWhen the maximum memory is exceeded, the daemon will restart gracefully, although all previous in-memory caching will be lost. Setting too low means that you may miss out on some caching, whereas setting too high may over-consume resources and may result in the operating system killing Pantsd due to memory overconsumption (e.g. via the OOM killer).\n\nYou can suffix with `GiB`, `MiB`, `KiB`, or `B` to indicate the unit, e.g. `2GiB` or `2.12GiB`. A bare number will be in bytes.\n\nThere is at most one pantsd process per workspace.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--plugins"], + "scoped_cmd_line_args": ["--pantsd-max-memory-usage"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--plugins"], + "typ": "memory_size", + "unscoped_cmd_line_args": ["--pantsd-max-memory-usage"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": 4294967296 } ] } @@ -71117,26 +82546,26 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]plugins-force-resolve", - "config_key": "plugins_force_resolve", + "comma_separated_display_args": "--[no-]print-stacktrace", + "config_key": "print_stacktrace", "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]plugins-force-resolve"], - "env_var": "PANTS_PLUGINS_FORCE_RESOLVE", + "display_args": ["--[no-]print-stacktrace"], + "env_var": "PANTS_PRINT_STACKTRACE", "fromfile": false, - "help": "Re-resolve plugins, even if previously resolved.", + "help": "Print the full exception stack trace for any errors.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--plugins-force-resolve", - "--no-plugins-force-resolve" + "--print-stacktrace", + "--no-print-stacktrace" ], "target_field_name": null, "typ": "bool", "unscoped_cmd_line_args": [ - "--plugins-force-resolve", - "--no-plugins-force-resolve" + "--print-stacktrace", + "--no-print-stacktrace" ], "value_history": { "ranked_values": [ @@ -71156,24 +82585,49 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]show-log-target", - "config_key": "show_log_target", - "default": false, + "comma_separated_display_args": "--engine-visualize-to=", + "config_key": "engine_visualize_to", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]show-log-target"], - "env_var": "PANTS_SHOW_LOG_TARGET", + "display_args": ["--engine-visualize-to="], + "env_var": "PANTS_ENGINE_VISUALIZE_TO", "fromfile": false, - "help": "Display the target where a log message originates in that log message's output. This can be helpful when paired with `--log-levels-by-target`.", + "help": "A directory to write execution and rule graphs to as `dot` files. The contents of the directory will be overwritten if any filenames collide.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--show-log-target", "--no-show-log-target"], + "scoped_cmd_line_args": ["--engine-visualize-to"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--show-log-target", - "--no-show-log-target" - ], + "typ": "dir_option", + "unscoped_cmd_line_args": ["--engine-visualize-to"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pantsd-pailgun-port=", + "config_key": "pantsd_pailgun_port", + "default": 0, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--pantsd-pailgun-port="], + "env_var": "PANTS_PANTSD_PAILGUN_PORT", + "fromfile": false, + "help": "The port to bind the Pants nailgun server to. Defaults to a random port.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--pantsd-pailgun-port"], + "target_field_name": null, + "typ": "int", + "unscoped_cmd_line_args": ["--pantsd-pailgun-port"], "value_history": { "ranked_values": [ { @@ -71184,7 +82638,7 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": 0 } ] } @@ -71192,34 +82646,34 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--log-levels-by-target=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "log_levels_by_target", - "default": {}, + "comma_separated_display_args": "--pantsd-invalidation-globs=\"['', '', ...]\"", + "config_key": "pantsd_invalidation_globs", + "default": [], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--log-levels-by-target=\"{'key1': val1, 'key2': val2, ...}\"" + "--pantsd-invalidation-globs=\"['', '', ...]\"" ], - "env_var": "PANTS_LOG_LEVELS_BY_TARGET", + "env_var": "PANTS_PANTSD_INVALIDATION_GLOBS", "fromfile": false, - "help": "Set a more specific logging level for one or more logging targets. The names of logging targets are specified in log strings when the --show-log-target option is set. The logging levels are one of: \"error\", \"warn\", \"info\", \"debug\", \"trace\". All logging targets not specified here use the global log level set with `--level`. For example, you can set `--log-levels-by-target='{\"workunit_store\": \"info\", \"pants.engine.rules\": \"warn\"}'`.", + "help": "Filesystem events matching any of these globs will trigger a daemon restart. Pants's own code, plugins, and `--pants-config-files` are inherently invalidated.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--log-levels-by-target"], + "scoped_cmd_line_args": ["--pantsd-invalidation-globs"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--log-levels-by-target"], + "typ": "list", + "unscoped_cmd_line_args": ["--pantsd-invalidation-globs"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": {} + "value": [] }, { "details": "", "rank": "HARDCODED", - "value": {} + "value": [] } ] } @@ -71227,27 +82681,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]log-show-rust-3rdparty", - "config_key": "log_show_rust_3rdparty", - "default": false, + "comma_separated_display_args": "--rule-threads-core=", + "config_key": "rule_threads_core", + "default": "max(2, #cores/2)", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]log-show-rust-3rdparty"], - "env_var": "PANTS_LOG_SHOW_RUST_3RDPARTY", + "display_args": ["--rule-threads-core="], + "env_var": "PANTS_RULE_THREADS_CORE", "fromfile": false, - "help": "Whether to show/hide logging done by 3rdparty Rust crates used by the Pants engine.", + "help": "The number of threads to keep active and ready to execute `@rule` logic (see also: `--rule-threads-max`).\n\nValues less than 2 are not currently supported.\n\nThis value is independent of the number of processes that may be spawned in parallel locally (controlled by `--process-execution-local-parallelism`).", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--log-show-rust-3rdparty", - "--no-log-show-rust-3rdparty" - ], + "scoped_cmd_line_args": ["--rule-threads-core"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--log-show-rust-3rdparty", - "--no-log-show-rust-3rdparty" - ], + "typ": "int", + "unscoped_cmd_line_args": ["--rule-threads-core"], "value_history": { "ranked_values": [ { @@ -71258,7 +82706,7 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": 2 } ] } @@ -71266,32 +82714,27 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--ignore-warnings=\"['', '', ...]\"", - "config_key": "ignore_warnings", - "default": [], + "comma_separated_display_args": "--rule-threads-max=", + "config_key": "rule_threads_max", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--ignore-warnings=\"['', '', ...]\""], - "env_var": "PANTS_IGNORE_WARNINGS", + "display_args": ["--rule-threads-max="], + "env_var": "PANTS_RULE_THREADS_MAX", "fromfile": false, - "help": "Ignore logs and warnings matching these strings.\n\nNormally, Pants will look for literal matches from the start of the log/warning message, but you can prefix the ignore with `$regex$` for Pants to instead treat your string as a regex pattern. For example:\n\n ignore_warnings = [\n \"DEPRECATED: option 'config' in scope 'flake8' will be removed\",\n '$regex$:No files\\s*'\n ]", + "help": "The maximum number of threads to use to execute `@rule` logic. Defaults to a small multiple of `--rule-threads-core`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--ignore-warnings"], + "scoped_cmd_line_args": ["--rule-threads-max"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--ignore-warnings"], + "typ": "int", + "unscoped_cmd_line_args": ["--rule-threads-max"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] - }, - { - "details": "", - "rank": "HARDCODED", - "value": [] + "value": null } ] } @@ -71299,21 +82742,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pants-version=", - "config_key": "pants_version", - "default": "", + "comma_separated_display_args": "--local-store-dir=", + "config_key": "local_store_dir", + "default": "/home/runner/.cache/pants/lmdb_store", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pants-version="], - "env_var": "PANTS_VERSION", + "display_args": ["--local-store-dir="], + "env_var": "PANTS_LOCAL_STORE_DIR", "fromfile": false, - "help": "Use this Pants version. Note that Pants only uses this to verify that you are using the requested version, as Pants cannot dynamically change the version it is using once the program is already running.\n\nIf you use the `scie-pants-linux-x86_64` script from https://www.pantsbuild.org/v2.18/docs/installation, however, changing the value in your `pants.toml` will cause the new version to be installed and run automatically.\n\nRun `scie-pants-linux-x86_64 --version` to check what is being used.", + "help": "Directory to use for the local file store, which stores the results of subprocesses run by Pants.\n\nThe path may be absolute or relative. If the directory is within the build root, be sure to include it in `--pants-ignore`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pants-version"], + "scoped_cmd_line_args": ["--local-store-dir"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--pants-version"], + "unscoped_cmd_line_args": ["--local-store-dir"], "value_history": { "ranked_values": [ { @@ -71324,12 +82767,7 @@ { "details": null, "rank": "HARDCODED", - "value": "2.18.0rc5" - }, - { - "details": "from env var PANTS_VERSION", - "rank": "ENVIRONMENT", - "value": "2.18.0rc5" + "value": "/home/runner/.cache/pants/lmdb_store" } ] } @@ -71337,21 +82775,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pants-bin-name=", - "config_key": "pants_bin_name", - "default": "pants", + "comma_separated_display_args": "--local-store-shard-count=", + "config_key": "local_store_shard_count", + "default": 16, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pants-bin-name="], - "env_var": "PANTS_BIN_NAME", + "display_args": ["--local-store-shard-count="], + "env_var": "PANTS_LOCAL_STORE_SHARD_COUNT", "fromfile": false, - "help": "The name of the script or binary used to invoke Pants. Useful when printing help messages.", + "help": "The number of LMDB shards created for the local store. This setting also impacts the maximum size of stored files: see `--local-store-files-max-size-bytes` for more information.\n\nBecause LMDB allows only one simultaneous writer per database, the store is split into multiple shards to allow for more concurrent writers. The faster your disks are, the fewer shards you are likely to need for performance.\n\nNB: After changing this value, you will likely want to manually clear the `--local-store-dir` directory to clear the space used by old shard layouts.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pants-bin-name"], + "scoped_cmd_line_args": ["--local-store-shard-count"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--pants-bin-name"], + "typ": "int", + "unscoped_cmd_line_args": ["--local-store-shard-count"], "value_history": { "ranked_values": [ { @@ -71362,12 +82800,7 @@ { "details": null, "rank": "HARDCODED", - "value": "pants" - }, - { - "details": "from env var PANTS_BIN_NAME", - "rank": "ENVIRONMENT", - "value": "/home/josh/work/scie-pants/dist/scie-pants-linux-x86_64" + "value": 16 } ] } @@ -71375,21 +82808,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pants-workdir=", - "config_key": "pants_workdir", - "default": "/tmp/tmp.MpwSc5OGVo/.pants.d", + "comma_separated_display_args": "--local-store-processes-max-size-bytes=", + "config_key": "local_store_processes_max_size_bytes", + "default": 16000000000, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pants-workdir="], - "env_var": "PANTS_WORKDIR", + "display_args": ["--local-store-processes-max-size-bytes="], + "env_var": "PANTS_LOCAL_STORE_PROCESSES_MAX_SIZE_BYTES", "fromfile": false, - "help": "Write intermediate logs and output files to this dir.", + "help": "The maximum size in bytes of the local store containing process cache entries. Stored below `--local-store-dir`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pants-workdir"], + "scoped_cmd_line_args": ["--local-store-processes-max-size-bytes"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--pants-workdir"], + "typ": "int", + "unscoped_cmd_line_args": ["--local-store-processes-max-size-bytes"], "value_history": { "ranked_values": [ { @@ -71400,7 +82833,7 @@ { "details": null, "rank": "HARDCODED", - "value": "/tmp/tmp.MpwSc5OGVo/.pants.d" + "value": 16000000000 } ] } @@ -71408,27 +82841,32 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pants-physical-workdir-base=", - "config_key": "pants_physical_workdir_base", - "default": null, + "comma_separated_display_args": "--local-store-files-max-size-bytes=", + "config_key": "local_store_files_max_size_bytes", + "default": 256000000000, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pants-physical-workdir-base="], - "env_var": "PANTS_PHYSICAL_WORKDIR_BASE", + "display_args": ["--local-store-files-max-size-bytes="], + "env_var": "PANTS_LOCAL_STORE_FILES_MAX_SIZE_BYTES", "fromfile": false, - "help": "When set, a base directory in which to store `--pants-workdir` contents. If this option is a set, the workdir will be created as symlink into a per-workspace subdirectory.", + "help": "The maximum size in bytes of the local store containing files. Stored below `--local-store-dir`.\n\nNB: This size value bounds the total size of all files, but (due to sharding of the store on disk) it also bounds the per-file size to (VALUE / `--local-store-shard-count`).\n\nThis value doesn't reflect space allocated on disk, or RAM allocated (it may be reflected in VIRT but not RSS). However, the default is lower than you might otherwise choose because macOS creates core dumps that include MMAP'd pages, and setting this too high might cause core dumps to use an unreasonable amount of disk if they are enabled.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pants-physical-workdir-base"], + "scoped_cmd_line_args": ["--local-store-files-max-size-bytes"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--pants-physical-workdir-base"], + "typ": "int", + "unscoped_cmd_line_args": ["--local-store-files-max-size-bytes"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": 256000000000 } ] } @@ -71436,21 +82874,23 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pants-distdir=", - "config_key": "pants_distdir", - "default": "/tmp/tmp.MpwSc5OGVo/dist", + "comma_separated_display_args": "--local-store-directories-max-size-bytes=", + "config_key": "local_store_directories_max_size_bytes", + "default": 16000000000, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pants-distdir="], - "env_var": "PANTS_DISTDIR", + "display_args": ["--local-store-directories-max-size-bytes="], + "env_var": "PANTS_LOCAL_STORE_DIRECTORIES_MAX_SIZE_BYTES", "fromfile": false, - "help": "Write end products, such as the results of `pants package`, to this dir.", + "help": "The maximum size in bytes of the local store containing directories. Stored below `--local-store-dir`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pants-distdir"], + "scoped_cmd_line_args": ["--local-store-directories-max-size-bytes"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--pants-distdir"], + "typ": "int", + "unscoped_cmd_line_args": [ + "--local-store-directories-max-size-bytes" + ], "value_history": { "ranked_values": [ { @@ -71461,7 +82901,7 @@ { "details": null, "rank": "HARDCODED", - "value": "/tmp/tmp.MpwSc5OGVo/dist" + "value": 16000000000 } ] } @@ -71469,21 +82909,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pants-subprocessdir=", - "config_key": "pants_subprocessdir", - "default": "/tmp/tmp.MpwSc5OGVo/.pids", + "comma_separated_display_args": "--named-caches-dir=", + "config_key": "named_caches_dir", + "default": "/home/runner/.cache/pants/named_caches", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pants-subprocessdir="], - "env_var": "PANTS_SUBPROCESSDIR", + "display_args": ["--named-caches-dir="], + "env_var": "PANTS_NAMED_CACHES_DIR", "fromfile": false, - "help": "The directory to use for tracking subprocess metadata. This should live outside of the dir used by `pants_workdir` to allow for tracking subprocesses that outlive the workdir data.", + "help": "Directory to use for named global caches for tools and processes with trusted, concurrency-safe caches.\n\nThe path may be absolute or relative. If the directory is within the build root, be sure to include it in `--pants-ignore`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pants-subprocessdir"], + "scoped_cmd_line_args": ["--named-caches-dir"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--pants-subprocessdir"], + "unscoped_cmd_line_args": ["--named-caches-dir"], "value_history": { "ranked_values": [ { @@ -71494,7 +82934,7 @@ { "details": null, "rank": "HARDCODED", - "value": "/tmp/tmp.MpwSc5OGVo/.pids" + "value": "/home/runner/.cache/pants/named_caches" } ] } @@ -71502,54 +82942,54 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pants-config-files=\"['', '', ...]\"", - "config_key": "pants_config_files", - "default": ["/tmp/tmp.MpwSc5OGVo/pants.toml"], + "comma_separated_display_args": "--local-execution-root-dir=", + "config_key": "local_execution_root_dir", + "default": "", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pants-config-files=\"['', '', ...]\""], - "env_var": "PANTS_CONFIG_FILES", + "display_args": ["--local-execution-root-dir="], + "env_var": "PANTS_LOCAL_EXECUTION_ROOT_DIR", "fromfile": false, - "help": "Paths to Pants config files. This may only be set through the environment variable `PANTS_CONFIG_FILES` and the command line argument `--pants-config-files`; it will be ignored if in a config file like `pants.toml`.", + "help": "Directory to use for local process execution sandboxing.\n\nThe path may be absolute or relative. If the directory is within the build root, be sure to include it in `--pants-ignore`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pants-config-files"], + "scoped_cmd_line_args": ["--local-execution-root-dir"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--pants-config-files"], + "typ": "str", + "unscoped_cmd_line_args": ["--local-execution-root-dir"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": ["/tmp/tmp.MpwSc5OGVo/pants.toml"] + "value": "/tmp" } ] } }, { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]pantsrc", - "config_key": "pantsrc", - "default": true, + "choices": ["fetch", "validate", "defer"], + "comma_separated_choices": "fetch, validate, defer", + "comma_separated_display_args": "--cache-content-behavior=", + "config_key": "cache_content_behavior", + "default": "fetch", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]pantsrc"], - "env_var": "PANTS_PANTSRC", + "display_args": ["--cache-content-behavior="], + "env_var": "PANTS_CACHE_CONTENT_BEHAVIOR", "fromfile": false, - "help": "Use pantsrc files located at the paths specified in the global option `pantsrc_files`.", + "help": "Controls how the content of cache entries is handled during process execution.\n\nWhen using a remote cache, the `fetch` behavior will fetch remote cache content from the remote store before considering the cache lookup a hit, while the `validate` behavior will only validate (for either a local or remote cache) that the content exists, without fetching it.\n\nThe `defer` behavior, on the other hand, will neither fetch nor validate the cache content before calling a cache hit a hit. This \"defers\" actually fetching the cache entry until Pants needs it (which may be never).\n\nThe `defer` mode is the most network efficient (because it will completely skip network requests in many cases), followed by the `validate` mode (since it can still skip fetching the content if no consumer ends up needing it). But both the `validate` and `defer` modes rely on an experimental feature called \"backtracking\" to attempt to recover if content later turns out to be missing (`validate` has a much narrower window for backtracking though, since content would need to disappear between validation and consumption: generally, within one `pantsd` session).", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pantsrc", "--no-pantsrc"], + "scoped_cmd_line_args": ["--cache-content-behavior"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--pantsrc", "--no-pantsrc"], + "typ": "CacheContentBehavior", + "unscoped_cmd_line_args": ["--cache-content-behavior"], "value_history": { "ranked_values": [ { @@ -71560,7 +83000,7 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": "fetch" } ] } @@ -71568,32 +83008,27 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pantsrc-files=\"[, , ...]\"", - "config_key": "pantsrc_files", - "default": ["/etc/pantsrc", "~/.pants.rc", ".pants.rc"], + "comma_separated_display_args": "--ca-certs-path=", + "config_key": "ca_certs_path", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pantsrc-files=\"[, , ...]\""], - "env_var": "PANTS_PANTSRC_FILES", + "display_args": ["--ca-certs-path="], + "env_var": "PANTS_CA_CERTS_PATH", "fromfile": false, - "help": "Override config with values from these files, using syntax matching that of `--pants-config-files`.", + "help": "Path to a file containing PEM-format CA certificates used for verifying secure connections when downloading files required by a build.\n\nEven when using the `docker_environment` and `remote_environment` targets, this path will be read from the local host, and those certs will be used in the environment.\n\nThis option cannot be overridden via environment targets, so if you need a different value than what the rest of your organization is using, override the value via an environment variable, CLI argument, or `.pants.rc` file. See https://www.pantsbuild.org/v2.18/docs/options.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pantsrc-files"], + "scoped_cmd_line_args": ["--ca-certs-path"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--pantsrc-files"], + "typ": "str", + "unscoped_cmd_line_args": ["--ca-certs-path"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] - }, - { - "details": "", - "rank": "HARDCODED", - "value": ["/etc/pantsrc", "~/.pants.rc", ".pants.rc"] + "value": null } ] } @@ -71601,32 +83036,27 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pythonpath=\"['', '', ...]\"", - "config_key": "pythonpath", - "default": [], + "comma_separated_display_args": "--process-total-child-memory-usage=", + "config_key": "process_total_child_memory_usage", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pythonpath=\"['', '', ...]\""], - "env_var": "PANTS_PYTHONPATH", + "display_args": ["--process-total-child-memory-usage="], + "env_var": "PANTS_PROCESS_TOTAL_CHILD_MEMORY_USAGE", "fromfile": false, - "help": "Add these directories to PYTHONPATH to search for plugins. This does not impact the PYTHONPATH used by Pants when running your Python code.", + "help": "The maximum memory usage for all \"pooled\" child processes.\n\nWhen set, this value participates in precomputing the pool size of child processes used by Pants (pooling is currently used only for the JVM). When not set, Pants will default to spawning `2 * --process-execution-local-parallelism` pooled processes.\n\nA high value would result in a high number of child processes spawned, potentially overconsuming your resources and triggering the OS' OOM killer. A low value would mean a low number of child processes launched and therefore less parallelism for the tasks that need those processes.\n\nIf setting this value, consider also adjusting the value of the `--process-per-child-memory-usage` option.\n\nYou can suffix with `GiB`, `MiB`, `KiB`, or `B` to indicate the unit, e.g. `2GiB` or `2.12GiB`. A bare number will be in bytes.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pythonpath"], + "scoped_cmd_line_args": ["--process-total-child-memory-usage"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--pythonpath"], + "typ": "memory_size", + "unscoped_cmd_line_args": ["--process-total-child-memory-usage"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] - }, - { - "details": "", - "rank": "HARDCODED", - "value": [] + "value": null } ] } @@ -71634,21 +83064,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]verify-config", - "config_key": "verify_config", - "default": true, + "comma_separated_display_args": "--process-per-child-memory-usage=", + "config_key": "process_per_child_memory_usage", + "default": "512MiB", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]verify-config"], - "env_var": "PANTS_VERIFY_CONFIG", + "display_args": ["--process-per-child-memory-usage="], + "env_var": "PANTS_PROCESS_PER_CHILD_MEMORY_USAGE", "fromfile": false, - "help": "Verify that all config file values correspond to known options.", + "help": "The default memory usage for a single \"pooled\" child process.\n\nCheck the documentation for the `--process-total-child-memory-usage` for advice on how to choose an appropriate value for this option.\n\nYou can suffix with `GiB`, `MiB`, `KiB`, or `B` to indicate the unit, e.g. `2GiB` or `2.12GiB`. A bare number will be in bytes.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--verify-config", "--no-verify-config"], + "scoped_cmd_line_args": ["--process-per-child-memory-usage"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--verify-config", "--no-verify-config"], + "typ": "memory_size", + "unscoped_cmd_line_args": ["--process-per-child-memory-usage"], "value_history": { "ranked_values": [ { @@ -71659,7 +83089,7 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": 536870912 } ] } @@ -71667,34 +83097,32 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--stats-record-option-scopes=\"['', '', ...]\"", - "config_key": "stats_record_option_scopes", - "default": ["*"], + "comma_separated_display_args": "--process-execution-local-parallelism=", + "config_key": "process_execution_local_parallelism", + "default": "#cores", "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--stats-record-option-scopes=\"['', '', ...]\"" - ], - "env_var": "PANTS_STATS_RECORD_OPTION_SCOPES", + "display_args": ["--process-execution-local-parallelism="], + "env_var": "PANTS_PROCESS_EXECUTION_LOCAL_PARALLELISM", "fromfile": false, - "help": "Option scopes to record in stats on run completion. Options may be selected by joining the scope and the option with a ^ character, i.e. to get option `pantsd` in the GLOBAL scope, you'd pass `GLOBAL^pantsd`. Add a '*' to the list to capture all known scopes.", + "help": "Number of concurrent processes that may be executed locally.\n\nThis value is independent of the number of threads that may be used to execute the logic in `@rules` (controlled by `--rule-threads-core`).", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--stats-record-option-scopes"], + "scoped_cmd_line_args": ["--process-execution-local-parallelism"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--stats-record-option-scopes"], + "typ": "int", + "unscoped_cmd_line_args": ["--process-execution-local-parallelism"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": ["*"] + "value": 4 } ] } @@ -71702,32 +83130,32 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pants-ignore=\"['', '', ...]\"", - "config_key": "pants_ignore", - "default": [".*/", "/dist/", "__pycache__"], + "comma_separated_display_args": "--process-execution-remote-parallelism=", + "config_key": "process_execution_remote_parallelism", + "default": 128, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pants-ignore=\"['', '', ...]\""], - "env_var": "PANTS_IGNORE", + "display_args": ["--process-execution-remote-parallelism="], + "env_var": "PANTS_PROCESS_EXECUTION_REMOTE_PARALLELISM", "fromfile": false, - "help": "Paths to ignore for all filesystem operations performed by pants (e.g. BUILD file scanning, glob matching, etc).\n\nPatterns use the gitignore syntax (https://git-scm.com/docs/gitignore). The `pants_distdir` and `pants_workdir` locations are automatically ignored.\n\n`pants_ignore` can be used in tandem with `pants_ignore_use_gitignore`; any rules specified here are applied after rules specified in a .gitignore file.", + "help": "Number of concurrent processes that may be executed remotely.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pants-ignore"], + "scoped_cmd_line_args": ["--process-execution-remote-parallelism"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--pants-ignore"], + "typ": "int", + "unscoped_cmd_line_args": ["--process-execution-remote-parallelism"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [".*/", "/dist/", "__pycache__"] + "value": 128 } ] } @@ -71735,38 +83163,27 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]pants-ignore-use-gitignore", - "config_key": "pants_ignore_use_gitignore", - "default": true, + "comma_separated_display_args": "--process-execution-cache-namespace=", + "config_key": "process_execution_cache_namespace", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]pants-ignore-use-gitignore"], - "env_var": "PANTS_IGNORE_USE_GITIGNORE", + "display_args": ["--process-execution-cache-namespace="], + "env_var": "PANTS_PROCESS_EXECUTION_CACHE_NAMESPACE", "fromfile": false, - "help": "Include patterns from `.gitignore`, `.git/info/exclude`, and the global gitignore files in the option `[GLOBAL].pants_ignore`, which is used for Pants to ignore filesystem operations on those patterns.\n\nPatterns from `[GLOBAL].pants_ignore` take precedence over these files' rules. For example, you can use `!my_pattern` in `pants_ignore` to have Pants operate on files that are gitignored.\n\nWarning: this does not yet support reading nested gitignore files.", + "help": "The cache namespace for process execution. Change this value to invalidate every artifact's execution, or to prevent process cache entries from being (re)used for different usecases or users.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--pants-ignore-use-gitignore", - "--no-pants-ignore-use-gitignore" - ], + "scoped_cmd_line_args": ["--process-execution-cache-namespace"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--pants-ignore-use-gitignore", - "--no-pants-ignore-use-gitignore" - ], + "typ": "str", + "unscoped_cmd_line_args": ["--process-execution-cache-namespace"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": true } ] } @@ -71774,27 +83191,38 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--logdir=", - "config_key": "logdir", - "default": null, + "comma_separated_display_args": "--[no-]process-execution-local-enable-nailgun", + "config_key": "process_execution_local_enable_nailgun", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--logdir="], - "env_var": "PANTS_LOGDIR", + "display_args": ["--[no-]process-execution-local-enable-nailgun"], + "env_var": "PANTS_PROCESS_EXECUTION_LOCAL_ENABLE_NAILGUN", "fromfile": false, - "help": "Write logs to files under this directory.", + "help": "Whether or not to use nailgun to run JVM requests that are marked as supporting nailgun.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--logdir"], + "scoped_cmd_line_args": [ + "--process-execution-local-enable-nailgun", + "--no-process-execution-local-enable-nailgun" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--logdir"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--process-execution-local-enable-nailgun", + "--no-process-execution-local-enable-nailgun" + ], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true } ] } @@ -71802,26 +83230,26 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pantsd-timeout-when-multiple-invocations=", - "config_key": "pantsd_timeout_when_multiple_invocations", - "default": 60.0, + "comma_separated_display_args": "--process-execution-graceful-shutdown-timeout=", + "config_key": "process_execution_graceful_shutdown_timeout", + "default": 3, "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--pantsd-timeout-when-multiple-invocations=" + "--process-execution-graceful-shutdown-timeout=" ], - "env_var": "PANTS_PANTSD_TIMEOUT_WHEN_MULTIPLE_INVOCATIONS", + "env_var": "PANTS_PROCESS_EXECUTION_GRACEFUL_SHUTDOWN_TIMEOUT", "fromfile": false, - "help": "The maximum amount of time to wait for the invocation to start until raising a timeout exception. Because pantsd currently does not support parallel runs, any prior running Pants command must be finished for the current one to start. To never timeout, use the value -1.", + "help": "The time in seconds to wait when gracefully shutting down an interactive process (such as one opened using `pants run`) before killing it.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--pantsd-timeout-when-multiple-invocations" + "--process-execution-graceful-shutdown-timeout" ], "target_field_name": null, - "typ": "float", + "typ": "int", "unscoped_cmd_line_args": [ - "--pantsd-timeout-when-multiple-invocations" + "--process-execution-graceful-shutdown-timeout" ], "value_history": { "ranked_values": [ @@ -71833,7 +83261,7 @@ { "details": null, "rank": "HARDCODED", - "value": 60.0 + "value": 3 } ] } @@ -71841,32 +83269,27 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pantsd-max-memory-usage=", - "config_key": "pantsd_max_memory_usage", - "default": "4GiB", + "comma_separated_display_args": "--remote-instance-name=", + "config_key": "remote_instance_name", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pantsd-max-memory-usage="], - "env_var": "PANTS_PANTSD_MAX_MEMORY_USAGE", + "display_args": ["--remote-instance-name="], + "env_var": "PANTS_REMOTE_INSTANCE_NAME", "fromfile": false, - "help": "The maximum memory usage of the pantsd process.\n\nWhen the maximum memory is exceeded, the daemon will restart gracefully, although all previous in-memory caching will be lost. Setting too low means that you may miss out on some caching, whereas setting too high may over-consume resources and may result in the operating system killing Pantsd due to memory overconsumption (e.g. via the OOM killer).\n\nYou can suffix with `GiB`, `MiB`, `KiB`, or `B` to indicate the unit, e.g. `2GiB` or `2.12GiB`. A bare number will be in bytes.\n\nThere is at most one pantsd process per workspace.", + "help": "Name of the remote instance to use by remote caching and remote execution.\n\nThis is used by some remote servers for routing. Consult your remote server for whether this should be set.\n\nYou can also use a Pants plugin which provides remote authentication to dynamically set this value.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pantsd-max-memory-usage"], + "scoped_cmd_line_args": ["--remote-instance-name"], "target_field_name": null, - "typ": "memory_size", - "unscoped_cmd_line_args": ["--pantsd-max-memory-usage"], + "typ": "str", + "unscoped_cmd_line_args": ["--remote-instance-name"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": 4294967296 } ] } @@ -71874,38 +83297,27 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]print-stacktrace", - "config_key": "print_stacktrace", - "default": false, + "comma_separated_display_args": "--remote-ca-certs-path=", + "config_key": "remote_ca_certs_path", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]print-stacktrace"], - "env_var": "PANTS_PRINT_STACKTRACE", + "display_args": ["--remote-ca-certs-path="], + "env_var": "PANTS_REMOTE_CA_CERTS_PATH", "fromfile": false, - "help": "Print the full exception stack trace for any errors.", + "help": "Path to a PEM file containing CA certificates used for verifying secure connections to `[GLOBAL].remote_execution_address` and `[GLOBAL].remote_store_address`.\n\nIf unspecified, Pants will attempt to auto-discover root CA certificates when TLS is enabled with remote execution and caching.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--print-stacktrace", - "--no-print-stacktrace" - ], + "scoped_cmd_line_args": ["--remote-ca-certs-path"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--print-stacktrace", - "--no-print-stacktrace" - ], + "typ": "str", + "unscoped_cmd_line_args": ["--remote-ca-certs-path"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": false } ] } @@ -71913,21 +83325,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--engine-visualize-to=", - "config_key": "engine_visualize_to", + "comma_separated_display_args": "--remote-client-certs-path=", + "config_key": "remote_client_certs_path", "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--engine-visualize-to="], - "env_var": "PANTS_ENGINE_VISUALIZE_TO", + "display_args": ["--remote-client-certs-path="], + "env_var": "PANTS_REMOTE_CLIENT_CERTS_PATH", "fromfile": false, - "help": "A directory to write execution and rule graphs to as `dot` files. The contents of the directory will be overwritten if any filenames collide.", + "help": "Path to a PEM file containing client certificates used for verifying secure connections to `[GLOBAL].remote_execution_address` and `[GLOBAL].remote_store_address` when using client authentication (mTLS).\n\nIf unspecified, will use regular TLS. Requires `remote_client_key_path` to also be specified.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--engine-visualize-to"], + "scoped_cmd_line_args": ["--remote-client-certs-path"], "target_field_name": null, - "typ": "dir_option", - "unscoped_cmd_line_args": ["--engine-visualize-to"], + "typ": "str", + "unscoped_cmd_line_args": ["--remote-client-certs-path"], "value_history": { "ranked_values": [ { @@ -71941,32 +83353,27 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pantsd-pailgun-port=", - "config_key": "pantsd_pailgun_port", - "default": 0, + "comma_separated_display_args": "--remote-client-key-path=", + "config_key": "remote_client_key_path", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pantsd-pailgun-port="], - "env_var": "PANTS_PANTSD_PAILGUN_PORT", + "display_args": ["--remote-client-key-path="], + "env_var": "PANTS_REMOTE_CLIENT_KEY_PATH", "fromfile": false, - "help": "The port to bind the Pants nailgun server to. Defaults to a random port.", + "help": "Path to a PEM file containing a private key used for verifying secure connections to `[GLOBAL].remote_execution_address` and `[GLOBAL].remote_store_address` when using client authentication (mTLS).\n\nIf unspecified, will use regular TLS. Requires `remote_client_certs_path` to also be specified.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pantsd-pailgun-port"], + "scoped_cmd_line_args": ["--remote-client-key-path"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--pantsd-pailgun-port"], + "typ": "str", + "unscoped_cmd_line_args": ["--remote-client-key-path"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": 0 } ] } @@ -71974,34 +83381,27 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pantsd-invalidation-globs=\"['', '', ...]\"", - "config_key": "pantsd_invalidation_globs", - "default": [], + "comma_separated_display_args": "--remote-oauth-bearer-token-path=", + "config_key": "remote_oauth_bearer_token_path", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--pantsd-invalidation-globs=\"['', '', ...]\"" - ], - "env_var": "PANTS_PANTSD_INVALIDATION_GLOBS", + "display_args": ["--remote-oauth-bearer-token-path="], + "env_var": "PANTS_REMOTE_OAUTH_BEARER_TOKEN_PATH", "fromfile": false, - "help": "Filesystem events matching any of these globs will trigger a daemon restart. Pants's own code, plugins, and `--pants-config-files` are inherently invalidated.", + "help": "Path to a file containing an oauth token to use for gGRPC connections to `[GLOBAL].remote_execution_address` and `[GLOBAL].remote_store_address`.\n\nIf specified, Pants will add a header in the format `authorization: Bearer `. You can also manually add this header via `[GLOBAL].remote_execution_headers` and `[GLOBAL].remote_store_headers`, or use `[GLOBAL].remote_auth_plugin` to provide a plugin to dynamically set the relevant headers. Otherwise, no authorization will be performed.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pantsd-invalidation-globs"], + "scoped_cmd_line_args": ["--remote-oauth-bearer-token-path"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--pantsd-invalidation-globs"], + "typ": "str", + "unscoped_cmd_line_args": ["--remote-oauth-bearer-token-path"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] - }, - { - "details": "", - "rank": "HARDCODED", - "value": [] + "value": null } ] } @@ -72009,32 +83409,27 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--rule-threads-core=", - "config_key": "rule_threads_core", - "default": "max(2, #cores/2)", + "comma_separated_display_args": "--remote-store-address=", + "config_key": "remote_store_address", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--rule-threads-core="], - "env_var": "PANTS_RULE_THREADS_CORE", + "display_args": ["--remote-store-address="], + "env_var": "PANTS_REMOTE_STORE_ADDRESS", "fromfile": false, - "help": "The number of threads to keep active and ready to execute `@rule` logic (see also: `--rule-threads-max`).\n\nValues less than 2 are not currently supported.\n\nThis value is independent of the number of processes that may be spawned in parallel locally (controlled by `--process-execution-local-parallelism`).", + "help": "The URI of a server used for the remote file store.\n\nFormat: `scheme://host:port`. The supported schemes are `grpc` and `grpcs`, i.e. gRPC with TLS enabled. If `grpc` is used, TLS will be disabled.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--rule-threads-core"], + "scoped_cmd_line_args": ["--remote-store-address"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--rule-threads-core"], + "typ": "str", + "unscoped_cmd_line_args": ["--remote-store-address"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": 32 } ] } @@ -72042,27 +83437,36 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--rule-threads-max=", - "config_key": "rule_threads_max", - "default": null, + "comma_separated_display_args": "--remote-store-headers=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "remote_store_headers", + "default": "{'user-agent': 'pants/'}", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--rule-threads-max="], - "env_var": "PANTS_RULE_THREADS_MAX", + "display_args": [ + "--remote-store-headers=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_REMOTE_STORE_HEADERS", "fromfile": false, - "help": "The maximum number of threads to use to execute `@rule` logic. Defaults to a small multiple of `--rule-threads-core`.", + "help": "Headers to set on remote store requests.\n\nFormat: header=value. Pants may add additional headers.\n\nSee `[GLOBAL].remote_execution_headers` as well.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--rule-threads-max"], + "scoped_cmd_line_args": ["--remote-store-headers"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--rule-threads-max"], + "typ": "dict", + "unscoped_cmd_line_args": ["--remote-store-headers"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": {} + }, + { + "details": "", + "rank": "HARDCODED", + "value": { + "user-agent": "pants/2.18.1" + } } ] } @@ -72070,21 +83474,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--local-store-dir=", - "config_key": "local_store_dir", - "default": "/home/josh/.cache/pants/lmdb_store", + "comma_separated_display_args": "--remote-store-chunk-bytes=", + "config_key": "remote_store_chunk_bytes", + "default": 1048576, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--local-store-dir="], - "env_var": "PANTS_LOCAL_STORE_DIR", + "display_args": ["--remote-store-chunk-bytes="], + "env_var": "PANTS_REMOTE_STORE_CHUNK_BYTES", "fromfile": false, - "help": "Directory to use for the local file store, which stores the results of subprocesses run by Pants.\n\nThe path may be absolute or relative. If the directory is within the build root, be sure to include it in `--pants-ignore`.", + "help": "Size in bytes of chunks transferred to/from the remote file store.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--local-store-dir"], + "scoped_cmd_line_args": ["--remote-store-chunk-bytes"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--local-store-dir"], + "typ": "int", + "unscoped_cmd_line_args": ["--remote-store-chunk-bytes"], "value_history": { "ranked_values": [ { @@ -72095,7 +83499,7 @@ { "details": null, "rank": "HARDCODED", - "value": "/home/josh/.cache/pants/lmdb_store" + "value": 1048576 } ] } @@ -72103,21 +83507,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--local-store-shard-count=", - "config_key": "local_store_shard_count", - "default": 16, + "comma_separated_display_args": "--remote-store-rpc-retries=", + "config_key": "remote_store_rpc_retries", + "default": 2, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--local-store-shard-count="], - "env_var": "PANTS_LOCAL_STORE_SHARD_COUNT", + "display_args": ["--remote-store-rpc-retries="], + "env_var": "PANTS_REMOTE_STORE_RPC_RETRIES", "fromfile": false, - "help": "The number of LMDB shards created for the local store. This setting also impacts the maximum size of stored files: see `--local-store-files-max-size-bytes` for more information.\n\nBecause LMDB allows only one simultaneous writer per database, the store is split into multiple shards to allow for more concurrent writers. The faster your disks are, the fewer shards you are likely to need for performance.\n\nNB: After changing this value, you will likely want to manually clear the `--local-store-dir` directory to clear the space used by old shard layouts.", + "help": "Number of times to retry any RPC to the remote store before giving up.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--local-store-shard-count"], + "scoped_cmd_line_args": ["--remote-store-rpc-retries"], "target_field_name": null, "typ": "int", - "unscoped_cmd_line_args": ["--local-store-shard-count"], + "unscoped_cmd_line_args": ["--remote-store-rpc-retries"], "value_history": { "ranked_values": [ { @@ -72128,7 +83532,7 @@ { "details": null, "rank": "HARDCODED", - "value": 16 + "value": 2 } ] } @@ -72136,21 +83540,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--local-store-processes-max-size-bytes=", - "config_key": "local_store_processes_max_size_bytes", - "default": 16000000000, + "comma_separated_display_args": "--remote-store-rpc-concurrency=", + "config_key": "remote_store_rpc_concurrency", + "default": 128, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--local-store-processes-max-size-bytes="], - "env_var": "PANTS_LOCAL_STORE_PROCESSES_MAX_SIZE_BYTES", + "display_args": ["--remote-store-rpc-concurrency="], + "env_var": "PANTS_REMOTE_STORE_RPC_CONCURRENCY", "fromfile": false, - "help": "The maximum size in bytes of the local store containing process cache entries. Stored below `--local-store-dir`.", + "help": "The number of concurrent requests allowed to the remote store service.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--local-store-processes-max-size-bytes"], + "scoped_cmd_line_args": ["--remote-store-rpc-concurrency"], "target_field_name": null, "typ": "int", - "unscoped_cmd_line_args": ["--local-store-processes-max-size-bytes"], + "unscoped_cmd_line_args": ["--remote-store-rpc-concurrency"], "value_history": { "ranked_values": [ { @@ -72161,7 +83565,7 @@ { "details": null, "rank": "HARDCODED", - "value": 16000000000 + "value": 128 } ] } @@ -72169,21 +83573,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--local-store-files-max-size-bytes=", - "config_key": "local_store_files_max_size_bytes", - "default": 256000000000, + "comma_separated_display_args": "--remote-store-rpc-timeout-millis=", + "config_key": "remote_store_rpc_timeout_millis", + "default": 30000, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--local-store-files-max-size-bytes="], - "env_var": "PANTS_LOCAL_STORE_FILES_MAX_SIZE_BYTES", + "display_args": ["--remote-store-rpc-timeout-millis="], + "env_var": "PANTS_REMOTE_STORE_RPC_TIMEOUT_MILLIS", "fromfile": false, - "help": "The maximum size in bytes of the local store containing files. Stored below `--local-store-dir`.\n\nNB: This size value bounds the total size of all files, but (due to sharding of the store on disk) it also bounds the per-file size to (VALUE / `--local-store-shard-count`).\n\nThis value doesn't reflect space allocated on disk, or RAM allocated (it may be reflected in VIRT but not RSS). However, the default is lower than you might otherwise choose because macOS creates core dumps that include MMAP'd pages, and setting this too high might cause core dumps to use an unreasonable amount of disk if they are enabled.", + "help": "Timeout value for remote store RPCs (not including streaming requests) in milliseconds.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--local-store-files-max-size-bytes"], + "scoped_cmd_line_args": ["--remote-store-rpc-timeout-millis"], "target_field_name": null, "typ": "int", - "unscoped_cmd_line_args": ["--local-store-files-max-size-bytes"], + "unscoped_cmd_line_args": ["--remote-store-rpc-timeout-millis"], "value_history": { "ranked_values": [ { @@ -72194,7 +83598,7 @@ { "details": null, "rank": "HARDCODED", - "value": 256000000000 + "value": 30000 } ] } @@ -72202,23 +83606,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--local-store-directories-max-size-bytes=", - "config_key": "local_store_directories_max_size_bytes", - "default": 16000000000, + "comma_separated_display_args": "--remote-store-batch-api-size-limit=", + "config_key": "remote_store_batch_api_size_limit", + "default": 4194304, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--local-store-directories-max-size-bytes="], - "env_var": "PANTS_LOCAL_STORE_DIRECTORIES_MAX_SIZE_BYTES", + "display_args": ["--remote-store-batch-api-size-limit="], + "env_var": "PANTS_REMOTE_STORE_BATCH_API_SIZE_LIMIT", "fromfile": false, - "help": "The maximum size in bytes of the local store containing directories. Stored below `--local-store-dir`.", + "help": "The maximum total size of blobs allowed to be sent in a single batch API call to the remote store.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--local-store-directories-max-size-bytes"], + "scoped_cmd_line_args": ["--remote-store-batch-api-size-limit"], "target_field_name": null, "typ": "int", - "unscoped_cmd_line_args": [ - "--local-store-directories-max-size-bytes" - ], + "unscoped_cmd_line_args": ["--remote-store-batch-api-size-limit"], "value_history": { "ranked_values": [ { @@ -72229,29 +83631,31 @@ { "details": null, "rank": "HARDCODED", - "value": 16000000000 + "value": 4194304 } ] } }, { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--named-caches-dir=", - "config_key": "named_caches_dir", - "default": "/home/josh/.cache/pants/named_caches", + "choices": ["ignore", "first_only", "backoff"], + "comma_separated_choices": "ignore, first_only, backoff", + "comma_separated_display_args": "--remote-cache-warnings=", + "config_key": "remote_cache_warnings", + "default": "backoff", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--named-caches-dir="], - "env_var": "PANTS_NAMED_CACHES_DIR", + "display_args": [ + "--remote-cache-warnings=" + ], + "env_var": "PANTS_REMOTE_CACHE_WARNINGS", "fromfile": false, - "help": "Directory to use for named global caches for tools and processes with trusted, concurrency-safe caches.\n\nThe path may be absolute or relative. If the directory is within the build root, be sure to include it in `--pants-ignore`.", + "help": "How frequently to log remote cache failures at the `warn` log level.\n\nAll errors not logged at the `warn` level will instead be logged at the `debug` level.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--named-caches-dir"], + "scoped_cmd_line_args": ["--remote-cache-warnings"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--named-caches-dir"], + "typ": "RemoteCacheWarningsBehavior", + "unscoped_cmd_line_args": ["--remote-cache-warnings"], "value_history": { "ranked_values": [ { @@ -72262,7 +83666,7 @@ { "details": null, "rank": "HARDCODED", - "value": "/home/josh/.cache/pants/named_caches" + "value": "backoff" } ] } @@ -72270,21 +83674,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--local-execution-root-dir=", - "config_key": "local_execution_root_dir", - "default": "", + "comma_separated_display_args": "--remote-cache-rpc-concurrency=", + "config_key": "remote_cache_rpc_concurrency", + "default": 128, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--local-execution-root-dir="], - "env_var": "PANTS_LOCAL_EXECUTION_ROOT_DIR", + "display_args": ["--remote-cache-rpc-concurrency="], + "env_var": "PANTS_REMOTE_CACHE_RPC_CONCURRENCY", "fromfile": false, - "help": "Directory to use for local process execution sandboxing.\n\nThe path may be absolute or relative. If the directory is within the build root, be sure to include it in `--pants-ignore`.", + "help": "The number of concurrent requests allowed to the remote cache service.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--local-execution-root-dir"], + "scoped_cmd_line_args": ["--remote-cache-rpc-concurrency"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--local-execution-root-dir"], + "typ": "int", + "unscoped_cmd_line_args": ["--remote-cache-rpc-concurrency"], "value_history": { "ranked_values": [ { @@ -72295,29 +83699,29 @@ { "details": null, "rank": "HARDCODED", - "value": "/tmp" + "value": 128 } ] } }, { - "choices": ["fetch", "validate", "defer"], - "comma_separated_choices": "fetch, validate, defer", - "comma_separated_display_args": "--cache-content-behavior=", - "config_key": "cache_content_behavior", - "default": "fetch", + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--remote-cache-rpc-timeout-millis=", + "config_key": "remote_cache_rpc_timeout_millis", + "default": 1500, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--cache-content-behavior="], - "env_var": "PANTS_CACHE_CONTENT_BEHAVIOR", + "display_args": ["--remote-cache-rpc-timeout-millis="], + "env_var": "PANTS_REMOTE_CACHE_RPC_TIMEOUT_MILLIS", "fromfile": false, - "help": "Controls how the content of cache entries is handled during process execution.\n\nWhen using a remote cache, the `fetch` behavior will fetch remote cache content from the remote store before considering the cache lookup a hit, while the `validate` behavior will only validate (for either a local or remote cache) that the content exists, without fetching it.\n\nThe `defer` behavior, on the other hand, will neither fetch nor validate the cache content before calling a cache hit a hit. This \"defers\" actually fetching the cache entry until Pants needs it (which may be never).\n\nThe `defer` mode is the most network efficient (because it will completely skip network requests in many cases), followed by the `validate` mode (since it can still skip fetching the content if no consumer ends up needing it). But both the `validate` and `defer` modes rely on an experimental feature called \"backtracking\" to attempt to recover if content later turns out to be missing (`validate` has a much narrower window for backtracking though, since content would need to disappear between validation and consumption: generally, within one `pantsd` session).", + "help": "Timeout value for remote cache RPCs in milliseconds.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--cache-content-behavior"], + "scoped_cmd_line_args": ["--remote-cache-rpc-timeout-millis"], "target_field_name": null, - "typ": "CacheContentBehavior", - "unscoped_cmd_line_args": ["--cache-content-behavior"], + "typ": "int", + "unscoped_cmd_line_args": ["--remote-cache-rpc-timeout-millis"], "value_history": { "ranked_values": [ { @@ -72328,7 +83732,7 @@ { "details": null, "rank": "HARDCODED", - "value": "fetch" + "value": 1500 } ] } @@ -72336,21 +83740,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--ca-certs-path=", - "config_key": "ca_certs_path", + "comma_separated_display_args": "--remote-execution-address=", + "config_key": "remote_execution_address", "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--ca-certs-path="], - "env_var": "PANTS_CA_CERTS_PATH", + "display_args": ["--remote-execution-address="], + "env_var": "PANTS_REMOTE_EXECUTION_ADDRESS", "fromfile": false, - "help": "Path to a file containing PEM-format CA certificates used for verifying secure connections when downloading files required by a build.\n\nEven when using the `docker_environment` and `remote_environment` targets, this path will be read from the local host, and those certs will be used in the environment.\n\nThis option cannot be overridden via environment targets, so if you need a different value than what the rest of your organization is using, override the value via an environment variable, CLI argument, or `.pants.rc` file. See https://www.pantsbuild.org/v2.18/docs/options.", + "help": "The URI of a server used as a remote execution scheduler.\n\nFormat: `scheme://host:port`. The supported schemes are `grpc` and `grpcs`, i.e. gRPC with TLS enabled. If `grpc` is used, TLS will be disabled.\n\nYou must also set `[GLOBAL].remote_store_address`, which will often be the same value.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--ca-certs-path"], + "scoped_cmd_line_args": ["--remote-execution-address"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--ca-certs-path"], + "unscoped_cmd_line_args": ["--remote-execution-address"], "value_history": { "ranked_values": [ { @@ -72364,27 +83768,36 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--process-total-child-memory-usage=", - "config_key": "process_total_child_memory_usage", - "default": null, + "comma_separated_display_args": "--remote-execution-headers=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "remote_execution_headers", + "default": "{'user-agent': 'pants/'}", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--process-total-child-memory-usage="], - "env_var": "PANTS_PROCESS_TOTAL_CHILD_MEMORY_USAGE", + "display_args": [ + "--remote-execution-headers=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_REMOTE_EXECUTION_HEADERS", "fromfile": false, - "help": "The maximum memory usage for all \"pooled\" child processes.\n\nWhen set, this value participates in precomputing the pool size of child processes used by Pants (pooling is currently used only for the JVM). When not set, Pants will default to spawning `2 * --process-execution-local-parallelism` pooled processes.\n\nA high value would result in a high number of child processes spawned, potentially overconsuming your resources and triggering the OS' OOM killer. A low value would mean a low number of child processes launched and therefore less parallelism for the tasks that need those processes.\n\nIf setting this value, consider also adjusting the value of the `--process-per-child-memory-usage` option.\n\nYou can suffix with `GiB`, `MiB`, `KiB`, or `B` to indicate the unit, e.g. `2GiB` or `2.12GiB`. A bare number will be in bytes.", + "help": "Headers to set on remote execution requests. Format: header=value. Pants may add additional headers.\n\nSee `[GLOBAL].remote_store_headers` as well.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--process-total-child-memory-usage"], + "scoped_cmd_line_args": ["--remote-execution-headers"], "target_field_name": null, - "typ": "memory_size", - "unscoped_cmd_line_args": ["--process-total-child-memory-usage"], + "typ": "dict", + "unscoped_cmd_line_args": ["--remote-execution-headers"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": {} + }, + { + "details": "", + "rank": "HARDCODED", + "value": { + "user-agent": "pants/2.18.1" + } } ] } @@ -72392,21 +83805,23 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--process-per-child-memory-usage=", - "config_key": "process_per_child_memory_usage", - "default": "512MiB", + "comma_separated_display_args": "--remote-execution-overall-deadline-secs=", + "config_key": "remote_execution_overall_deadline_secs", + "default": 3600, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--process-per-child-memory-usage="], - "env_var": "PANTS_PROCESS_PER_CHILD_MEMORY_USAGE", + "display_args": ["--remote-execution-overall-deadline-secs="], + "env_var": "PANTS_REMOTE_EXECUTION_OVERALL_DEADLINE_SECS", "fromfile": false, - "help": "The default memory usage for a single \"pooled\" child process.\n\nCheck the documentation for the `--process-total-child-memory-usage` for advice on how to choose an appropriate value for this option.\n\nYou can suffix with `GiB`, `MiB`, `KiB`, or `B` to indicate the unit, e.g. `2GiB` or `2.12GiB`. A bare number will be in bytes.", + "help": "Overall timeout in seconds for each remote execution request from time of submission", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--process-per-child-memory-usage"], + "scoped_cmd_line_args": ["--remote-execution-overall-deadline-secs"], "target_field_name": null, - "typ": "memory_size", - "unscoped_cmd_line_args": ["--process-per-child-memory-usage"], + "typ": "int", + "unscoped_cmd_line_args": [ + "--remote-execution-overall-deadline-secs" + ], "value_history": { "ranked_values": [ { @@ -72417,7 +83832,7 @@ { "details": null, "rank": "HARDCODED", - "value": 536870912 + "value": 3600 } ] } @@ -72425,21 +83840,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--process-execution-local-parallelism=", - "config_key": "process_execution_local_parallelism", - "default": "#cores", + "comma_separated_display_args": "--remote-execution-rpc-concurrency=", + "config_key": "remote_execution_rpc_concurrency", + "default": 128, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--process-execution-local-parallelism="], - "env_var": "PANTS_PROCESS_EXECUTION_LOCAL_PARALLELISM", + "display_args": ["--remote-execution-rpc-concurrency="], + "env_var": "PANTS_REMOTE_EXECUTION_RPC_CONCURRENCY", "fromfile": false, - "help": "Number of concurrent processes that may be executed locally.\n\nThis value is independent of the number of threads that may be used to execute the logic in `@rules` (controlled by `--rule-threads-core`).", + "help": "The number of concurrent requests allowed to the remote execution service.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--process-execution-local-parallelism"], + "scoped_cmd_line_args": ["--remote-execution-rpc-concurrency"], "target_field_name": null, "typ": "int", - "unscoped_cmd_line_args": ["--process-execution-local-parallelism"], + "unscoped_cmd_line_args": ["--remote-execution-rpc-concurrency"], "value_history": { "ranked_values": [ { @@ -72450,7 +83865,7 @@ { "details": null, "rank": "HARDCODED", - "value": 64 + "value": 128 } ] } @@ -72458,32 +83873,33 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--process-execution-remote-parallelism=", - "config_key": "process_execution_remote_parallelism", - "default": 128, + "comma_separated_display_args": "--remote-execution-append-only-caches-base-path=", + "config_key": "remote_execution_append_only_caches_base_path", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--process-execution-remote-parallelism="], - "env_var": "PANTS_PROCESS_EXECUTION_REMOTE_PARALLELISM", + "display_args": [ + "--remote-execution-append-only-caches-base-path=" + ], + "env_var": "PANTS_REMOTE_EXECUTION_APPEND_ONLY_CACHES_BASE_PATH", "fromfile": false, - "help": "Number of concurrent processes that may be executed remotely.", + "help": "Sets the base path to use when setting up an append-only cache for a process running remotely. If this option is not set, then append-only caches will not be used with remote execution. The option should be set to the absolute path of a writable directory in the remote execution environment where Pants can create append-only caches for use with remotely executing processes.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--process-execution-remote-parallelism"], + "scoped_cmd_line_args": [ + "--remote-execution-append-only-caches-base-path" + ], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--process-execution-remote-parallelism"], + "typ": "str", + "unscoped_cmd_line_args": [ + "--remote-execution-append-only-caches-base-path" + ], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": 128 } ] } @@ -72491,55 +83907,62 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--process-execution-cache-namespace=", - "config_key": "process_execution_cache_namespace", - "default": null, + "comma_separated_display_args": "--[no-]watch-filesystem", + "config_key": "watch_filesystem", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--process-execution-cache-namespace="], - "env_var": "PANTS_PROCESS_EXECUTION_CACHE_NAMESPACE", + "display_args": ["--[no-]watch-filesystem"], + "env_var": "PANTS_WATCH_FILESYSTEM", "fromfile": false, - "help": "The cache namespace for process execution. Change this value to invalidate every artifact's execution, or to prevent process cache entries from being (re)used for different usecases or users.", + "help": "Set to False if Pants should not watch the filesystem for changes. `pantsd` or `loop` may not be enabled.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--process-execution-cache-namespace"], + "scoped_cmd_line_args": [ + "--watch-filesystem", + "--no-watch-filesystem" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--process-execution-cache-namespace"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--watch-filesystem", + "--no-watch-filesystem" + ], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true } ] } }, { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]process-execution-local-enable-nailgun", - "config_key": "process_execution_local_enable_nailgun", - "default": true, + "choices": ["ignore", "warn", "error"], + "comma_separated_choices": "ignore, warn, error", + "comma_separated_display_args": "--unmatched-build-file-globs=", + "config_key": "unmatched_build_file_globs", + "default": "warn", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]process-execution-local-enable-nailgun"], - "env_var": "PANTS_PROCESS_EXECUTION_LOCAL_ENABLE_NAILGUN", + "display_args": [ + "--unmatched-build-file-globs=" + ], + "env_var": "PANTS_UNMATCHED_BUILD_FILE_GLOBS", "fromfile": false, - "help": "Whether or not to use nailgun to run JVM requests that are marked as supporting nailgun.", + "help": "What to do when files and globs specified in BUILD files, such as in the `sources` field, cannot be found.\n\nThis usually happens when the files do not exist on your machine. It can also happen if they are ignored by the `[GLOBAL].pants_ignore` option, which causes the files to be invisible to Pants.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--process-execution-local-enable-nailgun", - "--no-process-execution-local-enable-nailgun" - ], + "scoped_cmd_line_args": ["--unmatched-build-file-globs"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--process-execution-local-enable-nailgun", - "--no-process-execution-local-enable-nailgun" - ], + "typ": "GlobMatchErrorBehavior", + "unscoped_cmd_line_args": ["--unmatched-build-file-globs"], "value_history": { "ranked_values": [ { @@ -72550,35 +83973,29 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": "warn" } ] } }, { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--process-execution-graceful-shutdown-timeout=", - "config_key": "process_execution_graceful_shutdown_timeout", - "default": 3, + "choices": ["ignore", "warn", "error"], + "comma_separated_choices": "ignore, warn, error", + "comma_separated_display_args": "--unmatched-cli-globs=", + "config_key": "unmatched_cli_globs", + "default": "error", "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--process-execution-graceful-shutdown-timeout=" - ], - "env_var": "PANTS_PROCESS_EXECUTION_GRACEFUL_SHUTDOWN_TIMEOUT", + "display_args": ["--unmatched-cli-globs="], + "env_var": "PANTS_UNMATCHED_CLI_GLOBS", "fromfile": false, - "help": "The time in seconds to wait when gracefully shutting down an interactive process (such as one opened using `scie-pants-linux-x86_64 run`) before killing it.", + "help": "What to do when command line arguments, e.g. files and globs like `dir::`, cannot be found.\n\nThis usually happens when the files do not exist on your machine. It can also happen if they are ignored by the `[GLOBAL].pants_ignore` option, which causes the files to be invisible to Pants.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--process-execution-graceful-shutdown-timeout" - ], + "scoped_cmd_line_args": ["--unmatched-cli-globs"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": [ - "--process-execution-graceful-shutdown-timeout" - ], + "typ": "GlobMatchErrorBehavior", + "unscoped_cmd_line_args": ["--unmatched-cli-globs"], "value_history": { "ranked_values": [ { @@ -72589,7 +84006,7 @@ { "details": null, "rank": "HARDCODED", - "value": 3 + "value": "error" } ] } @@ -72597,27 +84014,32 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-instance-name=", - "config_key": "remote_instance_name", - "default": null, + "comma_separated_display_args": "--build-patterns=\"['', '', ...]\"", + "config_key": "build_patterns", + "default": ["BUILD", "BUILD.*"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-instance-name="], - "env_var": "PANTS_REMOTE_INSTANCE_NAME", + "display_args": ["--build-patterns=\"['', '', ...]\""], + "env_var": "PANTS_BUILD_PATTERNS", "fromfile": false, - "help": "Name of the remote instance to use by remote caching and remote execution.\n\nThis is used by some remote servers for routing. Consult your remote server for whether this should be set.\n\nYou can also use a Pants plugin which provides remote authentication to dynamically set this value.", + "help": "The naming scheme for BUILD files, i.e. where you define targets.\n\nThis only sets the naming scheme, not the directory paths to look for. To add ignore patterns, use the option `[GLOBAL].build_ignore`.\n\nYou may also need to update the option `[tailor].build_file_name` so that it is compatible with this option.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-instance-name"], + "scoped_cmd_line_args": ["--build-patterns"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--remote-instance-name"], + "typ": "list", + "unscoped_cmd_line_args": ["--build-patterns"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": ["BUILD", "BUILD.*"] } ] } @@ -72625,27 +84047,32 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-ca-certs-path=", - "config_key": "remote_ca_certs_path", - "default": null, + "comma_separated_display_args": "--build-ignore=\"['', '', ...]\"", + "config_key": "build_ignore", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-ca-certs-path="], - "env_var": "PANTS_REMOTE_CA_CERTS_PATH", + "display_args": ["--build-ignore=\"['', '', ...]\""], + "env_var": "PANTS_BUILD_IGNORE", "fromfile": false, - "help": "Path to a PEM file containing CA certificates used for verifying secure connections to `[GLOBAL].remote_execution_address` and `[GLOBAL].remote_store_address`.\n\nIf unspecified, Pants will attempt to auto-discover root CA certificates when TLS is enabled with remote execution and caching.", + "help": "Path globs or literals to ignore when identifying BUILD files.\n\nThis does not affect any other filesystem operations; use `--pants-ignore` for that instead.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-ca-certs-path"], + "scoped_cmd_line_args": ["--build-ignore"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--remote-ca-certs-path"], + "typ": "list", + "unscoped_cmd_line_args": ["--build-ignore"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] } ] } @@ -72653,27 +84080,34 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-client-certs-path=", - "config_key": "remote_client_certs_path", - "default": null, + "comma_separated_display_args": "--build-file-prelude-globs=\"['', '', ...]\"", + "config_key": "build_file_prelude_globs", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-client-certs-path="], - "env_var": "PANTS_REMOTE_CLIENT_CERTS_PATH", + "display_args": [ + "--build-file-prelude-globs=\"['', '', ...]\"" + ], + "env_var": "PANTS_BUILD_FILE_PRELUDE_GLOBS", "fromfile": false, - "help": "Path to a PEM file containing client certificates used for verifying secure connections to `[GLOBAL].remote_execution_address` and `[GLOBAL].remote_store_address` when using client authentication (mTLS).\n\nIf unspecified, will use regular TLS. Requires `remote_client_key_path` to also be specified.", + "help": "Python files to evaluate and whose symbols should be exposed to all BUILD files. See https://www.pantsbuild.org/v2.18/docs/macros.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-client-certs-path"], + "scoped_cmd_line_args": ["--build-file-prelude-globs"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--remote-client-certs-path"], + "typ": "list", + "unscoped_cmd_line_args": ["--build-file-prelude-globs"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] } ] } @@ -72681,27 +84115,32 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-client-key-path=", - "config_key": "remote_client_key_path", - "default": null, + "comma_separated_display_args": "--subproject-roots=\"['', '', ...]\"", + "config_key": "subproject_roots", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-client-key-path="], - "env_var": "PANTS_REMOTE_CLIENT_KEY_PATH", + "display_args": ["--subproject-roots=\"['', '', ...]\""], + "env_var": "PANTS_SUBPROJECT_ROOTS", "fromfile": false, - "help": "Path to a PEM file containing a private key used for verifying secure connections to `[GLOBAL].remote_execution_address` and `[GLOBAL].remote_store_address` when using client authentication (mTLS).\n\nIf unspecified, will use regular TLS. Requires `remote_client_certs_path` to also be specified.", + "help": "Paths that correspond with build roots for any subproject that this project depends on.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-client-key-path"], + "scoped_cmd_line_args": ["--subproject-roots"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--remote-client-key-path"], + "typ": "list", + "unscoped_cmd_line_args": ["--subproject-roots"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] } ] } @@ -72709,27 +84148,32 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-oauth-bearer-token-path=", - "config_key": "remote_oauth_bearer_token_path", - "default": null, + "comma_separated_display_args": "--loop-max=", + "config_key": "loop_max", + "default": 4294967296, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-oauth-bearer-token-path="], - "env_var": "PANTS_REMOTE_OAUTH_BEARER_TOKEN_PATH", + "display_args": ["--loop-max="], + "env_var": "PANTS_LOOP_MAX", "fromfile": false, - "help": "Path to a file containing an oauth token to use for gGRPC connections to `[GLOBAL].remote_execution_address` and `[GLOBAL].remote_store_address`.\n\nIf specified, Pants will add a header in the format `authorization: Bearer `. You can also manually add this header via `[GLOBAL].remote_execution_headers` and `[GLOBAL].remote_store_headers`, or use `[GLOBAL].remote_auth_plugin` to provide a plugin to dynamically set the relevant headers. Otherwise, no authorization will be performed.", + "help": "The maximum number of times to loop when `--loop` is specified.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-oauth-bearer-token-path"], + "scoped_cmd_line_args": ["--loop-max"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--remote-oauth-bearer-token-path"], + "typ": "int", + "unscoped_cmd_line_args": ["--loop-max"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": 4294967296 } ] } @@ -72737,64 +84181,65 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-store-address=", - "config_key": "remote_store_address", - "default": null, + "comma_separated_display_args": "--streaming-workunits-report-interval=", + "config_key": "streaming_workunits_report_interval", + "default": 1.0, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-store-address="], - "env_var": "PANTS_REMOTE_STORE_ADDRESS", + "display_args": ["--streaming-workunits-report-interval="], + "env_var": "PANTS_STREAMING_WORKUNITS_REPORT_INTERVAL", "fromfile": false, - "help": "The URI of a server used for the remote file store.\n\nFormat: `scheme://host:port`. The supported schemes are `grpc` and `grpcs`, i.e. gRPC with TLS enabled. If `grpc` is used, TLS will be disabled.", + "help": "Interval in seconds between when streaming workunit event receivers will be polled.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-store-address"], + "scoped_cmd_line_args": ["--streaming-workunits-report-interval"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--remote-store-address"], + "typ": "float", + "unscoped_cmd_line_args": ["--streaming-workunits-report-interval"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": 1.0 } ] } }, { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--remote-store-headers=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "remote_store_headers", - "default": "{'user-agent': 'pants/'}", + "choices": ["trace", "debug", "info", "warn", "error"], + "comma_separated_choices": "trace, debug, info, warn, error", + "comma_separated_display_args": "--streaming-workunits-level=", + "config_key": "streaming_workunits_level", + "default": "debug", "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--remote-store-headers=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_REMOTE_STORE_HEADERS", + "display_args": ["--streaming-workunits-level="], + "env_var": "PANTS_STREAMING_WORKUNITS_LEVEL", "fromfile": false, - "help": "Headers to set on remote store requests.\n\nFormat: header=value. Pants may add additional headers.\n\nSee `[GLOBAL].remote_execution_headers` as well.", + "help": "The level of workunits that will be reported to streaming workunit event receivers.\n\nWorkunits form a tree, and even when workunits are filtered out by this setting, the workunit tree structure will be preserved (by adjusting the parent pointers of the remaining workunits).", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-store-headers"], + "scoped_cmd_line_args": ["--streaming-workunits-level"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--remote-store-headers"], + "typ": "LogLevel", + "unscoped_cmd_line_args": ["--streaming-workunits-level"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": {} + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": { - "user-agent": "pants/2.18.0rc5" - } + "value": "debug" } ] } @@ -72802,21 +84247,27 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-store-chunk-bytes=", - "config_key": "remote_store_chunk_bytes", - "default": 1048576, + "comma_separated_display_args": "--[no-]streaming-workunits-complete-async", + "config_key": "streaming_workunits_complete_async", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-store-chunk-bytes="], - "env_var": "PANTS_REMOTE_STORE_CHUNK_BYTES", + "display_args": ["--[no-]streaming-workunits-complete-async"], + "env_var": "PANTS_STREAMING_WORKUNITS_COMPLETE_ASYNC", "fromfile": false, - "help": "Size in bytes of chunks transferred to/from the remote file store.", + "help": "True if stats recording should be allowed to complete asynchronously when `pantsd` is enabled. When `pantsd` is disabled, stats recording is always synchronous. To reduce data loss, this flag defaults to false inside of containers, such as when run with Docker.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-store-chunk-bytes"], + "scoped_cmd_line_args": [ + "--streaming-workunits-complete-async", + "--no-streaming-workunits-complete-async" + ], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--remote-store-chunk-bytes"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--streaming-workunits-complete-async", + "--no-streaming-workunits-complete-async" + ], "value_history": { "ranked_values": [ { @@ -72827,7 +84278,7 @@ { "details": null, "rank": "HARDCODED", - "value": 1048576 + "value": true } ] } @@ -72835,21 +84286,27 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-store-rpc-retries=", - "config_key": "remote_store_rpc_retries", - "default": 2, + "comma_separated_display_args": "--[no-]docker-execution", + "config_key": "docker_execution", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-store-rpc-retries="], - "env_var": "PANTS_REMOTE_STORE_RPC_RETRIES", + "display_args": ["--[no-]docker-execution"], + "env_var": "PANTS_DOCKER_EXECUTION", "fromfile": false, - "help": "Number of times to retry any RPC to the remote store before giving up.", + "help": "If true, `docker_environment` targets can be used to run builds inside a Docker container.\n\nIf false, anytime a `docker_environment` target is used, Pants will instead fallback to whatever the target's `fallback_environment` field is set to.\n\nThis can be useful, for example, if you want to always use Docker locally, but disable it in CI, or vice versa.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-store-rpc-retries"], + "scoped_cmd_line_args": [ + "--docker-execution", + "--no-docker-execution" + ], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--remote-store-rpc-retries"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--docker-execution", + "--no-docker-execution" + ], "value_history": { "ranked_values": [ { @@ -72860,7 +84317,7 @@ { "details": null, "rank": "HARDCODED", - "value": 2 + "value": true } ] } @@ -72868,54 +84325,62 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-store-rpc-concurrency=", - "config_key": "remote_store_rpc_concurrency", - "default": 128, + "comma_separated_display_args": "--remote-execution-extra-platform-properties=\"['', '', ...]\"", + "config_key": "remote_execution_extra_platform_properties", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-store-rpc-concurrency="], - "env_var": "PANTS_REMOTE_STORE_RPC_CONCURRENCY", + "display_args": [ + "--remote-execution-extra-platform-properties=\"['', '', ...]\"" + ], + "env_var": "PANTS_REMOTE_EXECUTION_EXTRA_PLATFORM_PROPERTIES", "fromfile": false, - "help": "The number of concurrent requests allowed to the remote store service.", + "help": "Platform properties to set on remote execution requests.\n\nFormat: `property=value`. Multiple values should be specified as multiple occurrences of this flag.\n\nPants itself may add additional platform properties.\n\nIf you are using the `remote_environment` target mechanism, set this value as a field on the target instead. This option will be ignored.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-store-rpc-concurrency"], + "scoped_cmd_line_args": [ + "--remote-execution-extra-platform-properties" + ], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--remote-store-rpc-concurrency"], + "typ": "list", + "unscoped_cmd_line_args": [ + "--remote-execution-extra-platform-properties" + ], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": 128 + "value": [] } ] } - }, + } + ], + "basic": [ { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--remote-store-rpc-timeout-millis=", - "config_key": "remote_store_rpc_timeout_millis", - "default": 30000, + "choices": ["trace", "debug", "info", "warn", "error"], + "comma_separated_choices": "trace, debug, info, warn, error", + "comma_separated_display_args": "-l=, --level=", + "config_key": "level", + "default": "info", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-store-rpc-timeout-millis="], - "env_var": "PANTS_REMOTE_STORE_RPC_TIMEOUT_MILLIS", + "display_args": ["-l=", "--level="], + "env_var": "PANTS_LEVEL", "fromfile": false, - "help": "Timeout value for remote store RPCs (not including streaming requests) in milliseconds.", + "help": "Set the logging level.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-store-rpc-timeout-millis"], + "scoped_cmd_line_args": ["-l", "--level"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--remote-store-rpc-timeout-millis"], + "typ": "LogLevel", + "unscoped_cmd_line_args": ["-l", "--level"], "value_history": { "ranked_values": [ { @@ -72926,7 +84391,7 @@ { "details": null, "rank": "HARDCODED", - "value": 30000 + "value": "info" } ] } @@ -72934,56 +84399,54 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-store-batch-api-size-limit=", - "config_key": "remote_store_batch_api_size_limit", - "default": 4194304, + "comma_separated_display_args": "--spec-files=\"['', '', ...]\"", + "config_key": "spec_files", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-store-batch-api-size-limit="], - "env_var": "PANTS_REMOTE_STORE_BATCH_API_SIZE_LIMIT", + "display_args": ["--spec-files=\"['', '', ...]\""], + "env_var": "PANTS_SPEC_FILES", "fromfile": false, - "help": "The maximum total size of blobs allowed to be sent in a single batch API call to the remote store.", + "help": "Read additional specs (target addresses, files, and/or globs), one per line, from these files.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-store-batch-api-size-limit"], + "scoped_cmd_line_args": ["--spec-files"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--remote-store-batch-api-size-limit"], + "typ": "list", + "unscoped_cmd_line_args": ["--spec-files"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": 4194304 + "value": [] } ] } }, { - "choices": ["ignore", "first_only", "backoff"], - "comma_separated_choices": "ignore, first_only, backoff", - "comma_separated_display_args": "--remote-cache-warnings=", - "config_key": "remote_cache_warnings", - "default": "backoff", + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]pantsd", + "config_key": "pantsd", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--remote-cache-warnings=" - ], - "env_var": "PANTS_REMOTE_CACHE_WARNINGS", + "display_args": ["--[no-]pantsd"], + "env_var": "PANTS_PANTSD", "fromfile": false, - "help": "How frequently to log remote cache failures at the `warn` log level.\n\nAll errors not logged at the `warn` level will instead be logged at the `debug` level.", + "help": "Enables use of the Pants daemon (pantsd). pantsd can significantly improve runtime performance by lowering per-run startup cost, and by memoizing filesystem operations and rule execution.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-cache-warnings"], + "scoped_cmd_line_args": ["--pantsd", "--no-pantsd"], "target_field_name": null, - "typ": "RemoteCacheWarningsBehavior", - "unscoped_cmd_line_args": ["--remote-cache-warnings"], + "typ": "bool", + "unscoped_cmd_line_args": ["--pantsd", "--no-pantsd"], "value_history": { "ranked_values": [ { @@ -72994,7 +84457,7 @@ { "details": null, "rank": "HARDCODED", - "value": "backoff" + "value": true } ] } @@ -73002,21 +84465,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-cache-rpc-concurrency=", - "config_key": "remote_cache_rpc_concurrency", - "default": 128, + "comma_separated_display_args": "--[no-]concurrent", + "config_key": "concurrent", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-cache-rpc-concurrency="], - "env_var": "PANTS_REMOTE_CACHE_RPC_CONCURRENCY", + "display_args": ["--[no-]concurrent"], + "env_var": "PANTS_CONCURRENT", "fromfile": false, - "help": "The number of concurrent requests allowed to the remote cache service.", + "help": "Enable concurrent runs of Pants. With this enabled, Pants will start up all concurrent invocations (e.g. in other terminals) without pantsd. As a result, enabling this option will increase the per-run startup cost, but will not block subsequent invocations.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-cache-rpc-concurrency"], + "scoped_cmd_line_args": ["--concurrent", "--no-concurrent"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--remote-cache-rpc-concurrency"], + "typ": "bool", + "unscoped_cmd_line_args": ["--concurrent", "--no-concurrent"], "value_history": { "ranked_values": [ { @@ -73027,7 +84490,7 @@ { "details": null, "rank": "HARDCODED", - "value": 128 + "value": false } ] } @@ -73035,21 +84498,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-cache-rpc-timeout-millis=", - "config_key": "remote_cache_rpc_timeout_millis", - "default": 1500, + "comma_separated_display_args": "--[no-]local-cache", + "config_key": "local_cache", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-cache-rpc-timeout-millis="], - "env_var": "PANTS_REMOTE_CACHE_RPC_TIMEOUT_MILLIS", + "display_args": ["--[no-]local-cache"], + "env_var": "PANTS_LOCAL_CACHE", "fromfile": false, - "help": "Timeout value for remote cache RPCs in milliseconds.", + "help": "Whether to cache process executions in a local cache persisted to disk at `--local-store-dir`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-cache-rpc-timeout-millis"], + "scoped_cmd_line_args": ["--local-cache", "--no-local-cache"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--remote-cache-rpc-timeout-millis"], + "typ": "bool", + "unscoped_cmd_line_args": ["--local-cache", "--no-local-cache"], "value_history": { "ranked_values": [ { @@ -73060,35 +84523,40 @@ { "details": null, "rank": "HARDCODED", - "value": 1500 + "value": true } ] } }, { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--remote-execution-address=", - "config_key": "remote_execution_address", - "default": null, + "choices": ["always", "on_failure", "never"], + "comma_separated_choices": "always, on_failure, never", + "comma_separated_display_args": "--keep-sandboxes=", + "config_key": "keep_sandboxes", + "default": "never", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-execution-address="], - "env_var": "PANTS_REMOTE_EXECUTION_ADDRESS", + "display_args": ["--keep-sandboxes="], + "env_var": "PANTS_KEEP_SANDBOXES", "fromfile": false, - "help": "The URI of a server used as a remote execution scheduler.\n\nFormat: `scheme://host:port`. The supported schemes are `grpc` and `grpcs`, i.e. gRPC with TLS enabled. If `grpc` is used, TLS will be disabled.\n\nYou must also set `[GLOBAL].remote_store_address`, which will often be the same value.", + "help": "Controls whether Pants will clean up local directories used as chroots for running processes.\n\nPants will log their location so that you can inspect the chroot, and run the `__run.sh` script to recreate the process using the same argv and environment variables used by Pants. This option is useful for debugging.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-execution-address"], + "scoped_cmd_line_args": ["--keep-sandboxes"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--remote-execution-address"], + "typ": "KeepSandboxes", + "unscoped_cmd_line_args": ["--keep-sandboxes"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "never" } ] } @@ -73096,36 +84564,32 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-execution-headers=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "remote_execution_headers", - "default": "{'user-agent': 'pants/'}", + "comma_separated_display_args": "--session-end-tasks-timeout=", + "config_key": "session_end_tasks_timeout", + "default": 3.0, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--remote-execution-headers=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_REMOTE_EXECUTION_HEADERS", + "display_args": ["--session-end-tasks-timeout="], + "env_var": "PANTS_SESSION_END_TASKS_TIMEOUT", "fromfile": false, - "help": "Headers to set on remote execution requests. Format: header=value. Pants may add additional headers.\n\nSee `[GLOBAL].remote_store_headers` as well.", + "help": "The time in seconds to wait for still-running \"session end\" tasks to complete before finishing completion of a Pants invocation. \"Session end\" tasks include, for example, writing data that was generated during the applicable Pants invocation to a configured remote cache.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-execution-headers"], + "scoped_cmd_line_args": ["--session-end-tasks-timeout"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--remote-execution-headers"], + "typ": "float", + "unscoped_cmd_line_args": ["--session-end-tasks-timeout"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": {} + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": { - "user-agent": "pants/2.18.0rc5" - } + "value": 3.0 } ] } @@ -73133,22 +84597,26 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-execution-overall-deadline-secs=", - "config_key": "remote_execution_overall_deadline_secs", - "default": 3600, + "comma_separated_display_args": "--[no-]remote-execution", + "config_key": "remote_execution", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-execution-overall-deadline-secs="], - "env_var": "PANTS_REMOTE_EXECUTION_OVERALL_DEADLINE_SECS", + "display_args": ["--[no-]remote-execution"], + "env_var": "PANTS_REMOTE_EXECUTION", "fromfile": false, - "help": "Overall timeout in seconds for each remote execution request from time of submission", + "help": "Enables remote workers for increased parallelism. (Alpha)\n\nAlternatively, you can use `[GLOBAL].remote_cache_read` and `[GLOBAL].remote_cache_write` to still run everything locally, but to use a remote cache.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-execution-overall-deadline-secs"], + "scoped_cmd_line_args": [ + "--remote-execution", + "--no-remote-execution" + ], "target_field_name": null, - "typ": "int", + "typ": "bool", "unscoped_cmd_line_args": [ - "--remote-execution-overall-deadline-secs" + "--remote-execution", + "--no-remote-execution" ], "value_history": { "ranked_values": [ @@ -73160,7 +84628,7 @@ { "details": null, "rank": "HARDCODED", - "value": 3600 + "value": false } ] } @@ -73168,21 +84636,27 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-execution-rpc-concurrency=", - "config_key": "remote_execution_rpc_concurrency", - "default": 128, + "comma_separated_display_args": "--[no-]remote-cache-read", + "config_key": "remote_cache_read", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--remote-execution-rpc-concurrency="], - "env_var": "PANTS_REMOTE_EXECUTION_RPC_CONCURRENCY", + "display_args": ["--[no-]remote-cache-read"], + "env_var": "PANTS_REMOTE_CACHE_READ", "fromfile": false, - "help": "The number of concurrent requests allowed to the remote execution service.", + "help": "Whether to enable reading from a remote cache.\n\nThis cannot be used at the same time as `[GLOBAL].remote_execution`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--remote-execution-rpc-concurrency"], + "scoped_cmd_line_args": [ + "--remote-cache-read", + "--no-remote-cache-read" + ], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--remote-execution-rpc-concurrency"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--remote-cache-read", + "--no-remote-cache-read" + ], "value_history": { "ranked_values": [ { @@ -73193,7 +84667,7 @@ { "details": null, "rank": "HARDCODED", - "value": 128 + "value": false } ] } @@ -73201,26 +84675,26 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-execution-append-only-caches-base-path=", - "config_key": "remote_execution_append_only_caches_base_path", - "default": null, + "comma_separated_display_args": "--[no-]remote-cache-write", + "config_key": "remote_cache_write", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--remote-execution-append-only-caches-base-path=" - ], - "env_var": "PANTS_REMOTE_EXECUTION_APPEND_ONLY_CACHES_BASE_PATH", + "display_args": ["--[no-]remote-cache-write"], + "env_var": "PANTS_REMOTE_CACHE_WRITE", "fromfile": false, - "help": "Sets the base path to use when setting up an append-only cache for a process running remotely. If this option is not set, then append-only caches will not be used with remote execution. The option should be set to the absolute path of a writable directory in the remote execution environment where Pants can create append-only caches for use with remotely executing processes.", + "help": "Whether to enable writing results to a remote cache.\n\nThis cannot be used at the same time as `[GLOBAL].remote_execution`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--remote-execution-append-only-caches-base-path" + "--remote-cache-write", + "--no-remote-cache-write" ], "target_field_name": null, - "typ": "str", + "typ": "bool", "unscoped_cmd_line_args": [ - "--remote-execution-append-only-caches-base-path" + "--remote-cache-write", + "--no-remote-cache-write" ], "value_history": { "ranked_values": [ @@ -73228,6 +84702,11 @@ "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false } ] } @@ -73235,27 +84714,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]watch-filesystem", - "config_key": "watch_filesystem", - "default": true, + "comma_separated_display_args": "--[no-]colors", + "config_key": "colors", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]watch-filesystem"], - "env_var": "PANTS_WATCH_FILESYSTEM", + "display_args": ["--[no-]colors"], + "env_var": "PANTS_COLORS", "fromfile": false, - "help": "Set to False if Pants should not watch the filesystem for changes. `pantsd` or `loop` may not be enabled.", + "help": "Whether Pants should use colors in output or not. This may also impact whether some tools Pants runs use color.\n\nWhen unset, this value defaults based on whether the output destination supports color.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--watch-filesystem", - "--no-watch-filesystem" - ], + "scoped_cmd_line_args": ["--colors", "--no-colors"], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": [ - "--watch-filesystem", - "--no-watch-filesystem" - ], + "unscoped_cmd_line_args": ["--colors", "--no-colors"], "value_history": { "ranked_values": [ { @@ -73266,31 +84739,29 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": false } ] } }, { - "choices": ["ignore", "warn", "error"], - "comma_separated_choices": "ignore, warn, error", - "comma_separated_display_args": "--unmatched-build-file-globs=", - "config_key": "unmatched_build_file_globs", - "default": "warn", + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]dynamic-ui", + "config_key": "dynamic_ui", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--unmatched-build-file-globs=" - ], - "env_var": "PANTS_UNMATCHED_BUILD_FILE_GLOBS", + "display_args": ["--[no-]dynamic-ui"], + "env_var": "PANTS_DYNAMIC_UI", "fromfile": false, - "help": "What to do when files and globs specified in BUILD files, such as in the `sources` field, cannot be found.\n\nThis usually happens when the files do not exist on your machine. It can also happen if they are ignored by the `[GLOBAL].pants_ignore` option, which causes the files to be invisible to Pants.", + "help": "Display a dynamically-updating console UI as Pants runs. This is true by default if Pants detects a TTY and there is no 'CI' environment variable indicating that Pants is running in a continuous integration environment.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--unmatched-build-file-globs"], + "scoped_cmd_line_args": ["--dynamic-ui", "--no-dynamic-ui"], "target_field_name": null, - "typ": "GlobMatchErrorBehavior", - "unscoped_cmd_line_args": ["--unmatched-build-file-globs"], + "typ": "bool", + "unscoped_cmd_line_args": ["--dynamic-ui", "--no-dynamic-ui"], "value_history": { "ranked_values": [ { @@ -73301,29 +84772,29 @@ { "details": null, "rank": "HARDCODED", - "value": "warn" + "value": false } ] } }, { - "choices": ["ignore", "warn", "error"], - "comma_separated_choices": "ignore, warn, error", - "comma_separated_display_args": "--unmatched-cli-globs=", - "config_key": "unmatched_cli_globs", - "default": "error", + "choices": ["indicatif-spinner", "experimental-prodash"], + "comma_separated_choices": "indicatif-spinner, experimental-prodash", + "comma_separated_display_args": "--dynamic-ui-renderer=", + "config_key": "dynamic_ui_renderer", + "default": "indicatif-spinner", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--unmatched-cli-globs="], - "env_var": "PANTS_UNMATCHED_CLI_GLOBS", + "display_args": ["--dynamic-ui-renderer="], + "env_var": "PANTS_DYNAMIC_UI_RENDERER", "fromfile": false, - "help": "What to do when command line arguments, e.g. files and globs like `dir::`, cannot be found.\n\nThis usually happens when the files do not exist on your machine. It can also happen if they are ignored by the `[GLOBAL].pants_ignore` option, which causes the files to be invisible to Pants.", + "help": "If `--dynamic-ui` is enabled, selects the renderer.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--unmatched-cli-globs"], + "scoped_cmd_line_args": ["--dynamic-ui-renderer"], "target_field_name": null, - "typ": "GlobMatchErrorBehavior", - "unscoped_cmd_line_args": ["--unmatched-cli-globs"], + "typ": "DynamicUIRenderer", + "unscoped_cmd_line_args": ["--dynamic-ui-renderer"], "value_history": { "ranked_values": [ { @@ -73334,7 +84805,7 @@ { "details": null, "rank": "HARDCODED", - "value": "error" + "value": "indicatif-spinner" } ] } @@ -73342,21 +84813,23 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--build-patterns=\"['', '', ...]\"", - "config_key": "build_patterns", - "default": ["BUILD", "BUILD.*"], + "comma_separated_display_args": "--tag=\"[[+-]tag1,tag2,..., [+-]tag1,tag2,..., ...]\"", + "config_key": "tag", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--build-patterns=\"['', '', ...]\""], - "env_var": "PANTS_BUILD_PATTERNS", + "display_args": [ + "--tag=\"[[+-]tag1,tag2,..., [+-]tag1,tag2,..., ...]\"" + ], + "env_var": "PANTS_TAG", "fromfile": false, - "help": "The naming scheme for BUILD files, i.e. where you define targets.\n\nThis only sets the naming scheme, not the directory paths to look for. To add ignore patterns, use the option `[GLOBAL].build_ignore`.\n\nYou may also need to update the option `[tailor].build_file_name` so that it is compatible with this option.", + "help": "Include only targets with these tags (optional '+' prefix) or without these tags ('-' prefix). See https://www.pantsbuild.org/v2.18/docs/advanced-target-selection.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--build-patterns"], + "scoped_cmd_line_args": ["--tag"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--build-patterns"], + "unscoped_cmd_line_args": ["--tag"], "value_history": { "ranked_values": [ { @@ -73367,7 +84840,7 @@ { "details": "", "rank": "HARDCODED", - "value": ["BUILD", "BUILD.*"] + "value": [] } ] } @@ -73375,67 +84848,70 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--build-ignore=\"['', '', ...]\"", - "config_key": "build_ignore", - "default": [], + "comma_separated_display_args": "--[no-]loop", + "config_key": "loop", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--build-ignore=\"['', '', ...]\""], - "env_var": "PANTS_BUILD_IGNORE", + "display_args": ["--[no-]loop"], + "env_var": "PANTS_LOOP", "fromfile": false, - "help": "Path globs or literals to ignore when identifying BUILD files.\n\nThis does not affect any other filesystem operations; use `--pants-ignore` for that instead.", + "help": "Run goals continuously as file changes are detected.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--build-ignore"], + "scoped_cmd_line_args": ["--loop", "--no-loop"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--build-ignore"], + "typ": "bool", + "unscoped_cmd_line_args": ["--loop", "--no-loop"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": false } ] } - }, + } + ], + "deprecated": [ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--build-file-prelude-globs=\"['', '', ...]\"", - "config_key": "build_file_prelude_globs", - "default": [], - "deprecated_message": null, - "deprecation_active": false, - "display_args": [ - "--build-file-prelude-globs=\"['', '', ...]\"" - ], - "env_var": "PANTS_BUILD_FILE_PRELUDE_GLOBS", + "comma_separated_display_args": "--[no-]process-cleanup", + "config_key": "process_cleanup", + "default": true, + "deprecated_message": "Deprecated, is scheduled to be removed in version: 3.0.0.dev0.", + "deprecation_active": true, + "display_args": ["--[no-]process-cleanup"], + "env_var": "PANTS_PROCESS_CLEANUP", "fromfile": false, - "help": "Python files to evaluate and whose symbols should be exposed to all BUILD files. See https://www.pantsbuild.org/v2.18/docs/macros.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--build-file-prelude-globs"], + "help": "If false, Pants will not clean up local directories used as chroots for running processes. Pants will log their location so that you can inspect the chroot, and run the `__run.sh` script to recreate the process using the same argv and environment variables used by Pants. This option is useful for debugging.", + "removal_hint": "Use the `keep_sandboxes` option instead.", + "removal_version": "3.0.0.dev0", + "scoped_cmd_line_args": ["--process-cleanup", "--no-process-cleanup"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--build-file-prelude-globs"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--process-cleanup", + "--no-process-cleanup" + ], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": true } ] } @@ -73443,32 +84919,36 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--subproject-roots=\"['', '', ...]\"", - "config_key": "subproject_roots", - "default": [], - "deprecated_message": null, - "deprecation_active": false, - "display_args": ["--subproject-roots=\"['', '', ...]\""], - "env_var": "PANTS_SUBPROJECT_ROOTS", + "comma_separated_display_args": "--remote-store-chunk-upload-timeout-seconds=", + "config_key": "remote_store_chunk_upload_timeout_seconds", + "default": 60, + "deprecated_message": "Deprecated, is scheduled to be removed in version: 2.19.0.dev0.", + "deprecation_active": true, + "display_args": ["--remote-store-chunk-upload-timeout-seconds="], + "env_var": "PANTS_REMOTE_STORE_CHUNK_UPLOAD_TIMEOUT_SECONDS", "fromfile": false, - "help": "Paths that correspond with build roots for any subproject that this project depends on.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--subproject-roots"], + "help": "Timeout (in seconds) for uploads of individual chunks to the remote file store.", + "removal_hint": "Unused: use the `remote_store_rpc_timeout_millis` option instead.", + "removal_version": "2.19.0.dev0", + "scoped_cmd_line_args": [ + "--remote-store-chunk-upload-timeout-seconds" + ], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--subproject-roots"], + "typ": "int", + "unscoped_cmd_line_args": [ + "--remote-store-chunk-upload-timeout-seconds" + ], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": 60 } ] } @@ -73476,21 +84956,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--loop-max=", - "config_key": "loop_max", - "default": 4294967296, - "deprecated_message": null, - "deprecation_active": false, - "display_args": ["--loop-max="], - "env_var": "PANTS_LOOP_MAX", + "comma_separated_display_args": "--remote-cache-read-timeout-millis=", + "config_key": "remote_cache_read_timeout_millis", + "default": 1500, + "deprecated_message": "Deprecated, is scheduled to be removed in version: 2.19.0.dev0.", + "deprecation_active": true, + "display_args": ["--remote-cache-read-timeout-millis="], + "env_var": "PANTS_REMOTE_CACHE_READ_TIMEOUT_MILLIS", "fromfile": false, - "help": "The maximum number of times to loop when `--loop` is specified.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--loop-max"], + "help": "Timeout value for remote cache lookups in milliseconds.", + "removal_hint": "Use the `remote_cache_rpc_timeout_millis` option instead.", + "removal_version": "2.19.0.dev0", + "scoped_cmd_line_args": ["--remote-cache-read-timeout-millis"], "target_field_name": null, "typ": "int", - "unscoped_cmd_line_args": ["--loop-max"], + "unscoped_cmd_line_args": ["--remote-cache-read-timeout-millis"], "value_history": { "ranked_values": [ { @@ -73501,73 +84981,116 @@ { "details": null, "rank": "HARDCODED", - "value": 4294967296 + "value": 1500 } ] } - }, + } + ], + "deprecated_scope": null, + "description": "Options to control the overall behavior of Pants.", + "is_goal": false, + "provider": "pants.core", + "scope": "" + }, + "add-trailing-comma": { + "advanced": [ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--streaming-workunits-report-interval=", - "config_key": "streaming_workunits_report_interval", - "default": 1.0, + "comma_separated_display_args": "--add-trailing-comma-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--streaming-workunits-report-interval="], - "env_var": "PANTS_STREAMING_WORKUNITS_REPORT_INTERVAL", + "display_args": ["--add-trailing-comma-install-from-resolve="], + "env_var": "PANTS_ADD_TRAILING_COMMA_INSTALL_FROM_RESOLVE", "fromfile": false, - "help": "Interval in seconds between when streaming workunit event receivers will be polled.", + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `add-trailing-comma` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--streaming-workunits-report-interval"], + "scoped_cmd_line_args": ["--add-trailing-comma-install-from-resolve"], "target_field_name": null, - "typ": "float", - "unscoped_cmd_line_args": ["--streaming-workunits-report-interval"], + "typ": "str", + "unscoped_cmd_line_args": ["--install-from-resolve"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--add-trailing-comma-requirements=\"['', '', ...]\"", + "config_key": "requirements", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--add-trailing-comma-requirements=\"['', '', ...]\"" + ], + "env_var": "PANTS_ADD_TRAILING_COMMA_REQUIREMENTS", + "fromfile": false, + "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--add-trailing-comma-requirements"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--requirements"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": 1.0 + "value": [] } ] } }, { - "choices": ["trace", "debug", "info", "warn", "error"], - "comma_separated_choices": "trace, debug, info, warn, error", - "comma_separated_display_args": "--streaming-workunits-level=", - "config_key": "streaming_workunits_level", - "default": "debug", + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--add-trailing-comma-interpreter-constraints=\"['', '', ...]\"", + "config_key": "interpreter_constraints", + "default": ["CPython>=3.7,<4"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--streaming-workunits-level="], - "env_var": "PANTS_STREAMING_WORKUNITS_LEVEL", + "display_args": [ + "--add-trailing-comma-interpreter-constraints=\"['', '', ...]\"" + ], + "env_var": "PANTS_ADD_TRAILING_COMMA_INTERPRETER_CONSTRAINTS", "fromfile": false, - "help": "The level of workunits that will be reported to streaming workunit event receivers.\n\nWorkunits form a tree, and even when workunits are filtered out by this setting, the workunit tree structure will be preserved (by adjusting the parent pointers of the remaining workunits).", + "help": "Python interpreter constraints for this tool.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--streaming-workunits-level"], + "scoped_cmd_line_args": [ + "--add-trailing-comma-interpreter-constraints" + ], "target_field_name": null, - "typ": "LogLevel", - "unscoped_cmd_line_args": ["--streaming-workunits-level"], + "typ": "list", + "unscoped_cmd_line_args": ["--interpreter-constraints"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "debug" + "value": ["CPython>=3.7,<4"] } ] } @@ -73575,27 +85098,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]streaming-workunits-complete-async", - "config_key": "streaming_workunits_complete_async", - "default": true, + "comma_separated_display_args": "--add-trailing-comma-console-script=", + "config_key": "console_script", + "default": "add-trailing-comma", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]streaming-workunits-complete-async"], - "env_var": "PANTS_STREAMING_WORKUNITS_COMPLETE_ASYNC", + "display_args": ["--add-trailing-comma-console-script="], + "env_var": "PANTS_ADD_TRAILING_COMMA_CONSOLE_SCRIPT", "fromfile": false, - "help": "True if stats recording should be allowed to complete asynchronously when `pantsd` is enabled. When `pantsd` is disabled, stats recording is always synchronous. To reduce data loss, this flag defaults to false inside of containers, such as when run with Docker.", + "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--streaming-workunits-complete-async", - "--no-streaming-workunits-complete-async" - ], + "scoped_cmd_line_args": ["--add-trailing-comma-console-script"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--streaming-workunits-complete-async", - "--no-streaming-workunits-complete-async" - ], + "typ": "str", + "unscoped_cmd_line_args": ["--console-script"], "value_history": { "ranked_values": [ { @@ -73606,7 +85123,7 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": "add-trailing-comma" } ] } @@ -73614,27 +85131,54 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]docker-execution", - "config_key": "docker_execution", - "default": true, + "comma_separated_display_args": "--add-trailing-comma-entry-point=", + "config_key": "entry_point", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]docker-execution"], - "env_var": "PANTS_DOCKER_EXECUTION", + "display_args": ["--add-trailing-comma-entry-point="], + "env_var": "PANTS_ADD_TRAILING_COMMA_ENTRY_POINT", "fromfile": false, - "help": "If true, `docker_environment` targets can be used to run builds inside a Docker container.\n\nIf false, anytime a `docker_environment` target is used, Pants will instead fallback to whatever the target's `fallback_environment` field is set to.\n\nThis can be useful, for example, if you want to always use Docker locally, but disable it in CI, or vice versa.", + "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--add-trailing-comma-entry-point"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--entry-point"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + } + ], + "basic": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]add-trailing-comma-skip", + "config_key": "skip", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]add-trailing-comma-skip"], + "env_var": "PANTS_ADD_TRAILING_COMMA_SKIP", + "fromfile": false, + "help": "If true, don't use add-trailing-comma when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ - "--docker-execution", - "--no-docker-execution" + "--add-trailing-comma-skip", + "--no-add-trailing-comma-skip" ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": [ - "--docker-execution", - "--no-docker-execution" - ], + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -73645,7 +85189,7 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": false } ] } @@ -73653,27 +85197,23 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-execution-extra-platform-properties=\"['', '', ...]\"", - "config_key": "remote_execution_extra_platform_properties", + "comma_separated_display_args": "--add-trailing-comma-args=\"[, , ...]\"", + "config_key": "args", "default": [], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--remote-execution-extra-platform-properties=\"['', '', ...]\"" + "--add-trailing-comma-args=\"[, , ...]\"" ], - "env_var": "PANTS_REMOTE_EXECUTION_EXTRA_PLATFORM_PROPERTIES", + "env_var": "PANTS_ADD_TRAILING_COMMA_ARGS", "fromfile": false, - "help": "Platform properties to set on remote execution requests.\n\nFormat: `property=value`. Multiple values should be specified as multiple occurrences of this flag.\n\nPants itself may add additional platform properties.\n\nIf you are using the `remote_environment` target mechanism, set this value as a field on the target instead. This option will be ignored.", + "help": "Arguments to pass directly to add-trailing-comma, e.g. `--add-trailing-comma-args='--py36-plus'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--remote-execution-extra-platform-properties" - ], + "scoped_cmd_line_args": ["--add-trailing-comma-args"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": [ - "--remote-execution-extra-platform-properties" - ], + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { @@ -73690,25 +85230,36 @@ } } ], - "basic": [ + "deprecated": [], + "deprecated_scope": null, + "description": "The add-trailing-comma Python code formatter (https://github.com/asottile/add-trailing-comma).", + "is_goal": false, + "provider": "pants.backend.experimental.python.lint.add_trailing_comma", + "scope": "add-trailing-comma" + }, + "anonymous-telemetry": { + "advanced": [ { - "choices": ["trace", "debug", "info", "warn", "error"], - "comma_separated_choices": "trace, debug, info, warn, error", - "comma_separated_display_args": "-l=, --level=", - "config_key": "level", - "default": "info", + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]anonymous-telemetry-enabled", + "config_key": "enabled", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["-l=", "--level="], - "env_var": "PANTS_LEVEL", + "display_args": ["--[no-]anonymous-telemetry-enabled"], + "env_var": "PANTS_ANONYMOUS_TELEMETRY_ENABLED", "fromfile": false, - "help": "Set the logging level.", + "help": "Whether to send anonymous telemetry to the Pants project.\n\nTelemetry is sent asynchronously, with silent failure, and does not impact build times or outcomes.\n\nSee https://www.pantsbuild.org/v2.18/docs/anonymous-telemetry for details.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["-l", "--level"], + "scoped_cmd_line_args": [ + "--anonymous-telemetry-enabled", + "--no-anonymous-telemetry-enabled" + ], "target_field_name": null, - "typ": "LogLevel", - "unscoped_cmd_line_args": ["-l", "--level"], + "typ": "bool", + "unscoped_cmd_line_args": ["--enabled", "--no-enabled"], "value_history": { "ranked_values": [ { @@ -73719,7 +85270,7 @@ { "details": null, "rank": "HARDCODED", - "value": "info" + "value": false } ] } @@ -73727,54 +85278,61 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--spec-files=\"['', '', ...]\"", - "config_key": "spec_files", - "default": [], + "comma_separated_display_args": "--anonymous-telemetry-repo-id=", + "config_key": "repo_id", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--spec-files=\"['', '', ...]\""], - "env_var": "PANTS_SPEC_FILES", + "display_args": ["--anonymous-telemetry-repo-id="], + "env_var": "PANTS_ANONYMOUS_TELEMETRY_REPO_ID", "fromfile": false, - "help": "Read additional specs (target addresses, files, and/or globs), one per line, from these files.", + "help": "An anonymized ID representing this repo.\n\nFor private repos, you likely want the ID to not be derived from, or algorithmically convertible to, anything identifying the repo.\n\nFor public repos the ID may be visible in that repo's config file, so anonymity of the repo is not guaranteed (although user anonymity is always guaranteed).\n\nSee https://www.pantsbuild.org/v2.18/docs/anonymous-telemetry for details.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--spec-files"], + "scoped_cmd_line_args": ["--anonymous-telemetry-repo-id"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--spec-files"], + "typ": "str", + "unscoped_cmd_line_args": ["--repo-id"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] - }, - { - "details": "", - "rank": "HARDCODED", - "value": [] + "value": null } ] } - }, + } + ], + "basic": [], + "deprecated": [], + "deprecated_scope": null, + "description": "Options related to sending anonymous stats to the Pants project, to aid development.", + "is_goal": false, + "provider": "pants.core", + "scope": "anonymous-telemetry" + }, + "apache-thrift": { + "advanced": [], + "basic": [ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]pantsd", - "config_key": "pantsd", - "default": true, + "comma_separated_display_args": "--apache-thrift-expected-version=", + "config_key": "expected_version", + "default": "0.15", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]pantsd"], - "env_var": "PANTS_PANTSD", + "display_args": ["--apache-thrift-expected-version="], + "env_var": "PANTS_APACHE_THRIFT_EXPECTED_VERSION", "fromfile": false, - "help": "Enables use of the Pants daemon (pantsd). pantsd can significantly improve runtime performance by lowering per-run startup cost, and by memoizing filesystem operations and rule execution.", + "help": "The major/minor version of Apache Thrift that you are using, such as `0.15`.\n\nPants will only use Thrift binaries from `--thrift-search-paths` that have the expected version, and it will error if none are found.\n\nDo not include the patch version.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pantsd", "--no-pantsd"], + "scoped_cmd_line_args": ["--apache-thrift-expected-version"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--pantsd", "--no-pantsd"], + "typ": "str", + "unscoped_cmd_line_args": ["--expected-version"], "value_history": { "ranked_values": [ { @@ -73785,7 +85343,7 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": "0.15" } ] } @@ -73793,98 +85351,107 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]concurrent", - "config_key": "concurrent", - "default": false, + "comma_separated_display_args": "--apache-thrift-thrift-search-paths=\"['', '', ...]\"", + "config_key": "thrift_search_paths", + "default": [""], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]concurrent"], - "env_var": "PANTS_CONCURRENT", + "display_args": [ + "--apache-thrift-thrift-search-paths=\"['', '', ...]\"" + ], + "env_var": "PANTS_APACHE_THRIFT_THRIFT_SEARCH_PATHS", "fromfile": false, - "help": "Enable concurrent runs of Pants. With this enabled, Pants will start up all concurrent invocations (e.g. in other terminals) without pantsd. As a result, enabling this option will increase the per-run startup cost, but will not block subsequent invocations.", + "help": "A list of paths to search for Thrift.\n\nSpecify absolute paths to directories with the `thrift` binary, e.g. `/usr/bin`. Earlier entries will be searched first.\n\nThe special string `\"\"` will expand to the contents of the PATH env var.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--concurrent", "--no-concurrent"], - "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--concurrent", "--no-concurrent"], + "scoped_cmd_line_args": ["--apache-thrift-thrift-search-paths"], + "target_field_name": "apache_thrift_thrift_search_paths", + "typ": "list", + "unscoped_cmd_line_args": ["--thrift-search-paths"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": [""] } ] } - }, + } + ], + "deprecated": [], + "deprecated_scope": null, + "description": "Apache Thrift IDL compiler (https://thrift.apache.org/).", + "is_goal": false, + "provider": "pants.backend.codegen.thrift.apache.python", + "scope": "apache-thrift" + }, + "autoflake": { + "advanced": [ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]local-cache", - "config_key": "local_cache", - "default": true, + "comma_separated_display_args": "--autoflake-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]local-cache"], - "env_var": "PANTS_LOCAL_CACHE", + "display_args": ["--autoflake-install-from-resolve="], + "env_var": "PANTS_AUTOFLAKE_INSTALL_FROM_RESOLVE", "fromfile": false, - "help": "Whether to cache process executions in a local cache persisted to disk at `--local-store-dir`.", + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `autoflake` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--local-cache", "--no-local-cache"], + "scoped_cmd_line_args": ["--autoflake-install-from-resolve"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--local-cache", "--no-local-cache"], + "typ": "str", + "unscoped_cmd_line_args": ["--install-from-resolve"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": true } ] } }, { - "choices": ["always", "on_failure", "never"], - "comma_separated_choices": "always, on_failure, never", - "comma_separated_display_args": "--keep-sandboxes=", - "config_key": "keep_sandboxes", - "default": "never", + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--autoflake-requirements=\"['', '', ...]\"", + "config_key": "requirements", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--keep-sandboxes="], - "env_var": "PANTS_KEEP_SANDBOXES", + "display_args": [ + "--autoflake-requirements=\"['', '', ...]\"" + ], + "env_var": "PANTS_AUTOFLAKE_REQUIREMENTS", "fromfile": false, - "help": "Controls whether Pants will clean up local directories used as chroots for running processes.\n\nPants will log their location so that you can inspect the chroot, and run the `__run.sh` script to recreate the process using the same argv and environment variables used by Pants. This option is useful for debugging.", + "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--keep-sandboxes"], + "scoped_cmd_line_args": ["--autoflake-requirements"], "target_field_name": null, - "typ": "KeepSandboxes", - "unscoped_cmd_line_args": ["--keep-sandboxes"], + "typ": "list", + "unscoped_cmd_line_args": ["--requirements"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "never" + "value": [] } ] } @@ -73892,32 +85459,34 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--session-end-tasks-timeout=", - "config_key": "session_end_tasks_timeout", - "default": 3.0, + "comma_separated_display_args": "--autoflake-interpreter-constraints=\"['', '', ...]\"", + "config_key": "interpreter_constraints", + "default": ["CPython>=3.7,<4"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--session-end-tasks-timeout="], - "env_var": "PANTS_SESSION_END_TASKS_TIMEOUT", + "display_args": [ + "--autoflake-interpreter-constraints=\"['', '', ...]\"" + ], + "env_var": "PANTS_AUTOFLAKE_INTERPRETER_CONSTRAINTS", "fromfile": false, - "help": "The time in seconds to wait for still-running \"session end\" tasks to complete before finishing completion of a Pants invocation. \"Session end\" tasks include, for example, writing data that was generated during the applicable Pants invocation to a configured remote cache.", + "help": "Python interpreter constraints for this tool.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--session-end-tasks-timeout"], + "scoped_cmd_line_args": ["--autoflake-interpreter-constraints"], "target_field_name": null, - "typ": "float", - "unscoped_cmd_line_args": ["--session-end-tasks-timeout"], + "typ": "list", + "unscoped_cmd_line_args": ["--interpreter-constraints"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": 3.0 + "value": ["CPython>=3.7,<4"] } ] } @@ -73925,27 +85494,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]remote-execution", - "config_key": "remote_execution", - "default": false, + "comma_separated_display_args": "--autoflake-console-script=", + "config_key": "console_script", + "default": "autoflake", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]remote-execution"], - "env_var": "PANTS_REMOTE_EXECUTION", + "display_args": ["--autoflake-console-script="], + "env_var": "PANTS_AUTOFLAKE_CONSOLE_SCRIPT", "fromfile": false, - "help": "Enables remote workers for increased parallelism. (Alpha)\n\nAlternatively, you can use `[GLOBAL].remote_cache_read` and `[GLOBAL].remote_cache_write` to still run everything locally, but to use a remote cache.", + "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--remote-execution", - "--no-remote-execution" - ], + "scoped_cmd_line_args": ["--autoflake-console-script"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--remote-execution", - "--no-remote-execution" - ], + "typ": "str", + "unscoped_cmd_line_args": ["--console-script"], "value_history": { "ranked_values": [ { @@ -73956,7 +85519,7 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": "autoflake" } ] } @@ -73964,66 +85527,51 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]remote-cache-read", - "config_key": "remote_cache_read", - "default": false, + "comma_separated_display_args": "--autoflake-entry-point=", + "config_key": "entry_point", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]remote-cache-read"], - "env_var": "PANTS_REMOTE_CACHE_READ", + "display_args": ["--autoflake-entry-point="], + "env_var": "PANTS_AUTOFLAKE_ENTRY_POINT", "fromfile": false, - "help": "Whether to enable reading from a remote cache.\n\nThis cannot be used at the same time as `[GLOBAL].remote_execution`.", + "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--remote-cache-read", - "--no-remote-cache-read" - ], + "scoped_cmd_line_args": ["--autoflake-entry-point"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--remote-cache-read", - "--no-remote-cache-read" - ], + "typ": "str", + "unscoped_cmd_line_args": ["--entry-point"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": false } ] } - }, + } + ], + "basic": [ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]remote-cache-write", - "config_key": "remote_cache_write", + "comma_separated_display_args": "--[no-]autoflake-skip", + "config_key": "skip", "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]remote-cache-write"], - "env_var": "PANTS_REMOTE_CACHE_WRITE", + "display_args": ["--[no-]autoflake-skip"], + "env_var": "PANTS_AUTOFLAKE_SKIP", "fromfile": false, - "help": "Whether to enable writing results to a remote cache.\n\nThis cannot be used at the same time as `[GLOBAL].remote_execution`.", + "help": "If true, don't use Autoflake when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--remote-cache-write", - "--no-remote-cache-write" - ], + "scoped_cmd_line_args": ["--autoflake-skip", "--no-autoflake-skip"], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": [ - "--remote-cache-write", - "--no-remote-cache-write" - ], + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -74042,54 +85590,66 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]colors", - "config_key": "colors", - "default": false, + "comma_separated_display_args": "--autoflake-args=\"[, , ...]\"", + "config_key": "args", + "default": ["--remove-all-unused-imports"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]colors"], - "env_var": "PANTS_COLORS", + "display_args": [ + "--autoflake-args=\"[, , ...]\"" + ], + "env_var": "PANTS_AUTOFLAKE_ARGS", "fromfile": false, - "help": "Whether Pants should use colors in output or not. This may also impact whether some tools Pants runs use color.\n\nWhen unset, this value defaults based on whether the output destination supports color.", + "help": "Arguments to pass directly to Autoflake, e.g. `--autoflake-args='--remove-all-unused-imports --target-version=py37 --quiet'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--colors", "--no-colors"], + "scoped_cmd_line_args": ["--autoflake-args"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--colors", "--no-colors"], + "typ": "list", + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": ["--remove-all-unused-imports"] } ] } - }, + } + ], + "deprecated": [], + "deprecated_scope": null, + "description": "The Autoflake Python code formatter (https://github.com/myint/autoflake).", + "is_goal": false, + "provider": "pants.backend.python.lint.autoflake", + "scope": "autoflake" + }, + "avro": { + "advanced": [ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]dynamic-ui", - "config_key": "dynamic_ui", + "comma_separated_display_args": "--[no-]avro-tailor", + "config_key": "tailor", "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]dynamic-ui"], - "env_var": "PANTS_DYNAMIC_UI", + "display_args": ["--[no-]avro-tailor"], + "env_var": "PANTS_AVRO_TAILOR", "fromfile": false, - "help": "Display a dynamically-updating console UI as Pants runs. This is true by default if Pants detects a TTY and there is no 'CI' environment variable indicating that Pants is running in a continuous integration environment.", + "help": "If true, add `avro_sources` targets with the `tailor` goal.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--dynamic-ui", "--no-dynamic-ui"], + "scoped_cmd_line_args": ["--avro-tailor", "--no-avro-tailor"], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--dynamic-ui", "--no-dynamic-ui"], + "unscoped_cmd_line_args": ["--tailor", "--no-tailor"], "value_history": { "ranked_values": [ { @@ -74104,36 +85664,42 @@ } ] } - }, + } + ], + "basic": [], + "deprecated": [], + "deprecated_scope": null, + "description": "General Avro codegen settings.", + "is_goal": false, + "provider": "pants.backend.experimental.codegen.avro.java", + "scope": "avro" + }, + "bandit": { + "advanced": [ { - "choices": ["indicatif-spinner", "experimental-prodash"], - "comma_separated_choices": "indicatif-spinner, experimental-prodash", - "comma_separated_display_args": "--dynamic-ui-renderer=", - "config_key": "dynamic_ui_renderer", - "default": "indicatif-spinner", + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--bandit-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--dynamic-ui-renderer="], - "env_var": "PANTS_DYNAMIC_UI_RENDERER", + "display_args": ["--bandit-install-from-resolve="], + "env_var": "PANTS_BANDIT_INSTALL_FROM_RESOLVE", "fromfile": false, - "help": "If `--dynamic-ui` is enabled, selects the renderer.", + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `bandit` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--dynamic-ui-renderer"], + "scoped_cmd_line_args": ["--bandit-install-from-resolve"], "target_field_name": null, - "typ": "DynamicUIRenderer", - "unscoped_cmd_line_args": ["--dynamic-ui-renderer"], + "typ": "str", + "unscoped_cmd_line_args": ["--install-from-resolve"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": "indicatif-spinner" } ] } @@ -74141,23 +85707,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--tag=\"[[+-]tag1,tag2,..., [+-]tag1,tag2,..., ...]\"", - "config_key": "tag", + "comma_separated_display_args": "--bandit-requirements=\"['', '', ...]\"", + "config_key": "requirements", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--tag=\"[[+-]tag1,tag2,..., [+-]tag1,tag2,..., ...]\"" - ], - "env_var": "PANTS_TAG", + "display_args": ["--bandit-requirements=\"['', '', ...]\""], + "env_var": "PANTS_BANDIT_REQUIREMENTS", "fromfile": false, - "help": "Include only targets with these tags (optional '+' prefix) or without these tags ('-' prefix). See https://www.pantsbuild.org/v2.18/docs/advanced-target-selection.", + "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--tag"], + "scoped_cmd_line_args": ["--bandit-requirements"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--tag"], + "unscoped_cmd_line_args": ["--requirements"], "value_history": { "ranked_values": [ { @@ -74176,21 +85740,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]loop", - "config_key": "loop", - "default": false, + "comma_separated_display_args": "--bandit-console-script=", + "config_key": "console_script", + "default": "bandit", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]loop"], - "env_var": "PANTS_LOOP", + "display_args": ["--bandit-console-script="], + "env_var": "PANTS_BANDIT_CONSOLE_SCRIPT", "fromfile": false, - "help": "Run goals continuously as file changes are detected.", + "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--loop", "--no-loop"], + "scoped_cmd_line_args": ["--bandit-console-script"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--loop", "--no-loop"], + "typ": "str", + "unscoped_cmd_line_args": ["--console-script"], "value_history": { "ranked_values": [ { @@ -74201,71 +85765,87 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": "bandit" } ] } - } - ], - "deprecated": [ + }, { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]process-cleanup", - "config_key": "process_cleanup", - "default": true, - "deprecated_message": "Deprecated, is scheduled to be removed in version: 3.0.0.dev0.", - "deprecation_active": true, - "display_args": ["--[no-]process-cleanup"], - "env_var": "PANTS_PROCESS_CLEANUP", + "comma_separated_display_args": "--bandit-entry-point=", + "config_key": "entry_point", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--bandit-entry-point="], + "env_var": "PANTS_BANDIT_ENTRY_POINT", "fromfile": false, - "help": "If false, Pants will not clean up local directories used as chroots for running processes. Pants will log their location so that you can inspect the chroot, and run the `__run.sh` script to recreate the process using the same argv and environment variables used by Pants. This option is useful for debugging.", - "removal_hint": "Use the `keep_sandboxes` option instead.", - "removal_version": "3.0.0.dev0", - "scoped_cmd_line_args": ["--process-cleanup", "--no-process-cleanup"], + "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--bandit-entry-point"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--process-cleanup", - "--no-process-cleanup" - ], + "typ": "str", + "unscoped_cmd_line_args": ["--entry-point"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--bandit-config=", + "config_key": "config", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--bandit-config="], + "env_var": "PANTS_BANDIT_CONFIG", + "fromfile": false, + "help": "Path to a Bandit YAML config file (https://bandit.readthedocs.io/en/latest/config.html).", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--bandit-config"], + "target_field_name": null, + "typ": "file_option", + "unscoped_cmd_line_args": ["--config"], + "value_history": { + "ranked_values": [ { "details": null, - "rank": "HARDCODED", - "value": true + "rank": "NONE", + "value": null } ] } - }, + } + ], + "basic": [ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-store-chunk-upload-timeout-seconds=", - "config_key": "remote_store_chunk_upload_timeout_seconds", - "default": 60, - "deprecated_message": "Deprecated, is scheduled to be removed in version: 2.19.0.dev0.", - "deprecation_active": true, - "display_args": ["--remote-store-chunk-upload-timeout-seconds="], - "env_var": "PANTS_REMOTE_STORE_CHUNK_UPLOAD_TIMEOUT_SECONDS", + "comma_separated_display_args": "--[no-]bandit-skip", + "config_key": "skip", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]bandit-skip"], + "env_var": "PANTS_BANDIT_SKIP", "fromfile": false, - "help": "Timeout (in seconds) for uploads of individual chunks to the remote file store.", - "removal_hint": "Unused: use the `remote_store_rpc_timeout_millis` option instead.", - "removal_version": "2.19.0.dev0", - "scoped_cmd_line_args": [ - "--remote-store-chunk-upload-timeout-seconds" - ], + "help": "If true, don't use Bandit when running `pants lint`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--bandit-skip", "--no-bandit-skip"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": [ - "--remote-store-chunk-upload-timeout-seconds" - ], + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -74276,7 +85856,7 @@ { "details": null, "rank": "HARDCODED", - "value": 60 + "value": false } ] } @@ -74284,60 +85864,61 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--remote-cache-read-timeout-millis=", - "config_key": "remote_cache_read_timeout_millis", - "default": 1500, - "deprecated_message": "Deprecated, is scheduled to be removed in version: 2.19.0.dev0.", - "deprecation_active": true, - "display_args": ["--remote-cache-read-timeout-millis="], - "env_var": "PANTS_REMOTE_CACHE_READ_TIMEOUT_MILLIS", + "comma_separated_display_args": "--bandit-args=\"[, , ...]\"", + "config_key": "args", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--bandit-args=\"[, , ...]\""], + "env_var": "PANTS_BANDIT_ARGS", "fromfile": false, - "help": "Timeout value for remote cache lookups in milliseconds.", - "removal_hint": "Use the `remote_cache_rpc_timeout_millis` option instead.", - "removal_version": "2.19.0.dev0", - "scoped_cmd_line_args": ["--remote-cache-read-timeout-millis"], + "help": "Arguments to pass directly to Bandit, e.g. `--bandit-args='--skip B101,B308 --confidence'`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--bandit-args"], "target_field_name": null, - "typ": "int", - "unscoped_cmd_line_args": ["--remote-cache-read-timeout-millis"], + "typ": "list", + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": 1500 + "value": [] } ] } } ], + "deprecated": [], "deprecated_scope": null, - "description": "Options to control the overall behavior of Pants.", + "description": "A tool for finding security issues in Python code (https://bandit.readthedocs.io).", "is_goal": false, - "provider": "pants.core", - "scope": "" + "provider": "pants.backend.python.lint.bandit", + "scope": "bandit" }, - "add-trailing-comma": { + "black": { "advanced": [ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--add-trailing-comma-install-from-resolve=", + "comma_separated_display_args": "--black-install-from-resolve=", "config_key": "install_from_resolve", "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--add-trailing-comma-install-from-resolve="], - "env_var": "PANTS_ADD_TRAILING_COMMA_INSTALL_FROM_RESOLVE", + "display_args": ["--black-install-from-resolve="], + "env_var": "PANTS_BLACK_INSTALL_FROM_RESOLVE", "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `add-trailing-comma` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `black` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--add-trailing-comma-install-from-resolve"], + "scoped_cmd_line_args": ["--black-install-from-resolve"], "target_field_name": null, "typ": "str", "unscoped_cmd_line_args": ["--install-from-resolve"], @@ -74354,20 +85935,18 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--add-trailing-comma-requirements=\"['', '', ...]\"", + "comma_separated_display_args": "--black-requirements=\"['', '', ...]\"", "config_key": "requirements", "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--add-trailing-comma-requirements=\"['', '', ...]\"" - ], - "env_var": "PANTS_ADD_TRAILING_COMMA_REQUIREMENTS", + "display_args": ["--black-requirements=\"['', '', ...]\""], + "env_var": "PANTS_BLACK_REQUIREMENTS", "fromfile": false, "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--add-trailing-comma-requirements"], + "scoped_cmd_line_args": ["--black-requirements"], "target_field_name": null, "typ": "list", "unscoped_cmd_line_args": ["--requirements"], @@ -74389,22 +85968,20 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--add-trailing-comma-interpreter-constraints=\"['', '', ...]\"", + "comma_separated_display_args": "--black-interpreter-constraints=\"['', '', ...]\"", "config_key": "interpreter_constraints", "default": ["CPython>=3.7,<4"], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--add-trailing-comma-interpreter-constraints=\"['', '', ...]\"" + "--black-interpreter-constraints=\"['', '', ...]\"" ], - "env_var": "PANTS_ADD_TRAILING_COMMA_INTERPRETER_CONSTRAINTS", + "env_var": "PANTS_BLACK_INTERPRETER_CONSTRAINTS", "fromfile": false, "help": "Python interpreter constraints for this tool.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--add-trailing-comma-interpreter-constraints" - ], + "scoped_cmd_line_args": ["--black-interpreter-constraints"], "target_field_name": null, "typ": "list", "unscoped_cmd_line_args": ["--interpreter-constraints"], @@ -74426,18 +86003,18 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--add-trailing-comma-console-script=", + "comma_separated_display_args": "--black-console-script=", "config_key": "console_script", - "default": "add-trailing-comma", + "default": "black", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--add-trailing-comma-console-script="], - "env_var": "PANTS_ADD_TRAILING_COMMA_CONSOLE_SCRIPT", + "display_args": ["--black-console-script="], + "env_var": "PANTS_BLACK_CONSOLE_SCRIPT", "fromfile": false, "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--add-trailing-comma-console-script"], + "scoped_cmd_line_args": ["--black-console-script"], "target_field_name": null, "typ": "str", "unscoped_cmd_line_args": ["--console-script"], @@ -74451,7 +86028,7 @@ { "details": null, "rank": "HARDCODED", - "value": "add-trailing-comma" + "value": "black" } ] } @@ -74459,18 +86036,18 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--add-trailing-comma-entry-point=", + "comma_separated_display_args": "--black-entry-point=", "config_key": "entry_point", "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--add-trailing-comma-entry-point="], - "env_var": "PANTS_ADD_TRAILING_COMMA_ENTRY_POINT", + "display_args": ["--black-entry-point="], + "env_var": "PANTS_BLACK_ENTRY_POINT", "fromfile": false, "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--add-trailing-comma-entry-point"], + "scoped_cmd_line_args": ["--black-entry-point"], "target_field_name": null, "typ": "str", "unscoped_cmd_line_args": ["--entry-point"], @@ -74483,41 +86060,31 @@ } ] } - } - ], - "basic": [ + }, { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]add-trailing-comma-skip", - "config_key": "skip", - "default": false, + "comma_separated_display_args": "--black-config=", + "config_key": "config", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]add-trailing-comma-skip"], - "env_var": "PANTS_ADD_TRAILING_COMMA_SKIP", + "display_args": ["--black-config="], + "env_var": "PANTS_BLACK_CONFIG", "fromfile": false, - "help": "If true, don't use add-trailing-comma when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "Path to a TOML config file understood by Black (https://github.com/psf/black#configuration-format).\n\nSetting this option will disable `[black].config_discovery`. Use this option if the config is located in a non-standard location.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--add-trailing-comma-skip", - "--no-add-trailing-comma-skip" - ], + "scoped_cmd_line_args": ["--black-config"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "typ": "file_option", + "unscoped_cmd_line_args": ["--config"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": false } ] } @@ -74525,69 +86092,62 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--add-trailing-comma-args=\"[, , ...]\"", - "config_key": "args", - "default": [], + "comma_separated_display_args": "--[no-]black-config-discovery", + "config_key": "config_discovery", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--add-trailing-comma-args=\"[, , ...]\"" - ], - "env_var": "PANTS_ADD_TRAILING_COMMA_ARGS", + "display_args": ["--[no-]black-config-discovery"], + "env_var": "PANTS_BLACK_CONFIG_DISCOVERY", "fromfile": false, - "help": "Arguments to pass directly to add-trailing-comma, e.g. `--add-trailing-comma-args='--py36-plus'`.", + "help": "If true, Pants will include any relevant pyproject.toml config files during runs.\n\nUse `[black].config` instead if your config is in a non-standard location.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--add-trailing-comma-args"], + "scoped_cmd_line_args": [ + "--black-config-discovery", + "--no-black-config-discovery" + ], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--config-discovery", + "--no-config-discovery" + ], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": true } ] } } ], - "deprecated": [], - "deprecated_scope": null, - "description": "The add-trailing-comma Python code formatter (https://github.com/asottile/add-trailing-comma).", - "is_goal": false, - "provider": "pants.backend.experimental.python.lint.add_trailing_comma", - "scope": "add-trailing-comma" - }, - "anonymous-telemetry": { - "advanced": [ + "basic": [ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]anonymous-telemetry-enabled", - "config_key": "enabled", + "comma_separated_display_args": "--[no-]black-skip", + "config_key": "skip", "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]anonymous-telemetry-enabled"], - "env_var": "PANTS_ANONYMOUS_TELEMETRY_ENABLED", + "display_args": ["--[no-]black-skip"], + "env_var": "PANTS_BLACK_SKIP", "fromfile": false, - "help": "Whether to send anonymous telemetry to the Pants project.\n\nTelemetry is sent asynchronously, with silent failure, and does not impact build times or outcomes.\n\nSee https://www.pantsbuild.org/v2.18/docs/anonymous-telemetry for details.", + "help": "If true, don't use Black when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--anonymous-telemetry-enabled", - "--no-anonymous-telemetry-enabled" - ], + "scoped_cmd_line_args": ["--black-skip", "--no-black-skip"], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--enabled", "--no-enabled"], + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -74606,61 +86166,64 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--anonymous-telemetry-repo-id=", - "config_key": "repo_id", - "default": null, + "comma_separated_display_args": "--black-args=\"[, , ...]\"", + "config_key": "args", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--anonymous-telemetry-repo-id="], - "env_var": "PANTS_ANONYMOUS_TELEMETRY_REPO_ID", + "display_args": ["--black-args=\"[, , ...]\""], + "env_var": "PANTS_BLACK_ARGS", "fromfile": false, - "help": "An anonymized ID representing this repo.\n\nFor private repos, you likely want the ID to not be derived from, or algorithmically convertible to, anything identifying the repo.\n\nFor public repos the ID may be visible in that repo's config file, so anonymity of the repo is not guaranteed (although user anonymity is always guaranteed).\n\nSee https://www.pantsbuild.org/v2.18/docs/anonymous-telemetry for details.", + "help": "Arguments to pass directly to Black, e.g. `--black-args='--target-version=py37 --quiet'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--anonymous-telemetry-repo-id"], + "scoped_cmd_line_args": ["--black-args"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--repo-id"], + "typ": "list", + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] } ] } } ], - "basic": [], "deprecated": [], "deprecated_scope": null, - "description": "Options related to sending anonymous stats to the Pants project, to aid development.", + "description": "The Black Python code formatter (https://black.readthedocs.io/).", "is_goal": false, "provider": "pants.core", - "scope": "anonymous-telemetry" + "scope": "black" }, - "apache-thrift": { - "advanced": [], - "basic": [ + "buf": { + "advanced": [ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--apache-thrift-expected-version=", - "config_key": "expected_version", - "default": "0.15", + "comma_separated_display_args": "--buf-version=", + "config_key": "version", + "default": "v1.3.0", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--apache-thrift-expected-version="], - "env_var": "PANTS_APACHE_THRIFT_EXPECTED_VERSION", + "display_args": ["--buf-version="], + "env_var": "PANTS_BUF_VERSION", "fromfile": false, - "help": "The major/minor version of Apache Thrift that you are using, such as `0.15`.\n\nPants will only use Thrift binaries from `--thrift-search-paths` that have the expected version, and it will error if none are found.\n\nDo not include the patch version.", + "help": "Use this version of Buf.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--apache-thrift-expected-version"], + "scoped_cmd_line_args": ["--buf-version"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--expected-version"], + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { @@ -74671,7 +86234,7 @@ { "details": null, "rank": "HARDCODED", - "value": "0.15" + "value": "v1.3.0" } ] } @@ -74679,23 +86242,26 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--apache-thrift-thrift-search-paths=\"['', '', ...]\"", - "config_key": "thrift_search_paths", - "default": [""], + "comma_separated_display_args": "--buf-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", + "default": [ + "v1.3.0|linux_arm64 |fbfd53c501451b36900247734bfa4cbe86ae05d0f51bc298de8711d5ee374ee5|13940828", + "v1.3.0|linux_x86_64|e29c4283b1cd68ada41fa493171c41d7605750d258fcd6ecdf692a63fae95213|15267162", + "v1.3.0|macos_arm64 |147985d7f2816a545792e38b26178ff4027bf16cd3712f6e387a4e3692a16deb|15391890", + "v1.3.0|macos_x86_64|3b6bd2e5a5dd758178aee01fb067261baf5d31bfebe93336915bfdf7b21928c4|15955291" + ], "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--apache-thrift-thrift-search-paths=\"['', '', ...]\"" - ], - "env_var": "PANTS_APACHE_THRIFT_THRIFT_SEARCH_PATHS", + "display_args": ["--buf-known-versions=\"['', '', ...]\""], + "env_var": "PANTS_BUF_KNOWN_VERSIONS", "fromfile": false, - "help": "A list of paths to search for Thrift.\n\nSpecify absolute paths to directories with the `thrift` binary, e.g. `/usr/bin`. Earlier entries will be searched first.\n\nThe special string `\"\"` will expand to the contents of the PATH env var.", + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--apache-thrift-thrift-search-paths"], - "target_field_name": "apache_thrift_thrift_search_paths", + "scoped_cmd_line_args": ["--buf-known-versions"], + "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--thrift-search-paths"], + "unscoped_cmd_line_args": ["--known-versions"], "value_history": { "ranked_values": [ { @@ -74706,45 +86272,45 @@ { "details": "", "rank": "HARDCODED", - "value": [""] + "value": [ + "v1.3.0|linux_arm64 |fbfd53c501451b36900247734bfa4cbe86ae05d0f51bc298de8711d5ee374ee5|13940828", + "v1.3.0|linux_x86_64|e29c4283b1cd68ada41fa493171c41d7605750d258fcd6ecdf692a63fae95213|15267162", + "v1.3.0|macos_arm64 |147985d7f2816a545792e38b26178ff4027bf16cd3712f6e387a4e3692a16deb|15391890", + "v1.3.0|macos_x86_64|3b6bd2e5a5dd758178aee01fb067261baf5d31bfebe93336915bfdf7b21928c4|15955291" + ] } ] } - } - ], - "deprecated": [], - "deprecated_scope": null, - "description": "Apache Thrift IDL compiler (https://thrift.apache.org/).", - "is_goal": false, - "provider": "pants.backend.codegen.thrift.apache.python", - "scope": "apache-thrift" - }, - "autoflake": { - "advanced": [ + }, { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--autoflake-install-from-resolve=", - "config_key": "install_from_resolve", - "default": null, + "comma_separated_display_args": "--buf-url-template=", + "config_key": "url_template", + "default": "https://github.com/bufbuild/buf/releases/download/{version}/buf-{platform}.tar.gz", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--autoflake-install-from-resolve="], - "env_var": "PANTS_AUTOFLAKE_INSTALL_FROM_RESOLVE", + "display_args": ["--buf-url-template="], + "env_var": "PANTS_BUF_URL_TEMPLATE", "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `autoflake` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--autoflake-install-from-resolve"], + "scoped_cmd_line_args": ["--buf-url-template"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--install-from-resolve"], + "unscoped_cmd_line_args": ["--url-template"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "https://github.com/bufbuild/buf/releases/download/{version}/buf-{platform}.tar.gz" } ] } @@ -74752,69 +86318,79 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--autoflake-requirements=\"['', '', ...]\"", - "config_key": "requirements", - "default": [], + "comma_separated_display_args": "--buf-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "url_platform_mapping", + "default": { + "linux_arm64": "Linux-aarch64", + "linux_x86_64": "Linux-x86_64", + "macos_arm64": "Darwin-arm64", + "macos_x86_64": "Darwin-x86_64" + }, "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--autoflake-requirements=\"['', '', ...]\"" + "--buf-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" ], - "env_var": "PANTS_AUTOFLAKE_REQUIREMENTS", + "env_var": "PANTS_BUF_URL_PLATFORM_MAPPING", "fromfile": false, - "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--autoflake-requirements"], + "scoped_cmd_line_args": ["--buf-url-platform-mapping"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--requirements"], + "typ": "dict", + "unscoped_cmd_line_args": ["--url-platform-mapping"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": [] + "value": {} }, { "details": "", "rank": "HARDCODED", - "value": [] + "value": { + "linux_arm64": "Linux-aarch64", + "linux_x86_64": "Linux-x86_64", + "macos_arm64": "Darwin-arm64", + "macos_x86_64": "Darwin-x86_64" + } } ] } }, { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--autoflake-interpreter-constraints=\"['', '', ...]\"", - "config_key": "interpreter_constraints", - "default": ["CPython>=3.7,<4"], + "choices": ["error", "warning"], + "comma_separated_choices": "error, warning", + "comma_separated_display_args": "--buf-use-unsupported-version=", + "config_key": "use_unsupported_version", + "default": "error", "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--autoflake-interpreter-constraints=\"['', '', ...]\"" + "--buf-use-unsupported-version=" ], - "env_var": "PANTS_AUTOFLAKE_INTERPRETER_CONSTRAINTS", + "env_var": "PANTS_BUF_USE_UNSUPPORTED_VERSION", "fromfile": false, - "help": "Python interpreter constraints for this tool.", + "help": "\nWhat action to take in case the requested version of Buf is not supported.\n\nSupported Buf versions: unspecified\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--autoflake-interpreter-constraints"], + "scoped_cmd_line_args": ["--buf-use-unsupported-version"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--interpreter-constraints"], + "typ": "UnsupportedVersionUsage", + "unscoped_cmd_line_args": ["--use-unsupported-version"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": ["CPython>=3.7,<4"] + "value": "error" } ] } @@ -74822,32 +86398,27 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--autoflake-console-script=", - "config_key": "console_script", - "default": "autoflake", + "comma_separated_display_args": "--buf-config=", + "config_key": "config", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--autoflake-console-script="], - "env_var": "PANTS_AUTOFLAKE_CONSOLE_SCRIPT", + "display_args": ["--buf-config="], + "env_var": "PANTS_BUF_CONFIG", "fromfile": false, - "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", + "help": "Path to a config file understood by Buf (https://docs.buf.build/configuration/overview).\n\nSetting this option will disable `[buf].config_discovery`. Use this option if the config is located in a non-standard location.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--autoflake-console-script"], + "scoped_cmd_line_args": ["--buf-config"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--console-script"], + "typ": "file_option", + "unscoped_cmd_line_args": ["--config"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - }, - { - "details": null, - "rank": "HARDCODED", - "value": "autoflake" } ] } @@ -74855,27 +86426,38 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--autoflake-entry-point=", - "config_key": "entry_point", - "default": null, + "comma_separated_display_args": "--[no-]buf-config-discovery", + "config_key": "config_discovery", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--autoflake-entry-point="], - "env_var": "PANTS_AUTOFLAKE_ENTRY_POINT", + "display_args": ["--[no-]buf-config-discovery"], + "env_var": "PANTS_BUF_CONFIG_DISCOVERY", "fromfile": false, - "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", + "help": "If true, Pants will include any relevant root config files during runs (`buf.yaml`, `buf.lock`, `buf.gen.yaml` and `buf.work.yaml`).\n\nUse `[buf].config` instead if your config is in a non-standard location.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--autoflake-entry-point"], + "scoped_cmd_line_args": [ + "--buf-config-discovery", + "--no-buf-config-discovery" + ], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--entry-point"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--config-discovery", + "--no-config-discovery" + ], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true } ] } @@ -74885,21 +86467,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]autoflake-skip", - "config_key": "skip", + "comma_separated_display_args": "--[no-]buf-format-skip", + "config_key": "format_skip", "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]autoflake-skip"], - "env_var": "PANTS_AUTOFLAKE_SKIP", + "display_args": ["--[no-]buf-format-skip"], + "env_var": "PANTS_BUF_FORMAT_SKIP", "fromfile": false, - "help": "If true, don't use Autoflake when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use Buf when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--autoflake-skip", "--no-autoflake-skip"], + "scoped_cmd_line_args": ["--buf-format-skip", "--no-buf-format-skip"], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "unscoped_cmd_line_args": ["--format-skip", "--no-format-skip"], "value_history": { "ranked_values": [ { @@ -74918,105 +86500,32 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--autoflake-args=\"[, , ...]\"", - "config_key": "args", - "default": ["--remove-all-unused-imports"], - "deprecated_message": null, - "deprecation_active": false, - "display_args": [ - "--autoflake-args=\"[, , ...]\"" - ], - "env_var": "PANTS_AUTOFLAKE_ARGS", - "fromfile": false, - "help": "Arguments to pass directly to Autoflake, e.g. `--autoflake-args='--remove-all-unused-imports --target-version=py37 --quiet'`.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--autoflake-args"], - "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--args"], - "value_history": { - "ranked_values": [ - { - "details": "", - "rank": "NONE", - "value": [] - }, - { - "details": "", - "rank": "HARDCODED", - "value": ["--remove-all-unused-imports"] - } - ] - } - } - ], - "deprecated": [], - "deprecated_scope": null, - "description": "The Autoflake Python code formatter (https://github.com/myint/autoflake).", - "is_goal": false, - "provider": "pants.backend.python.lint.autoflake", - "scope": "autoflake" - }, - "bandit": { - "advanced": [ - { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--bandit-install-from-resolve=", - "config_key": "install_from_resolve", - "default": null, + "comma_separated_display_args": "--[no-]buf-lint-skip", + "config_key": "lint_skip", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--bandit-install-from-resolve="], - "env_var": "PANTS_BANDIT_INSTALL_FROM_RESOLVE", + "display_args": ["--[no-]buf-lint-skip"], + "env_var": "PANTS_BUF_LINT_SKIP", "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `bandit` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "help": "If true, don't use Buf when running `pants lint`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--bandit-install-from-resolve"], + "scoped_cmd_line_args": ["--buf-lint-skip", "--no-buf-lint-skip"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--install-from-resolve"], + "typ": "bool", + "unscoped_cmd_line_args": ["--lint-skip", "--no-lint-skip"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null - } - ] - } - }, - { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--bandit-requirements=\"['', '', ...]\"", - "config_key": "requirements", - "default": [], - "deprecated_message": null, - "deprecation_active": false, - "display_args": ["--bandit-requirements=\"['', '', ...]\""], - "env_var": "PANTS_BANDIT_REQUIREMENTS", - "fromfile": false, - "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--bandit-requirements"], - "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--requirements"], - "value_history": { - "ranked_values": [ - { - "details": "", - "rank": "NONE", - "value": [] }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": false } ] } @@ -75024,32 +86533,34 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--bandit-console-script=", - "config_key": "console_script", - "default": "bandit", + "comma_separated_display_args": "--buf-format-args=\"[, , ...]\"", + "config_key": "format_args", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--bandit-console-script="], - "env_var": "PANTS_BANDIT_CONSOLE_SCRIPT", + "display_args": [ + "--buf-format-args=\"[, , ...]\"" + ], + "env_var": "PANTS_BUF_FORMAT_ARGS", "fromfile": false, - "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", + "help": "Arguments to pass directly to Buf, e.g. `--buf-args='--error-format json'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--bandit-console-script"], + "scoped_cmd_line_args": ["--buf-format-args"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--console-script"], + "typ": "list", + "unscoped_cmd_line_args": ["--format-args"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "bandit" + "value": [] } ] } @@ -75057,79 +86568,113 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--bandit-entry-point=", - "config_key": "entry_point", - "default": null, + "comma_separated_display_args": "--buf-lint-args=\"[, , ...]\"", + "config_key": "lint_args", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--bandit-entry-point="], - "env_var": "PANTS_BANDIT_ENTRY_POINT", + "display_args": [ + "--buf-lint-args=\"[, , ...]\"" + ], + "env_var": "PANTS_BUF_LINT_ARGS", "fromfile": false, - "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", + "help": "Arguments to pass directly to Buf, e.g. `--buf-args='--error-format json'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--bandit-entry-point"], + "scoped_cmd_line_args": ["--buf-lint-args"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--entry-point"], + "typ": "list", + "unscoped_cmd_line_args": ["--lint-args"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] } ] } - }, + } + ], + "deprecated": [], + "deprecated_scope": null, + "description": "A linter and formatter for Protocol Buffers (https://github.com/bufbuild/buf).", + "is_goal": false, + "provider": "pants.backend.codegen.protobuf.lint.buf", + "scope": "buf" + }, + "build-deprecations-fixer": { + "advanced": [], + "basic": [ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--bandit-config=", - "config_key": "config", - "default": null, + "comma_separated_display_args": "--[no-]build-deprecations-fixer-skip", + "config_key": "skip", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--bandit-config="], - "env_var": "PANTS_BANDIT_CONFIG", + "display_args": ["--[no-]build-deprecations-fixer-skip"], + "env_var": "PANTS_BUILD_DEPRECATIONS_FIXER_SKIP", "fromfile": false, - "help": "Path to a Bandit YAML config file (https://bandit.readthedocs.io/en/latest/config.html).", + "help": "If true, don't use BUILD Deprecations Fixer when running `pants fix`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--bandit-config"], + "scoped_cmd_line_args": [ + "--build-deprecations-fixer-skip", + "--no-build-deprecations-fixer-skip" + ], "target_field_name": null, - "typ": "file_option", - "unscoped_cmd_line_args": ["--config"], + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false } ] } } ], - "basic": [ + "deprecated": [], + "deprecated_scope": null, + "description": "A tool/plugin for fixing BUILD file deprecations (where possible).\n\nThis includes deprecations for:\n\n - Renamed targets\n - Renamed fields", + "is_goal": false, + "provider": "pants.backend.build_files.fix.deprecations", + "scope": "build-deprecations-fixer" + }, + "buildifier": { + "advanced": [ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]bandit-skip", - "config_key": "skip", - "default": false, + "comma_separated_display_args": "--buildifier-version=", + "config_key": "version", + "default": "5.1.0", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]bandit-skip"], - "env_var": "PANTS_BANDIT_SKIP", + "display_args": ["--buildifier-version="], + "env_var": "PANTS_BUILDIFIER_VERSION", "fromfile": false, - "help": "If true, don't use Bandit when running `scie-pants-linux-x86_64 lint`.", + "help": "Use this version of Buildifier.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--bandit-skip", "--no-bandit-skip"], + "scoped_cmd_line_args": ["--buildifier-version"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "typ": "str", + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { @@ -75140,7 +86685,7 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": "5.1.0" } ] } @@ -75148,21 +86693,28 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--bandit-args=\"[, , ...]\"", - "config_key": "args", - "default": [], + "comma_separated_display_args": "--buildifier-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", + "default": [ + "5.1.0|macos_x86_64|c9378d9f4293fc38ec54a08fbc74e7a9d28914dae6891334401e59f38f6e65dc|7125968", + "5.1.0|macos_arm64 |745feb5ea96cb6ff39a76b2821c57591fd70b528325562486d47b5d08900e2e4|7334498", + "5.1.0|linux_x86_64|52bf6b102cb4f88464e197caac06d69793fa2b05f5ad50a7e7bf6fbd656648a3|7226100", + "5.1.0|linux_arm64 |917d599dbb040e63ae7a7e1adb710d2057811902fdc9e35cce925ebfd966eeb8|7171938" + ], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--bandit-args=\"[, , ...]\""], - "env_var": "PANTS_BANDIT_ARGS", + "display_args": [ + "--buildifier-known-versions=\"['', '', ...]\"" + ], + "env_var": "PANTS_BUILDIFIER_KNOWN_VERSIONS", "fromfile": false, - "help": "Arguments to pass directly to Bandit, e.g. `--bandit-args='--skip B101,B308 --confidence'`.", + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--bandit-args"], + "scoped_cmd_line_args": ["--buildifier-known-versions"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "unscoped_cmd_line_args": ["--known-versions"], "value_history": { "ranked_values": [ { @@ -75173,45 +86725,45 @@ { "details": "", "rank": "HARDCODED", - "value": [] + "value": [ + "5.1.0|macos_x86_64|c9378d9f4293fc38ec54a08fbc74e7a9d28914dae6891334401e59f38f6e65dc|7125968", + "5.1.0|macos_arm64 |745feb5ea96cb6ff39a76b2821c57591fd70b528325562486d47b5d08900e2e4|7334498", + "5.1.0|linux_x86_64|52bf6b102cb4f88464e197caac06d69793fa2b05f5ad50a7e7bf6fbd656648a3|7226100", + "5.1.0|linux_arm64 |917d599dbb040e63ae7a7e1adb710d2057811902fdc9e35cce925ebfd966eeb8|7171938" + ] } ] } - } - ], - "deprecated": [], - "deprecated_scope": null, - "description": "A tool for finding security issues in Python code (https://bandit.readthedocs.io).", - "is_goal": false, - "provider": "pants.backend.python.lint.bandit", - "scope": "bandit" - }, - "black": { - "advanced": [ + }, { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--black-install-from-resolve=", - "config_key": "install_from_resolve", - "default": null, + "comma_separated_display_args": "--buildifier-url-template=", + "config_key": "url_template", + "default": "https://github.com/bazelbuild/buildtools/releases/download/{version}/buildifier-{platform}", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--black-install-from-resolve="], - "env_var": "PANTS_BLACK_INSTALL_FROM_RESOLVE", + "display_args": ["--buildifier-url-template="], + "env_var": "PANTS_BUILDIFIER_URL_TEMPLATE", "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `black` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--black-install-from-resolve"], + "scoped_cmd_line_args": ["--buildifier-url-template"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--install-from-resolve"], + "unscoped_cmd_line_args": ["--url-template"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "https://github.com/bazelbuild/buildtools/releases/download/{version}/buildifier-{platform}" } ] } @@ -75219,89 +86771,103 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--black-requirements=\"['', '', ...]\"", - "config_key": "requirements", - "default": [], + "comma_separated_display_args": "--buildifier-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "url_platform_mapping", + "default": { + "linux_arm64": "linux-arm64", + "linux_x86_64": "linux-amd64", + "macos_arm64": "darwin-arm64", + "macos_x86_64": "darwin-amd64" + }, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--black-requirements=\"['', '', ...]\""], - "env_var": "PANTS_BLACK_REQUIREMENTS", + "display_args": [ + "--buildifier-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_BUILDIFIER_URL_PLATFORM_MAPPING", "fromfile": false, - "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--black-requirements"], + "scoped_cmd_line_args": ["--buildifier-url-platform-mapping"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--requirements"], + "typ": "dict", + "unscoped_cmd_line_args": ["--url-platform-mapping"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": [] + "value": {} }, { "details": "", "rank": "HARDCODED", - "value": [] + "value": { + "linux_arm64": "linux-arm64", + "linux_x86_64": "linux-amd64", + "macos_arm64": "darwin-arm64", + "macos_x86_64": "darwin-amd64" + } } ] } }, { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--black-interpreter-constraints=\"['', '', ...]\"", - "config_key": "interpreter_constraints", - "default": ["CPython>=3.7,<4"], + "choices": ["error", "warning"], + "comma_separated_choices": "error, warning", + "comma_separated_display_args": "--buildifier-use-unsupported-version=", + "config_key": "use_unsupported_version", + "default": "error", "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--black-interpreter-constraints=\"['', '', ...]\"" + "--buildifier-use-unsupported-version=" ], - "env_var": "PANTS_BLACK_INTERPRETER_CONSTRAINTS", + "env_var": "PANTS_BUILDIFIER_USE_UNSUPPORTED_VERSION", "fromfile": false, - "help": "Python interpreter constraints for this tool.", + "help": "\nWhat action to take in case the requested version of Buildifier is not supported.\n\nSupported Buildifier versions: unspecified\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--black-interpreter-constraints"], + "scoped_cmd_line_args": ["--buildifier-use-unsupported-version"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--interpreter-constraints"], + "typ": "UnsupportedVersionUsage", + "unscoped_cmd_line_args": ["--use-unsupported-version"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": ["CPython>=3.7,<4"] + "value": "error" } ] } - }, + } + ], + "basic": [ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--black-console-script=", - "config_key": "console_script", - "default": "black", + "comma_separated_display_args": "--[no-]buildifier-skip", + "config_key": "skip", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--black-console-script="], - "env_var": "PANTS_BLACK_CONSOLE_SCRIPT", + "display_args": ["--[no-]buildifier-skip"], + "env_var": "PANTS_BUILDIFIER_SKIP", "fromfile": false, - "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", + "help": "If true, don't use Buildifier when running `pants fmt`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--black-console-script"], + "scoped_cmd_line_args": ["--buildifier-skip", "--no-buildifier-skip"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--console-script"], + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -75312,7 +86878,7 @@ { "details": null, "rank": "HARDCODED", - "value": "black" + "value": false } ] } @@ -75320,55 +86886,80 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--black-entry-point=", - "config_key": "entry_point", - "default": null, + "comma_separated_display_args": "--buildifier-args=\"[, , ...]\"", + "config_key": "args", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--black-entry-point="], - "env_var": "PANTS_BLACK_ENTRY_POINT", + "display_args": [ + "--buildifier-args=\"[, , ...]\"" + ], + "env_var": "PANTS_BUILDIFIER_ARGS", "fromfile": false, - "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", + "help": "Arguments to pass directly to Buildifier, e.g. `--buildifier-args='-lint=fix'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--black-entry-point"], + "scoped_cmd_line_args": ["--buildifier-args"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--entry-point"], + "typ": "list", + "unscoped_cmd_line_args": ["--args"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] } ] } - }, + } + ], + "deprecated": [], + "deprecated_scope": null, + "description": "Buildifier is a tool for formatting BUILD files with a standard convention.\n\nPants supports running Buildifier on your Pants BUILD files for several reasons:\n - You might like the style that buildifier uses.\n - You might be incrementally adopting Pants from Bazel, and are already using buildifier.\n\nPlease note that there are differences from Bazel's BUILD files (which are Starlark) and Pants' BUILD files (which are Python), so buildifier may issue a syntax error. In practice, these errors should be rare. See https://bazel.build/rules/language#differences_with_python.", + "is_goal": false, + "provider": "pants.backend.build_files.fmt.buildifier", + "scope": "buildifier" + }, + "cc": { + "advanced": [], + "basic": [ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--black-config=", - "config_key": "config", - "default": null, + "comma_separated_display_args": "--cc-include-directories=\"['', '', ...]\"", + "config_key": "include_directories", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--black-config="], - "env_var": "PANTS_BLACK_CONFIG", + "display_args": [ + "--cc-include-directories=\"['', '', ...]\"" + ], + "env_var": "PANTS_CC_INCLUDE_DIRECTORIES", "fromfile": false, - "help": "Path to a TOML config file understood by Black (https://github.com/psf/black#configuration-format).\n\nSetting this option will disable `[black].config_discovery`. Use this option if the config is located in a non-standard location.", + "help": "A list of include directories passed to the compiler. Will be prefixed by -I at the command line. These flags are merged with the target-level includes, with the target-level includes taking precedence.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--black-config"], + "scoped_cmd_line_args": ["--cc-include-directories"], "target_field_name": null, - "typ": "file_option", - "unscoped_cmd_line_args": ["--config"], + "typ": "list", + "unscoped_cmd_line_args": ["--include-directories"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] } ] } @@ -75376,73 +86967,65 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]black-config-discovery", - "config_key": "config_discovery", - "default": true, + "comma_separated_display_args": "--cc-c-compiler-flags=\"['', '', ...]\"", + "config_key": "c_compiler_flags", + "default": ["-std=c11"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]black-config-discovery"], - "env_var": "PANTS_BLACK_CONFIG_DISCOVERY", + "display_args": ["--cc-c-compiler-flags=\"['', '', ...]\""], + "env_var": "PANTS_CC_C_COMPILER_FLAGS", "fromfile": false, - "help": "If true, Pants will include any relevant pyproject.toml config files during runs.\n\nUse `[black].config` instead if your config is in a non-standard location.", + "help": "Flags passed to the C compiler. These flags are merged with the target-level defines, with the target-level flags taking precedence.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--black-config-discovery", - "--no-black-config-discovery" - ], + "scoped_cmd_line_args": ["--cc-c-compiler-flags"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--config-discovery", - "--no-config-discovery" - ], + "typ": "list", + "unscoped_cmd_line_args": ["--c-compiler-flags"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": true + "value": ["-std=c11"] } ] } - } - ], - "basic": [ + }, { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]black-skip", - "config_key": "skip", - "default": false, + "comma_separated_display_args": "--cc-c-definitions=\"['', '', ...]\"", + "config_key": "c_definitions", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]black-skip"], - "env_var": "PANTS_BLACK_SKIP", + "display_args": ["--cc-c-definitions=\"['', '', ...]\""], + "env_var": "PANTS_CC_C_DEFINITIONS", "fromfile": false, - "help": "If true, don't use Black when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "A list of strings to define in the C preprocessor. Will be prefixed by -D at the command line. These defines are merged with the target-level defines, with the target-level definitions taking precedence.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--black-skip", "--no-black-skip"], + "scoped_cmd_line_args": ["--cc-c-definitions"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "typ": "list", + "unscoped_cmd_line_args": ["--c-definitions"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": [] } ] } @@ -75450,21 +87033,23 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--black-args=\"[, , ...]\"", - "config_key": "args", - "default": [], + "comma_separated_display_args": "--cc-cxx-compiler-flags=\"['', '', ...]\"", + "config_key": "cxx_compiler_flags", + "default": ["-std=c++11"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--black-args=\"[, , ...]\""], - "env_var": "PANTS_BLACK_ARGS", + "display_args": [ + "--cc-cxx-compiler-flags=\"['', '', ...]\"" + ], + "env_var": "PANTS_CC_CXX_COMPILER_FLAGS", "fromfile": false, - "help": "Arguments to pass directly to Black, e.g. `--black-args='--target-version=py37 --quiet'`.", + "help": "Flags passed to the C++ compiler. These flags are merged with the target-level defines, with the target-level flags taking precedence.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--black-args"], + "scoped_cmd_line_args": ["--cc-cxx-compiler-flags"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "unscoped_cmd_line_args": ["--cxx-compiler-flags"], "value_history": { "ranked_values": [ { @@ -75475,50 +87060,40 @@ { "details": "", "rank": "HARDCODED", - "value": [] + "value": ["-std=c++11"] } ] } - } - ], - "deprecated": [], - "deprecated_scope": null, - "description": "The Black Python code formatter (https://black.readthedocs.io/).", - "is_goal": false, - "provider": "pants.core", - "scope": "black" - }, - "buf": { - "advanced": [ + }, { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--buf-version=", - "config_key": "version", - "default": "v1.3.0", + "comma_separated_display_args": "--cc-cxx-definitions=\"['', '', ...]\"", + "config_key": "cxx_definitions", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--buf-version="], - "env_var": "PANTS_BUF_VERSION", + "display_args": ["--cc-cxx-definitions=\"['', '', ...]\""], + "env_var": "PANTS_CC_CXX_DEFINITIONS", "fromfile": false, - "help": "Use this version of Buf.", + "help": "A list of strings to define in the C++ preprocessor. Will be prefixed by -D at the command line. These defines are merged with the target-level defines, with the target-level definitions taking precedence.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--buf-version"], + "scoped_cmd_line_args": ["--cc-cxx-definitions"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--version"], + "typ": "list", + "unscoped_cmd_line_args": ["--cxx-definitions"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "v1.3.0" + "value": [] } ] } @@ -75526,26 +87101,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--buf-known-versions=\"['', '', ...]\"", - "config_key": "known_versions", - "default": [ - "v1.3.0|linux_arm64 |fbfd53c501451b36900247734bfa4cbe86ae05d0f51bc298de8711d5ee374ee5|13940828", - "v1.3.0|linux_x86_64|e29c4283b1cd68ada41fa493171c41d7605750d258fcd6ecdf692a63fae95213|15267162", - "v1.3.0|macos_arm64 |147985d7f2816a545792e38b26178ff4027bf16cd3712f6e387a4e3692a16deb|15391890", - "v1.3.0|macos_x86_64|3b6bd2e5a5dd758178aee01fb067261baf5d31bfebe93336915bfdf7b21928c4|15955291" - ], + "comma_separated_display_args": "--cc-c-executable=\"['', '', ...]\"", + "config_key": "c_executable", + "default": ["clang", "gcc"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--buf-known-versions=\"['', '', ...]\""], - "env_var": "PANTS_BUF_KNOWN_VERSIONS", + "display_args": ["--cc-c-executable=\"['', '', ...]\""], + "env_var": "PANTS_CC_C_EXECUTABLE", "fromfile": false, - "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", + "help": "A list of binary names for the C compiler (in the `search_paths`). The list is searched in order until a compiler is found.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--buf-known-versions"], + "scoped_cmd_line_args": ["--cc-c-executable"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--known-versions"], + "unscoped_cmd_line_args": ["--c-executable"], "value_history": { "ranked_values": [ { @@ -75556,12 +87126,7 @@ { "details": "", "rank": "HARDCODED", - "value": [ - "v1.3.0|linux_arm64 |fbfd53c501451b36900247734bfa4cbe86ae05d0f51bc298de8711d5ee374ee5|13940828", - "v1.3.0|linux_x86_64|e29c4283b1cd68ada41fa493171c41d7605750d258fcd6ecdf692a63fae95213|15267162", - "v1.3.0|macos_arm64 |147985d7f2816a545792e38b26178ff4027bf16cd3712f6e387a4e3692a16deb|15391890", - "v1.3.0|macos_x86_64|3b6bd2e5a5dd758178aee01fb067261baf5d31bfebe93336915bfdf7b21928c4|15955291" - ] + "value": ["clang", "gcc"] } ] } @@ -75569,32 +87134,32 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--buf-url-template=", - "config_key": "url_template", - "default": "https://github.com/bufbuild/buf/releases/download/{version}/buf-{platform}.tar.gz", + "comma_separated_display_args": "--cc-cxx-executable=\"['', '', ...]\"", + "config_key": "cxx_executable", + "default": ["clang++", "g++"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--buf-url-template="], - "env_var": "PANTS_BUF_URL_TEMPLATE", + "display_args": ["--cc-cxx-executable=\"['', '', ...]\""], + "env_var": "PANTS_CC_CXX_EXECUTABLE", "fromfile": false, - "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", + "help": "A list of binary names for the C compiler (in the `search_paths`). The list is searched in order until a compiler is found.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--buf-url-template"], + "scoped_cmd_line_args": ["--cc-cxx-executable"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--url-template"], + "typ": "list", + "unscoped_cmd_line_args": ["--cxx-executable"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "https://github.com/bufbuild/buf/releases/download/{version}/buf-{platform}.tar.gz" + "value": ["clang++", "g++"] } ] } @@ -75602,68 +87167,64 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--buf-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "url_platform_mapping", - "default": { - "linux_arm64": "Linux-aarch64", - "linux_x86_64": "Linux-x86_64", - "macos_arm64": "Darwin-arm64", - "macos_x86_64": "Darwin-x86_64" - }, + "comma_separated_display_args": "--cc-search-paths=\"['', '', ...]\"", + "config_key": "search_paths", + "default": [""], "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--buf-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_BUF_URL_PLATFORM_MAPPING", + "display_args": ["--cc-search-paths=\"['', '', ...]\""], + "env_var": "PANTS_CC_SEARCH_PATHS", "fromfile": false, - "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", + "help": "A list of paths to search for CC toolchain binaries.\n\nSpecify absolute paths to directories, e.g. `/usr/bin`. Earlier entries will be searched first.\n\nThe following special strings are supported:\n\n * ``, the contents of the PATH environment variable", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--buf-url-platform-mapping"], + "scoped_cmd_line_args": ["--cc-search-paths"], "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--url-platform-mapping"], + "typ": "list", + "unscoped_cmd_line_args": ["--search-paths"], "value_history": { "ranked_values": [ { "details": "", "rank": "NONE", - "value": {} + "value": [] }, { "details": "", "rank": "HARDCODED", - "value": { - "linux_arm64": "Linux-aarch64", - "linux_x86_64": "Linux-x86_64", - "macos_arm64": "Darwin-arm64", - "macos_x86_64": "Darwin-x86_64" - } + "value": [""] } ] } - }, + } + ], + "deprecated": [], + "deprecated_scope": null, + "description": "Options for a system-discovered `cc` toolchain.", + "is_goal": false, + "provider": "pants.backend.experimental.cc", + "scope": "cc" + }, + "cc-external": { + "advanced": [ { - "choices": ["error", "warning"], - "comma_separated_choices": "error, warning", - "comma_separated_display_args": "--buf-use-unsupported-version=", - "config_key": "use_unsupported_version", - "default": "error", + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--cc-external-version=", + "config_key": "version", + "default": "", "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--buf-use-unsupported-version=" - ], - "env_var": "PANTS_BUF_USE_UNSUPPORTED_VERSION", + "display_args": ["--cc-external-version="], + "env_var": "PANTS_CC_EXTERNAL_VERSION", "fromfile": false, - "help": "\nWhat action to take in case the requested version of Buf is not supported.\n\nSupported Buf versions: unspecified\n", + "help": "Use this version of cc-external.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--buf-use-unsupported-version"], + "scoped_cmd_line_args": ["--cc-external-version"], "target_field_name": null, - "typ": "UnsupportedVersionUsage", - "unscoped_cmd_line_args": ["--use-unsupported-version"], + "typ": "str", + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { @@ -75674,7 +87235,7 @@ { "details": null, "rank": "HARDCODED", - "value": "error" + "value": "" } ] } @@ -75682,27 +87243,34 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--buf-config=", - "config_key": "config", - "default": null, + "comma_separated_display_args": "--cc-external-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--buf-config="], - "env_var": "PANTS_BUF_CONFIG", + "display_args": [ + "--cc-external-known-versions=\"['', '', ...]\"" + ], + "env_var": "PANTS_CC_EXTERNAL_KNOWN_VERSIONS", "fromfile": false, - "help": "Path to a config file understood by Buf (https://docs.buf.build/configuration/overview).\n\nSetting this option will disable `[buf].config_discovery`. Use this option if the config is located in a non-standard location.", + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--buf-config"], + "scoped_cmd_line_args": ["--cc-external-known-versions"], "target_field_name": null, - "typ": "file_option", - "unscoped_cmd_line_args": ["--config"], + "typ": "list", + "unscoped_cmd_line_args": ["--known-versions"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] } ] } @@ -75710,27 +87278,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]buf-config-discovery", - "config_key": "config_discovery", - "default": true, + "comma_separated_display_args": "--cc-external-url-template=", + "config_key": "url_template", + "default": "", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]buf-config-discovery"], - "env_var": "PANTS_BUF_CONFIG_DISCOVERY", + "display_args": ["--cc-external-url-template="], + "env_var": "PANTS_CC_EXTERNAL_URL_TEMPLATE", "fromfile": false, - "help": "If true, Pants will include any relevant root config files during runs (`buf.yaml`, `buf.lock`, `buf.gen.yaml` and `buf.work.yaml`).\n\nUse `[buf].config` instead if your config is in a non-standard location.", + "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--buf-config-discovery", - "--no-buf-config-discovery" - ], + "scoped_cmd_line_args": ["--cc-external-url-template"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": [ - "--config-discovery", - "--no-config-discovery" - ], + "typ": "str", + "unscoped_cmd_line_args": ["--url-template"], "value_history": { "ranked_values": [ { @@ -75741,64 +87303,66 @@ { "details": null, "rank": "HARDCODED", - "value": true + "value": "" } ] } - } - ], - "basic": [ + }, { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]buf-format-skip", - "config_key": "format_skip", - "default": false, + "comma_separated_display_args": "--cc-external-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "url_platform_mapping", + "default": {}, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]buf-format-skip"], - "env_var": "PANTS_BUF_FORMAT_SKIP", + "display_args": [ + "--cc-external-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_CC_EXTERNAL_URL_PLATFORM_MAPPING", "fromfile": false, - "help": "If true, don't use Buf when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--buf-format-skip", "--no-buf-format-skip"], + "scoped_cmd_line_args": ["--cc-external-url-platform-mapping"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--format-skip", "--no-format-skip"], + "typ": "dict", + "unscoped_cmd_line_args": ["--url-platform-mapping"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": {} }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": {} } ] } }, { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]buf-lint-skip", - "config_key": "lint_skip", - "default": false, + "choices": ["error", "warning"], + "comma_separated_choices": "error, warning", + "comma_separated_display_args": "--cc-external-use-unsupported-version=", + "config_key": "use_unsupported_version", + "default": "error", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]buf-lint-skip"], - "env_var": "PANTS_BUF_LINT_SKIP", + "display_args": [ + "--cc-external-use-unsupported-version=" + ], + "env_var": "PANTS_CC_EXTERNAL_USE_UNSUPPORTED_VERSION", "fromfile": false, - "help": "If true, don't use Buf when running `scie-pants-linux-x86_64 lint`.", + "help": "\nWhat action to take in case the requested version of cc-external is not supported.\n\nSupported cc-external versions: unspecified\n", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--buf-lint-skip", "--no-buf-lint-skip"], + "scoped_cmd_line_args": ["--cc-external-use-unsupported-version"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--lint-skip", "--no-lint-skip"], + "typ": "UnsupportedVersionUsage", + "unscoped_cmd_line_args": ["--use-unsupported-version"], "value_history": { "ranked_values": [ { @@ -75809,31 +87373,33 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": "error" } ] } - }, + } + ], + "basic": [ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--buf-format-args=\"[, , ...]\"", - "config_key": "format_args", + "comma_separated_display_args": "--cc-external-include-directories=\"['', '', ...]\"", + "config_key": "include_directories", "default": [], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--buf-format-args=\"[, , ...]\"" + "--cc-external-include-directories=\"['', '', ...]\"" ], - "env_var": "PANTS_BUF_FORMAT_ARGS", + "env_var": "PANTS_CC_EXTERNAL_INCLUDE_DIRECTORIES", "fromfile": false, - "help": "Arguments to pass directly to Buf, e.g. `--buf-args='--error-format json'`.", + "help": "A list of include directories passed to the compiler. Will be prefixed by -I at the command line. These flags are merged with the target-level includes, with the target-level includes taking precedence.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--buf-format-args"], + "scoped_cmd_line_args": ["--cc-external-include-directories"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--format-args"], + "unscoped_cmd_line_args": ["--include-directories"], "value_history": { "ranked_values": [ { @@ -75852,23 +87418,23 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--buf-lint-args=\"[, , ...]\"", - "config_key": "lint_args", - "default": [], + "comma_separated_display_args": "--cc-external-c-compiler-flags=\"['', '', ...]\"", + "config_key": "c_compiler_flags", + "default": ["-std=c11"], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--buf-lint-args=\"[, , ...]\"" + "--cc-external-c-compiler-flags=\"['', '', ...]\"" ], - "env_var": "PANTS_BUF_LINT_ARGS", + "env_var": "PANTS_CC_EXTERNAL_C_COMPILER_FLAGS", "fromfile": false, - "help": "Arguments to pass directly to Buf, e.g. `--buf-args='--error-format json'`.", + "help": "Flags passed to the C compiler. These flags are merged with the target-level defines, with the target-level flags taking precedence.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--buf-lint-args"], + "scoped_cmd_line_args": ["--cc-external-c-compiler-flags"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--lint-args"], + "unscoped_cmd_line_args": ["--c-compiler-flags"], "value_history": { "ranked_values": [ { @@ -75879,97 +87445,77 @@ { "details": "", "rank": "HARDCODED", - "value": [] + "value": ["-std=c11"] } ] } - } - ], - "deprecated": [], - "deprecated_scope": null, - "description": "A linter and formatter for Protocol Buffers (https://github.com/bufbuild/buf).", - "is_goal": false, - "provider": "pants.backend.codegen.protobuf.lint.buf", - "scope": "buf" - }, - "build-deprecations-fixer": { - "advanced": [], - "basic": [ + }, { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]build-deprecations-fixer-skip", - "config_key": "skip", - "default": false, + "comma_separated_display_args": "--cc-external-c-definitions=\"['', '', ...]\"", + "config_key": "c_definitions", + "default": [], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]build-deprecations-fixer-skip"], - "env_var": "PANTS_BUILD_DEPRECATIONS_FIXER_SKIP", + "display_args": [ + "--cc-external-c-definitions=\"['', '', ...]\"" + ], + "env_var": "PANTS_CC_EXTERNAL_C_DEFINITIONS", "fromfile": false, - "help": "If true, don't use BUILD Deprecations Fixer when running `scie-pants-linux-x86_64 fix`.", + "help": "A list of strings to define in the C preprocessor. Will be prefixed by -D at the command line. These defines are merged with the target-level defines, with the target-level definitions taking precedence.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": [ - "--build-deprecations-fixer-skip", - "--no-build-deprecations-fixer-skip" - ], + "scoped_cmd_line_args": ["--cc-external-c-definitions"], "target_field_name": null, - "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "typ": "list", + "unscoped_cmd_line_args": ["--c-definitions"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": false + "value": [] } ] } - } - ], - "deprecated": [], - "deprecated_scope": null, - "description": "A tool/plugin for fixing BUILD file deprecations (where possible).\n\nThis includes deprecations for:\n\n - Renamed targets\n - Renamed fields", - "is_goal": false, - "provider": "pants.backend.build_files.fix.deprecations", - "scope": "build-deprecations-fixer" - }, - "buildifier": { - "advanced": [ + }, { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--buildifier-version=", - "config_key": "version", - "default": "5.1.0", + "comma_separated_display_args": "--cc-external-cxx-compiler-flags=\"['', '', ...]\"", + "config_key": "cxx_compiler_flags", + "default": ["-std=c++11"], "deprecated_message": null, "deprecation_active": false, - "display_args": ["--buildifier-version="], - "env_var": "PANTS_BUILDIFIER_VERSION", + "display_args": [ + "--cc-external-cxx-compiler-flags=\"['', '', ...]\"" + ], + "env_var": "PANTS_CC_EXTERNAL_CXX_COMPILER_FLAGS", "fromfile": false, - "help": "Use this version of Buildifier.", + "help": "Flags passed to the C++ compiler. These flags are merged with the target-level defines, with the target-level flags taking precedence.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--buildifier-version"], + "scoped_cmd_line_args": ["--cc-external-cxx-compiler-flags"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--version"], + "typ": "list", + "unscoped_cmd_line_args": ["--cxx-compiler-flags"], "value_history": { "ranked_values": [ { - "details": null, + "details": "", "rank": "NONE", - "value": null + "value": [] }, { - "details": null, + "details": "", "rank": "HARDCODED", - "value": "5.1.0" + "value": ["-std=c++11"] } ] } @@ -75977,28 +87523,23 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--buildifier-known-versions=\"['', '', ...]\"", - "config_key": "known_versions", - "default": [ - "5.1.0|macos_x86_64|c9378d9f4293fc38ec54a08fbc74e7a9d28914dae6891334401e59f38f6e65dc|7125968", - "5.1.0|macos_arm64 |745feb5ea96cb6ff39a76b2821c57591fd70b528325562486d47b5d08900e2e4|7334498", - "5.1.0|linux_x86_64|52bf6b102cb4f88464e197caac06d69793fa2b05f5ad50a7e7bf6fbd656648a3|7226100", - "5.1.0|linux_arm64 |917d599dbb040e63ae7a7e1adb710d2057811902fdc9e35cce925ebfd966eeb8|7171938" - ], + "comma_separated_display_args": "--cc-external-cxx-definitions=\"['', '', ...]\"", + "config_key": "cxx_definitions", + "default": [], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--buildifier-known-versions=\"['', '', ...]\"" + "--cc-external-cxx-definitions=\"['', '', ...]\"" ], - "env_var": "PANTS_BUILDIFIER_KNOWN_VERSIONS", + "env_var": "PANTS_CC_EXTERNAL_CXX_DEFINITIONS", "fromfile": false, - "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", + "help": "A list of strings to define in the C++ preprocessor. Will be prefixed by -D at the command line. These defines are merged with the target-level defines, with the target-level definitions taking precedence.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--buildifier-known-versions"], + "scoped_cmd_line_args": ["--cc-external-cxx-definitions"], "target_field_name": null, "typ": "list", - "unscoped_cmd_line_args": ["--known-versions"], + "unscoped_cmd_line_args": ["--cxx-definitions"], "value_history": { "ranked_values": [ { @@ -76009,12 +87550,7 @@ { "details": "", "rank": "HARDCODED", - "value": [ - "5.1.0|macos_x86_64|c9378d9f4293fc38ec54a08fbc74e7a9d28914dae6891334401e59f38f6e65dc|7125968", - "5.1.0|macos_arm64 |745feb5ea96cb6ff39a76b2821c57591fd70b528325562486d47b5d08900e2e4|7334498", - "5.1.0|linux_x86_64|52bf6b102cb4f88464e197caac06d69793fa2b05f5ad50a7e7bf6fbd656648a3|7226100", - "5.1.0|linux_arm64 |917d599dbb040e63ae7a7e1adb710d2057811902fdc9e35cce925ebfd966eeb8|7171938" - ] + "value": [] } ] } @@ -76022,21 +87558,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--buildifier-url-template=", - "config_key": "url_template", - "default": "https://github.com/bazelbuild/buildtools/releases/download/{version}/buildifier-{platform}", + "comma_separated_display_args": "--cc-external-c-executable=", + "config_key": "c_executable", + "default": "", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--buildifier-url-template="], - "env_var": "PANTS_BUILDIFIER_URL_TEMPLATE", + "display_args": ["--cc-external-c-executable="], + "env_var": "PANTS_CC_EXTERNAL_C_EXECUTABLE", "fromfile": false, - "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", + "help": "The relative path to the C compiler binary from the downloaded source. E.g. For the ARM gcc-rm toolchain, this value would be: `gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi-gcc`", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--buildifier-url-template"], + "scoped_cmd_line_args": ["--cc-external-c-executable"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--url-template"], + "unscoped_cmd_line_args": ["--c-executable"], "value_history": { "ranked_values": [ { @@ -76047,7 +87583,7 @@ { "details": null, "rank": "HARDCODED", - "value": "https://github.com/bazelbuild/buildtools/releases/download/{version}/buildifier-{platform}" + "value": "" } ] } @@ -76055,68 +87591,21 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--buildifier-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", - "config_key": "url_platform_mapping", - "default": { - "linux_arm64": "linux-arm64", - "linux_x86_64": "linux-amd64", - "macos_arm64": "darwin-arm64", - "macos_x86_64": "darwin-amd64" - }, - "deprecated_message": null, - "deprecation_active": false, - "display_args": [ - "--buildifier-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" - ], - "env_var": "PANTS_BUILDIFIER_URL_PLATFORM_MAPPING", - "fromfile": false, - "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--buildifier-url-platform-mapping"], - "target_field_name": null, - "typ": "dict", - "unscoped_cmd_line_args": ["--url-platform-mapping"], - "value_history": { - "ranked_values": [ - { - "details": "", - "rank": "NONE", - "value": {} - }, - { - "details": "", - "rank": "HARDCODED", - "value": { - "linux_arm64": "linux-arm64", - "linux_x86_64": "linux-amd64", - "macos_arm64": "darwin-arm64", - "macos_x86_64": "darwin-amd64" - } - } - ] - } - }, - { - "choices": ["error", "warning"], - "comma_separated_choices": "error, warning", - "comma_separated_display_args": "--buildifier-use-unsupported-version=", - "config_key": "use_unsupported_version", - "default": "error", + "comma_separated_display_args": "--cc-external-cxx-executable=", + "config_key": "cxx_executable", + "default": "", "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--buildifier-use-unsupported-version=" - ], - "env_var": "PANTS_BUILDIFIER_USE_UNSUPPORTED_VERSION", + "display_args": ["--cc-external-cxx-executable="], + "env_var": "PANTS_CC_EXTERNAL_CXX_EXECUTABLE", "fromfile": false, - "help": "\nWhat action to take in case the requested version of Buildifier is not supported.\n\nSupported Buildifier versions: unspecified\n", + "help": "The relative path to the C++ compiler binary from the downloaded source. E.g. For the ARM gcc-rm toolchain, this value would be: `gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi-g++`", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--buildifier-use-unsupported-version"], + "scoped_cmd_line_args": ["--cc-external-cxx-executable"], "target_field_name": null, - "typ": "UnsupportedVersionUsage", - "unscoped_cmd_line_args": ["--use-unsupported-version"], + "typ": "str", + "unscoped_cmd_line_args": ["--cxx-executable"], "value_history": { "ranked_values": [ { @@ -76127,31 +87616,43 @@ { "details": null, "rank": "HARDCODED", - "value": "error" + "value": "" } ] } } ], + "deprecated": [], + "deprecated_scope": null, + "description": "Options for downloaded `cc` toolchain.", + "is_goal": false, + "provider": "pants.backend.experimental.cc", + "scope": "cc-external" + }, + "cc-infer": { + "advanced": [], "basic": [ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--[no-]buildifier-skip", - "config_key": "skip", - "default": false, + "comma_separated_display_args": "--[no-]cc-infer-includes", + "config_key": "includes", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--[no-]buildifier-skip"], - "env_var": "PANTS_BUILDIFIER_SKIP", + "display_args": ["--[no-]cc-infer-includes"], + "env_var": "PANTS_CC_INFER_INCLUDES", "fromfile": false, - "help": "If true, don't use Buildifier when running `scie-pants-linux-x86_64 fmt`.", + "help": "Infer a target's dependencies by parsing #include statements from sources.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--buildifier-skip", "--no-buildifier-skip"], + "scoped_cmd_line_args": [ + "--cc-infer-includes", + "--no-cc-infer-includes" + ], "target_field_name": null, "typ": "bool", - "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "unscoped_cmd_line_args": ["--includes", "--no-includes"], "value_history": { "ranked_values": [ { @@ -76162,7 +87663,7 @@ { "details": null, "rank": "HARDCODED", - "value": false + "value": true } ] } @@ -76170,34 +87671,38 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--buildifier-args=\"[, , ...]\"", - "config_key": "args", - "default": [], + "comma_separated_display_args": "--[no-]cc-infer-include-from-source-roots", + "config_key": "include_from_source_roots", + "default": true, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--buildifier-args=\"[, , ...]\"" - ], - "env_var": "PANTS_BUILDIFIER_ARGS", + "display_args": ["--[no-]cc-infer-include-from-source-roots"], + "env_var": "PANTS_CC_INFER_INCLUDE_FROM_SOURCE_ROOTS", "fromfile": false, - "help": "Arguments to pass directly to Buildifier, e.g. `--buildifier-args='-lint=fix'`.", + "help": "Infer a target's dependencies by trying to include relative to source roots.\n\nAn example where this may be useful is if you have a a file at `root/include/mylib/foo.h` which may be referenced via `#include \"mylib/foo.h\"`. This option will allow you to correctly infer dependencies if you have a source root at `root/{include}` and searching for `mylib/foo.h` relative to the that source root.\n\nThe inferred files take part in compilation, and the source root is added to the compilation include search path (https://clang.llvm.org/docs/ClangCommandLineReference.html#include-path-management) with command line arguments prefixed by the '-I' flag.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--buildifier-args"], + "scoped_cmd_line_args": [ + "--cc-infer-include-from-source-roots", + "--no-cc-infer-include-from-source-roots" + ], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--args"], + "typ": "bool", + "unscoped_cmd_line_args": [ + "--include-from-source-roots", + "--no-include-from-source-roots" + ], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] + "value": null }, { - "details": "", + "details": null, "rank": "HARDCODED", - "value": [] + "value": true } ] } @@ -76205,10 +87710,10 @@ ], "deprecated": [], "deprecated_scope": null, - "description": "Buildifier is a tool for formatting BUILD files with a standard convention.\n\nPants supports running Buildifier on your Pants BUILD files for several reasons:\n - You might like the style that buildifier uses.\n - You might be incrementally adopting Pants from Bazel, and are already using buildifier.\n\nPlease note that there are differences from Bazel's BUILD files (which are Starlark) and Pants' BUILD files (which are Python), so buildifier may issue a syntax error. In practice, these errors should be rare. See https://bazel.build/rules/language#differences_with_python.", + "description": "Options controlling which dependencies will be inferred for CC targets.", "is_goal": false, - "provider": "pants.backend.build_files.fmt.buildifier", - "scope": "buildifier" + "provider": "pants.backend.experimental.cc", + "scope": "cc-infer" }, "changed": { "advanced": [], @@ -76388,6 +87893,248 @@ "provider": "pants.core", "scope": "check" }, + "clang-format": { + "advanced": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--clang-format-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--clang-format-install-from-resolve="], + "env_var": "PANTS_CLANG_FORMAT_INSTALL_FROM_RESOLVE", + "fromfile": false, + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `clang-format` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--clang-format-install-from-resolve"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--install-from-resolve"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--clang-format-requirements=\"['', '', ...]\"", + "config_key": "requirements", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--clang-format-requirements=\"['', '', ...]\"" + ], + "env_var": "PANTS_CLANG_FORMAT_REQUIREMENTS", + "fromfile": false, + "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--clang-format-requirements"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--requirements"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--clang-format-interpreter-constraints=\"['', '', ...]\"", + "config_key": "interpreter_constraints", + "default": ["CPython>=3.7,<4"], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--clang-format-interpreter-constraints=\"['', '', ...]\"" + ], + "env_var": "PANTS_CLANG_FORMAT_INTERPRETER_CONSTRAINTS", + "fromfile": false, + "help": "Python interpreter constraints for this tool.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--clang-format-interpreter-constraints"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--interpreter-constraints"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": ["CPython>=3.7,<4"] + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--clang-format-console-script=", + "config_key": "console_script", + "default": "clang-format", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--clang-format-console-script="], + "env_var": "PANTS_CLANG_FORMAT_CONSOLE_SCRIPT", + "fromfile": false, + "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--clang-format-console-script"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--console-script"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "clang-format" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--clang-format-entry-point=", + "config_key": "entry_point", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--clang-format-entry-point="], + "env_var": "PANTS_CLANG_FORMAT_ENTRY_POINT", + "fromfile": false, + "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--clang-format-entry-point"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--entry-point"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + } + ], + "basic": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]clang-format-skip", + "config_key": "skip", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]clang-format-skip"], + "env_var": "PANTS_CLANG_FORMAT_SKIP", + "fromfile": false, + "help": "If true, don't use ClangFormat when running `pants fmt` and `pants lint`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--clang-format-skip", + "--no-clang-format-skip" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--clang-format-args=\"[, , ...]\"", + "config_key": "args", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--clang-format-args=\"[, , ...]\"" + ], + "env_var": "PANTS_CLANG_FORMAT_ARGS", + "fromfile": false, + "help": "Arguments to pass directly to ClangFormat, e.g. `--clang-format-args='--version'`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--clang-format-args"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--args"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + } + ], + "deprecated": [], + "deprecated_scope": null, + "description": "The clang-format utility for formatting C/C++ (and others) code (https://clang.llvm.org/docs/ClangFormat.html). The clang-format binaries are retrieved from PyPi (https://pypi.org/project/clang-format/).", + "is_goal": false, + "provider": "pants.backend.experimental.cc.lint.clangformat", + "scope": "clang-format" + }, "cli": { "advanced": [], "basic": [ @@ -76402,7 +88149,7 @@ "display_args": ["--cli-alias=\"{'key1': val1, 'key2': val2, ...}\""], "env_var": "PANTS_CLI_ALIAS", "fromfile": false, - "help": "Register command line aliases.\n\nExample:\n\n [cli.alias]\n green = \"fmt lint check\"\n all-changed = \"--changed-since=HEAD --changed-dependents=transitive\"\n\nThis would allow you to run `scie-pants-linux-x86_64 green all-changed`, which is shorthand for `scie-pants-linux-x86_64 fmt lint check --changed-since=HEAD --changed-dependents=transitive`.\n\nNotice: this option must be placed in a config file (e.g. `pants.toml` or `pantsrc`) to have any effect.", + "help": "Register command line aliases.\n\nExample:\n\n [cli.alias]\n green = \"fmt lint check\"\n all-changed = \"--changed-since=HEAD --changed-dependents=transitive\"\n\nThis would allow you to run `pants green all-changed`, which is shorthand for `pants fmt lint check --changed-since=HEAD --changed-dependents=transitive`.\n\nNotice: this option must be placed in a config file (e.g. `pants.toml` or `pantsrc`) to have any effect.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--cli-alias"], @@ -77103,6 +88850,273 @@ "provider": "pants.backend.python", "scope": "coverage-py" }, + "cue": { + "advanced": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--cue-version=", + "config_key": "version", + "default": "v0.4.3", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--cue-version="], + "env_var": "PANTS_CUE_VERSION", + "fromfile": false, + "help": "Use this version of CUE.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--cue-version"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--version"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "v0.4.3" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--cue-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", + "default": [ + "v0.4.3|macos_x86_64|1161254cf38b928b87a7ac1552dc2e12e6c5da298f9ce370d80e5518ddb6513d|6240316", + "v0.4.3|macos_arm64 |3d84b85a7288f94301a4726dcf95b2d92c8ff796c4d45c4733fbdcc04ceaf21d|5996085", + "v0.4.3|linux_x86_64|5e7ecb614b5926acfc36eb1258800391ab7c6e6e026fa7cacbfe92006bac895c|6037013", + "v0.4.3|linux_arm64 |a8c3f4140d18c324cc69f5de4df0566e529e1636cff340095a42475799bf3fed|5548404" + ], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--cue-known-versions=\"['', '', ...]\""], + "env_var": "PANTS_CUE_KNOWN_VERSIONS", + "fromfile": false, + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--cue-known-versions"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--known-versions"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [ + "v0.4.3|macos_x86_64|1161254cf38b928b87a7ac1552dc2e12e6c5da298f9ce370d80e5518ddb6513d|6240316", + "v0.4.3|macos_arm64 |3d84b85a7288f94301a4726dcf95b2d92c8ff796c4d45c4733fbdcc04ceaf21d|5996085", + "v0.4.3|linux_x86_64|5e7ecb614b5926acfc36eb1258800391ab7c6e6e026fa7cacbfe92006bac895c|6037013", + "v0.4.3|linux_arm64 |a8c3f4140d18c324cc69f5de4df0566e529e1636cff340095a42475799bf3fed|5548404" + ] + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--cue-url-template=", + "config_key": "url_template", + "default": "https://github.com/cue-lang/cue/releases/download/{version}/cue_{version}_{platform}.tar.gz", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--cue-url-template="], + "env_var": "PANTS_CUE_URL_TEMPLATE", + "fromfile": false, + "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--cue-url-template"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--url-template"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "https://github.com/cue-lang/cue/releases/download/{version}/cue_{version}_{platform}.tar.gz" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--cue-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "url_platform_mapping", + "default": { + "linux_arm64": "linux_arm64", + "linux_x86_64": "linux_amd64", + "macos_arm64": "darwin_arm64", + "macos_x86_64": "darwin_amd64" + }, + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--cue-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_CUE_URL_PLATFORM_MAPPING", + "fromfile": false, + "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--cue-url-platform-mapping"], + "target_field_name": null, + "typ": "dict", + "unscoped_cmd_line_args": ["--url-platform-mapping"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": {} + }, + { + "details": "", + "rank": "HARDCODED", + "value": { + "linux_arm64": "linux_arm64", + "linux_x86_64": "linux_amd64", + "macos_arm64": "darwin_arm64", + "macos_x86_64": "darwin_amd64" + } + } + ] + } + }, + { + "choices": ["error", "warning"], + "comma_separated_choices": "error, warning", + "comma_separated_display_args": "--cue-use-unsupported-version=", + "config_key": "use_unsupported_version", + "default": "error", + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--cue-use-unsupported-version=" + ], + "env_var": "PANTS_CUE_USE_UNSUPPORTED_VERSION", + "fromfile": false, + "help": "\nWhat action to take in case the requested version of CUE is not supported.\n\nSupported CUE versions: unspecified\n", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--cue-use-unsupported-version"], + "target_field_name": null, + "typ": "UnsupportedVersionUsage", + "unscoped_cmd_line_args": ["--use-unsupported-version"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "error" + } + ] + } + } + ], + "basic": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]cue-skip", + "config_key": "skip", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]cue-skip"], + "env_var": "PANTS_CUE_SKIP", + "fromfile": false, + "help": "If true, don't use CUE when running `pants fmt` and `pants fix` and `pants lint`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--cue-skip", "--no-cue-skip"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--cue-args=\"[, , ...]\"", + "config_key": "args", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--cue-args=\"[, , ...]\""], + "env_var": "PANTS_CUE_ARGS", + "fromfile": false, + "help": "Arguments to pass directly to CUE, e.g. `--cue-args='--all-errors'`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--cue-args"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--args"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + } + ], + "deprecated": [], + "deprecated_scope": null, + "description": "CUE is an open-source data validation language and inference engine with its roots in logic programming. Although the language is not a general-purpose programming language, it has many applications, such as data validation, data templating, configuration, querying, code generation and even scripting. The inference engine can be used to validate data in code or to include it as part of a code generation pipeline.\n\nHomepage: https://cuelang.org/", + "is_goal": false, + "provider": "pants.backend.experimental.cue", + "scope": "cue" + }, "debug-adapter": { "advanced": [], "basic": [ @@ -77992,7 +90006,7 @@ "display_args": ["--[no-]docformatter-skip"], "env_var": "PANTS_DOCFORMATTER_SKIP", "fromfile": false, - "help": "If true, don't use docformatter when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use docformatter when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ @@ -78484,7 +90498,7 @@ ], "env_var": "PANTS_DOCKER_RUN_ARGS", "fromfile": false, - "help": "Additional arguments to use for `docker run` invocations.\n\nExample:\n\n $ scie-pants-linux-x86_64 run --docker-run-args=\"-p 127.0.0.1:80:8080/tcp --name demo\" src/example:image -- [image entrypoint args]\n\nTo provide the top-level options to the `docker` client, use `[docker].env_vars` to configure the [Environment variables](https://docs.docker.com/engine/reference/commandline/cli/#environment-variables) as appropriate.\n\nThe arguments for the image entrypoint may be passed on the command line after a double dash (`--`), or using the `--run-args` option.\n\nDefaults to `--interactive --tty` when stdout is connected to a terminal.", + "help": "Additional arguments to use for `docker run` invocations.\n\nExample:\n\n $ pants run --docker-run-args=\"-p 127.0.0.1:80:8080/tcp --name demo\" src/example:image -- [image entrypoint args]\n\nTo provide the top-level options to the `docker` client, use `[docker].env_vars` to configure the [Environment variables](https://docs.docker.com/engine/reference/commandline/cli/#environment-variables) as appropriate.\n\nThe arguments for the image entrypoint may be passed on the command line after a double dash (`--`), or using the `--run-args` option.\n\nDefaults to `--interactive --tty` when stdout is connected to a terminal.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--docker-run-args"], @@ -79316,7 +91330,7 @@ "deprecated_scope": null, "description": "A highly experimental subsystem to allow setting environment variables and executable search paths for different environments, e.g. macOS vs. Linux.", "is_goal": false, - "provider": "", + "provider": "pants.backend.experimental.javascript", "scope": "environments-preview" }, "experimental-bsp": { @@ -79370,7 +91384,7 @@ ], "env_var": "PANTS_EXPERIMENTAL_BSP_RUNNER_ENV_VARS", "fromfile": false, - "help": "Environment variables to set in the BSP runner script when setting up BSP in a repository. Entries are either strings in the form `ENV_VAR=value` to set an explicit value; or just `ENV_VAR` to copy the value from Pants' own environment when the experimental-bsp goal was run.\n\nThis option only takes effect when the BSP runner script is written. If the option changes, you must run `scie-pants-linux-x86_64 experimental-bsp` again to write a new copy of the BSP runner script.\n\nNote: The environment variables passed to the Pants BSP server will be those set for your IDE and not your shell. For example, on macOS, the IDE is generally launched by `launchd` after clicking on a Dock icon, and not from the shell. Thus, any environment variables set for your shell will likely not be seen by the Pants BSP server. At the very least, on macOS consider writing an explicit PATH into the BSP runner script via this option.", + "help": "Environment variables to set in the BSP runner script when setting up BSP in a repository. Entries are either strings in the form `ENV_VAR=value` to set an explicit value; or just `ENV_VAR` to copy the value from Pants' own environment when the experimental-bsp goal was run.\n\nThis option only takes effect when the BSP runner script is written. If the option changes, you must run `pants experimental-bsp` again to write a new copy of the BSP runner script.\n\nNote: The environment variables passed to the Pants BSP server will be those set for your IDE and not your shell. For example, on macOS, the IDE is generally launched by `launchd` after clicking on a Dock icon, and not from the shell. Thus, any environment variables set for your shell will likely not be seen by the Pants BSP server. At the very least, on macOS consider writing an explicit PATH into the BSP runner script via this option.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--experimental-bsp-runner-env-vars"], @@ -80157,7 +92171,7 @@ "display_args": ["--[no-]fix-skip-formatters"], "env_var": "PANTS_FIX_SKIP_FORMATTERS", "fromfile": false, - "help": "If true, skip running all formatters.\n\nFYI: when running `scie-pants-linux-x86_64 fix fmt ::`, there should be diminishing performance benefit to using this flag. Pants attempts to reuse the results from `fmt` when running `fix` where possible.", + "help": "If true, skip running all formatters.\n\nFYI: when running `pants fix fmt ::`, there should be diminishing performance benefit to using this flag. Pants attempts to reuse the results from `fmt` when running `fix` where possible.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ @@ -80467,7 +92481,7 @@ "display_args": ["--[no-]flake8-skip"], "env_var": "PANTS_FLAKE8_SKIP", "fromfile": false, - "help": "If true, don't use Flake8 when running `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use Flake8 when running `pants lint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--flake8-skip", "--no-flake8-skip"], @@ -80621,7 +92635,7 @@ "display_args": ["--generate-lockfiles-custom-command="], "env_var": "PANTS_GENERATE_LOCKFILES_CUSTOM_COMMAND", "fromfile": false, - "help": "If set, lockfile headers will say to run this command to regenerate the lockfile, rather than running `scie-pants-linux-x86_64 generate-lockfiles --resolve=` like normal.", + "help": "If set, lockfile headers will say to run this command to regenerate the lockfile, rather than running `pants generate-lockfiles --resolve=` like normal.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--generate-lockfiles-custom-command"], @@ -80653,7 +92667,7 @@ ], "env_var": "PANTS_GENERATE_LOCKFILES_RESOLVE", "fromfile": false, - "help": "Only generate lockfiles for the specified resolve(s).\n\nResolves are the logical names for the different lockfiles used in your project. For your own code's dependencies, these come from backend-specific configuration such as `[python].resolves`. For tool lockfiles, resolve names are the options scope for that tool such as `black`, `pytest`, and `mypy-protobuf`.\n\nFor example, you can run `scie-pants-linux-x86_64 generate-lockfiles --resolve=black --resolve=pytest --resolve=data-science` to only generate lockfiles for those two tools and your resolve named `data-science`.\n\nIf you specify an invalid resolve name, like 'fake', Pants will output all possible values.\n\nIf not specified, Pants will generate lockfiles for all resolves.", + "help": "Only generate lockfiles for the specified resolve(s).\n\nResolves are the logical names for the different lockfiles used in your project. For your own code's dependencies, these come from backend-specific configuration such as `[python].resolves`. For tool lockfiles, resolve names are the options scope for that tool such as `black`, `pytest`, and `mypy-protobuf`.\n\nFor example, you can run `pants generate-lockfiles --resolve=black --resolve=pytest --resolve=data-science` to only generate lockfiles for those two tools and your resolve named `data-science`.\n\nIf you specify an invalid resolve name, like 'fake', Pants will output all possible values.\n\nIf not specified, Pants will generate lockfiles for all resolves.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--generate-lockfiles-resolve"], @@ -80768,6 +92782,26 @@ "provider": "pants.core", "scope": "generate-snapshots" }, + "go-dump-import-path-mapping": { + "advanced": [], + "basic": [], + "deprecated": [], + "deprecated_scope": null, + "description": "Dump import paths mapped to package addresses.", + "is_goal": true, + "provider": "pants.backend.experimental.go.debug_goals", + "scope": "go-dump-import-path-mapping" + }, + "go-export-cgo-codegen": { + "advanced": [], + "basic": [], + "deprecated": [], + "deprecated_scope": null, + "description": "Export files generated by Cgo.", + "is_goal": true, + "provider": "pants.backend.experimental.go.debug_goals", + "scope": "go-export-cgo-codegen" + }, "go-generate": { "advanced": [ { @@ -80814,6 +92848,16 @@ "provider": "pants.backend.experimental.go", "scope": "go-generate" }, + "go-show-package-analysis": { + "advanced": [], + "basic": [], + "deprecated": [], + "deprecated_scope": null, + "description": "Show the package analysis for Go package targets.", + "is_goal": true, + "provider": "pants.backend.experimental.go.debug_goals", + "scope": "go-show-package-analysis" + }, "go-test": { "advanced": [ { @@ -81041,7 +93085,7 @@ "display_args": ["--[no-]go-test-skip"], "env_var": "PANTS_GO_TEST_SKIP", "fromfile": false, - "help": "If true, don't use Go test binary when running `scie-pants-linux-x86_64 test`.", + "help": "If true, don't use Go test binary when running `pants test`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--go-test-skip", "--no-go-test-skip"], @@ -81356,6 +93400,50 @@ "provider": "pants.backend.experimental.go", "scope": "go-test" }, + "go-vet": { + "advanced": [], + "basic": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]go-vet-skip", + "config_key": "skip", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]go-vet-skip"], + "env_var": "PANTS_GO_VET_SKIP", + "fromfile": false, + "help": "If true, don't use `go vet` when running `pants lint`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--go-vet-skip", "--no-go-vet-skip"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + } + ], + "deprecated": [], + "deprecated_scope": null, + "description": "`go vet`-specific options.", + "is_goal": false, + "provider": "pants.backend.experimental.go.lint.vet", + "scope": "go-vet" + }, "gofmt": { "advanced": [], "basic": [ @@ -81370,7 +93458,7 @@ "display_args": ["--[no-]gofmt-skip"], "env_var": "PANTS_GOFMT_SKIP", "fromfile": false, - "help": "If true, don't use gofmt when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use gofmt when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--gofmt-skip", "--no-gofmt-skip"], @@ -82072,6 +94160,347 @@ "provider": "pants.backend.experimental.go", "scope": "golang" }, + "golangci-lint": { + "advanced": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--golangci-lint-version=", + "config_key": "version", + "default": "1.51.1", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--golangci-lint-version="], + "env_var": "PANTS_GOLANGCI_LINT_VERSION", + "fromfile": false, + "help": "Use this version of golangci-lint.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--golangci-lint-version"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--version"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "1.51.1" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--golangci-lint-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", + "default": [ + "1.51.1|macos_arm64 |75b8f0ff3a4e68147156be4161a49d4576f1be37a0b506473f8c482140c1e7f2|9724049", + "1.51.1|macos_x86_64|fba08acc4027f69f07cef48fbff70b8a7ecdfaa1c2aba9ad3fb31d60d9f5d4bc|10054954", + "1.51.1|linux_arm64 |9744bc34e7b8d82ca788b667bfb7155a39b4be9aef43bf9f10318b1372cea338|8927955", + "1.51.1|linux_x86_64|17aeb26c76820c22efa0e1838b0ab93e90cfedef43fbfc9a2f33f27eb9e5e070|9712769" + ], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--golangci-lint-known-versions=\"['', '', ...]\"" + ], + "env_var": "PANTS_GOLANGCI_LINT_KNOWN_VERSIONS", + "fromfile": false, + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--golangci-lint-known-versions"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--known-versions"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [ + "1.51.1|macos_arm64 |75b8f0ff3a4e68147156be4161a49d4576f1be37a0b506473f8c482140c1e7f2|9724049", + "1.51.1|macos_x86_64|fba08acc4027f69f07cef48fbff70b8a7ecdfaa1c2aba9ad3fb31d60d9f5d4bc|10054954", + "1.51.1|linux_arm64 |9744bc34e7b8d82ca788b667bfb7155a39b4be9aef43bf9f10318b1372cea338|8927955", + "1.51.1|linux_x86_64|17aeb26c76820c22efa0e1838b0ab93e90cfedef43fbfc9a2f33f27eb9e5e070|9712769" + ] + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--golangci-lint-url-template=", + "config_key": "url_template", + "default": "https://github.com/golangci/golangci-lint/releases/download/v{version}/golangci-lint-{version}-{platform}.tar.gz", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--golangci-lint-url-template="], + "env_var": "PANTS_GOLANGCI_LINT_URL_TEMPLATE", + "fromfile": false, + "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--golangci-lint-url-template"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--url-template"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "https://github.com/golangci/golangci-lint/releases/download/v{version}/golangci-lint-{version}-{platform}.tar.gz" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--golangci-lint-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "url_platform_mapping", + "default": { + "linux_arm64": "linux-arm64", + "linux_x86_64": "linux-amd64", + "macos_arm64": "darwin-arm64", + "macos_x86_64": "darwin-amd64" + }, + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--golangci-lint-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_GOLANGCI_LINT_URL_PLATFORM_MAPPING", + "fromfile": false, + "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--golangci-lint-url-platform-mapping"], + "target_field_name": null, + "typ": "dict", + "unscoped_cmd_line_args": ["--url-platform-mapping"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": {} + }, + { + "details": "", + "rank": "HARDCODED", + "value": { + "linux_arm64": "linux-arm64", + "linux_x86_64": "linux-amd64", + "macos_arm64": "darwin-arm64", + "macos_x86_64": "darwin-amd64" + } + } + ] + } + }, + { + "choices": ["error", "warning"], + "comma_separated_choices": "error, warning", + "comma_separated_display_args": "--golangci-lint-use-unsupported-version=", + "config_key": "use_unsupported_version", + "default": "error", + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--golangci-lint-use-unsupported-version=" + ], + "env_var": "PANTS_GOLANGCI_LINT_USE_UNSUPPORTED_VERSION", + "fromfile": false, + "help": "\nWhat action to take in case the requested version of golangci-lint is not supported.\n\nSupported golangci-lint versions: unspecified\n", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--golangci-lint-use-unsupported-version"], + "target_field_name": null, + "typ": "UnsupportedVersionUsage", + "unscoped_cmd_line_args": ["--use-unsupported-version"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "error" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--golangci-lint-config=", + "config_key": "config", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--golangci-lint-config="], + "env_var": "PANTS_GOLANGCI_LINT_CONFIG", + "fromfile": false, + "help": "Path to a YAML config file understood by golangci-lint (https://golangci-lint.run/usage/configuration/#config-file).\n\nSetting this option will disable `[golangci-lint].config_discovery`. Use this option if the config is located in a non-standard location.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--golangci-lint-config"], + "target_field_name": null, + "typ": "file_option", + "unscoped_cmd_line_args": ["--config"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]golangci-lint-config-discovery", + "config_key": "config_discovery", + "default": true, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]golangci-lint-config-discovery"], + "env_var": "PANTS_GOLANGCI_LINT_CONFIG_DISCOVERY", + "fromfile": false, + "help": "If true, Pants will include all relevant config files during runs (`.golangci.yml`, `.golangci.yaml`, `golangci.toml`, and `golangci.json`).\n\nUse `[golangci-lint].config` instead if your config is in a non-standard location.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--golangci-lint-config-discovery", + "--no-golangci-lint-config-discovery" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": [ + "--config-discovery", + "--no-config-discovery" + ], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true + } + ] + } + } + ], + "basic": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]golangci-lint-skip", + "config_key": "skip", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]golangci-lint-skip"], + "env_var": "PANTS_GOLANGCI_LINT_SKIP", + "fromfile": false, + "help": "If true, don't use golangci-lint when running `pants lint`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--golangci-lint-skip", + "--no-golangci-lint-skip" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--golangci-lint-args=\"[, , ...]\"", + "config_key": "args", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--golangci-lint-args=\"[, , ...]\"" + ], + "env_var": "PANTS_GOLANGCI_LINT_ARGS", + "fromfile": false, + "help": "Arguments to pass directly to golangci-lint, e.g. `--golangci-lint-args='--enable gocritic'`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--golangci-lint-args"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--args"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + } + ], + "deprecated": [], + "deprecated_scope": null, + "description": "A fast Go linters runner", + "is_goal": false, + "provider": "pants.backend.experimental.go.lint.golangci_lint", + "scope": "golangci-lint" + }, "google-java-format": { "advanced": [ { @@ -82157,7 +94586,7 @@ "display_args": ["--google-java-format-lockfile="], "env_var": "PANTS_GOOGLE_JAVA_FORMAT_LOCKFILE", "fromfile": false, - "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/backend/java/lint/google_java_format/google_java_format.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `scie-pants-linux-x86_64 jvm-generate-lockfiles --resolve=google-java-format`.", + "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/java/lint/google_java_format/google_java_format.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=google-java-format`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--google-java-format-lockfile"], @@ -82227,7 +94656,7 @@ "display_args": ["--[no-]google-java-format-skip"], "env_var": "PANTS_GOOGLE_JAVA_FORMAT_SKIP", "fromfile": false, - "help": "If true, don't use Google Java Format when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use Google Java Format when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ @@ -82773,7 +95202,7 @@ "display_args": ["--[no-]hadolint-skip"], "env_var": "PANTS_HADOLINT_SKIP", "fromfile": false, - "help": "If true, don't use Hadolint when running `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use Hadolint when running `pants lint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--hadolint-skip", "--no-hadolint-skip"], @@ -83869,7 +96298,7 @@ "display_args": ["--[no-]helm-unittest-skip"], "env_var": "PANTS_HELM_UNITTEST_SKIP", "fromfile": false, - "help": "If true, don't use helmunittestsubsystem when running `scie-pants-linux-x86_64 test`.", + "help": "If true, don't use helmunittestsubsystem when running `pants test`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ @@ -84349,7 +96778,7 @@ "display_args": ["--[no-]isort-skip"], "env_var": "PANTS_ISORT_SKIP", "fromfile": false, - "help": "If true, don't use isort when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use isort when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--isort-skip", "--no-isort-skip"], @@ -84491,7 +96920,7 @@ "display_args": ["--jarjar-lockfile="], "env_var": "PANTS_JARJAR_LOCKFILE", "fromfile": false, - "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/jvm/shading/jarjar.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `scie-pants-linux-x86_64 jvm-generate-lockfiles --resolve=jarjar`.", + "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/jvm/shading/jarjar.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=jarjar`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--jarjar-lockfile"], @@ -84622,6 +97051,161 @@ "provider": "pants.backend.experimental.java", "scope": "jarjar" }, + "java-avro": { + "advanced": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--java-avro-version=", + "config_key": "version", + "default": "1.11.0", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--java-avro-version="], + "env_var": "PANTS_JAVA_AVRO_VERSION", + "fromfile": false, + "help": "Version string for the tool. This is available for substitution in the `[java-avro].artifacts` option by including the string `{version}`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--java-avro-version"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--version"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "1.11.0" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--java-avro-artifacts=\"['', '', ...]\"", + "config_key": "artifacts", + "default": ["org.apache.avro:avro-tools:{version}"], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--java-avro-artifacts=\"['', '', ...]\""], + "env_var": "PANTS_JAVA_AVRO_ARTIFACTS", + "fromfile": false, + "help": "Artifact requirements for this tool using specified as either the address of a `jvm_artifact` target or, alternatively, as a colon-separated Maven coordinates (e.g., `group:name:version`). For Maven coordinates, the string `{version}` version will be substituted with the value of the `[java-avro].version` option.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--java-avro-artifacts"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--artifacts"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": ["org.apache.avro:avro-tools:{version}"] + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--java-avro-lockfile=", + "config_key": "lockfile", + "default": "", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--java-avro-lockfile="], + "env_var": "PANTS_JAVA_AVRO_LOCKFILE", + "fromfile": false, + "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/codegen/avro/java/avro-tools.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=java-avro`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--java-avro-lockfile"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--lockfile"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--java-avro-jvm-options=\"['', '', ...]\"", + "config_key": "jvm_options", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--java-avro-jvm-options=\"['', '', ...]\"" + ], + "env_var": "PANTS_JAVA_AVRO_JVM_OPTIONS", + "fromfile": false, + "help": "List of JVM options to pass to `java-avro` JVM processes.\n\nOptions set here will be added to those set in `[jvm].global_options`. Please check the documentation for the `jvm` subsystem to see what values are accepted here.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--java-avro-jvm-options"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--jvm-options"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + } + ], + "basic": [], + "deprecated": [], + "deprecated_scope": null, + "description": "Avro IDL compiler (https://avro.apache.org/).", + "is_goal": false, + "provider": "pants.backend.experimental.codegen.avro.java", + "scope": "java-avro" + }, + "java-dump-source-analysis": { + "advanced": [], + "basic": [], + "deprecated": [], + "deprecated_scope": null, + "description": "Dump source analysis for java_source[s] targets.", + "is_goal": true, + "provider": "pants.backend.experimental.java.debug_goals", + "scope": "java-dump-source-analysis" + }, "java-infer": { "advanced": [], "basic": [ @@ -84740,6 +97324,50 @@ "provider": "pants.backend.experimental.java", "scope": "java-infer" }, + "java-thrift": { + "advanced": [], + "basic": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--java-thrift-options=\"['', '', ...]\"", + "config_key": "options", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--java-thrift-options=\"['', '', ...]\""], + "env_var": "PANTS_JAVA_THRIFT_OPTIONS", + "fromfile": false, + "help": "Code generation options specific to the Java code generator to pass to the Apache `thrift` binary via the `-gen java` argument. See `thrift -help` for supported values.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--java-thrift-options"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--options"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + } + ], + "deprecated": [], + "deprecated_scope": null, + "description": "Options specific to generating Java from Thrift using the Apache Thrift generator", + "is_goal": false, + "provider": "pants.backend.experimental.codegen.thrift.apache.java", + "scope": "java-thrift" + }, "javac": { "advanced": [ { @@ -84911,7 +97539,7 @@ "display_args": ["--junit-lockfile="], "env_var": "PANTS_JUNIT_LOCKFILE", "fromfile": false, - "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/jvm/test/junit.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `scie-pants-linux-x86_64 jvm-generate-lockfiles --resolve=junit`.", + "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/jvm/test/junit.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=junit`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--junit-lockfile"], @@ -85015,7 +97643,7 @@ "display_args": ["--[no-]junit-skip"], "env_var": "PANTS_JUNIT_SKIP", "fromfile": false, - "help": "If true, don't use JUnit when running `scie-pants-linux-x86_64 test`.", + "help": "If true, don't use JUnit when running `pants test`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--junit-skip", "--no-junit-skip"], @@ -85339,6 +97967,16 @@ "provider": "pants.backend.experimental.java", "scope": "jvm" }, + "jvm-symbol-map": { + "advanced": [], + "basic": [], + "deprecated": [], + "deprecated_scope": null, + "description": "Dump the JVM dependency inference symbol mapping.", + "is_goal": true, + "provider": "pants.backend.experimental.java.debug_goals", + "scope": "jvm-symbol-map" + }, "kotlin": { "advanced": [ { @@ -85425,6 +98063,16 @@ "provider": "pants.backend.experimental.kotlin", "scope": "kotlin" }, + "kotlin-dump-source-analysis": { + "advanced": [], + "basic": [], + "deprecated": [], + "deprecated_scope": null, + "description": "Dump source analysis for kotlin_source targets.", + "is_goal": true, + "provider": "pants.backend.experimental.kotlin.debug_goals", + "scope": "kotlin-dump-source-analysis" + }, "kotlin-infer": { "advanced": [], "basic": [ @@ -85668,7 +98316,7 @@ "display_args": ["--ktlint-lockfile="], "env_var": "PANTS_KTLINT_LOCKFILE", "fromfile": false, - "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/backend/kotlin/lint/ktlint/ktlint.lock for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `scie-pants-linux-x86_64 jvm-generate-lockfiles --resolve=ktlint`.", + "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/kotlin/lint/ktlint/ktlint.lock for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=ktlint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--ktlint-lockfile"], @@ -85736,7 +98384,7 @@ "display_args": ["--[no-]ktlint-skip"], "env_var": "PANTS_KTLINT_SKIP", "fromfile": false, - "help": "If true, don't use Ktlint when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use Ktlint when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--ktlint-skip", "--no-ktlint-skip"], @@ -85766,6 +98414,413 @@ "provider": "pants.backend.experimental.kotlin.lint.ktlint", "scope": "ktlint" }, + "kubeconform": { + "advanced": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--kubeconform-version=", + "config_key": "version", + "default": "0.6.2", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--kubeconform-version="], + "env_var": "PANTS_KUBECONFORM_VERSION", + "fromfile": false, + "help": "Use this version of kubeconform.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--kubeconform-version"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--version"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "0.6.2" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--kubeconform-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", + "default": [ + "0.6.2|linux_arm64 |41c15ecbb120042bee0aca8a616e479b555084d5d14bc2e095ed96081c1e9404|5335394", + "0.6.2|linux_x86_64|d2a10db6b78d56de8fe9375b9c351bc573aa218a74da04d114767b505a675090|5739066", + "0.6.2|macos_arm64 |881e3fe2ecdb1cc41bce80013113f24da80e1bec593876ffe88668333ae69b51|5423607", + "0.6.2|macos_x86_64|88e53c2562482ed5ab7434188ca5ba03d3482088ac52d53da7499d579923f2e8|5656173" + ], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--kubeconform-known-versions=\"['', '', ...]\"" + ], + "env_var": "PANTS_KUBECONFORM_KNOWN_VERSIONS", + "fromfile": false, + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--kubeconform-known-versions"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--known-versions"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [ + "0.6.2|linux_arm64 |41c15ecbb120042bee0aca8a616e479b555084d5d14bc2e095ed96081c1e9404|5335394", + "0.6.2|linux_x86_64|d2a10db6b78d56de8fe9375b9c351bc573aa218a74da04d114767b505a675090|5739066", + "0.6.2|macos_arm64 |881e3fe2ecdb1cc41bce80013113f24da80e1bec593876ffe88668333ae69b51|5423607", + "0.6.2|macos_x86_64|88e53c2562482ed5ab7434188ca5ba03d3482088ac52d53da7499d579923f2e8|5656173" + ] + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--kubeconform-url-template=", + "config_key": "url_template", + "default": "https://github.com/yannh/kubeconform/releases/download/v{version}/kubeconform-{platform}.tar.gz", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--kubeconform-url-template="], + "env_var": "PANTS_KUBECONFORM_URL_TEMPLATE", + "fromfile": false, + "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--kubeconform-url-template"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--url-template"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "https://github.com/yannh/kubeconform/releases/download/v{version}/kubeconform-{platform}.tar.gz" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--kubeconform-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "url_platform_mapping", + "default": { + "linux_arm64": "linux-arm64", + "linux_x86_64": "linux-amd64", + "macos_arm64": "darwin-arm64", + "macos_x86_64": "darwin-amd64" + }, + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--kubeconform-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_KUBECONFORM_URL_PLATFORM_MAPPING", + "fromfile": false, + "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--kubeconform-url-platform-mapping"], + "target_field_name": null, + "typ": "dict", + "unscoped_cmd_line_args": ["--url-platform-mapping"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": {} + }, + { + "details": "", + "rank": "HARDCODED", + "value": { + "linux_arm64": "linux-arm64", + "linux_x86_64": "linux-amd64", + "macos_arm64": "darwin-arm64", + "macos_x86_64": "darwin-amd64" + } + } + ] + } + }, + { + "choices": ["error", "warning"], + "comma_separated_choices": "error, warning", + "comma_separated_display_args": "--kubeconform-use-unsupported-version=", + "config_key": "use_unsupported_version", + "default": "error", + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--kubeconform-use-unsupported-version=" + ], + "env_var": "PANTS_KUBECONFORM_USE_UNSUPPORTED_VERSION", + "fromfile": false, + "help": "\nWhat action to take in case the requested version of kubeconform is not supported.\n\nSupported kubeconform versions: unspecified\n", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--kubeconform-use-unsupported-version"], + "target_field_name": null, + "typ": "UnsupportedVersionUsage", + "unscoped_cmd_line_args": ["--use-unsupported-version"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "error" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--kubeconform-concurrency=", + "config_key": "concurrency", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--kubeconform-concurrency="], + "env_var": "PANTS_KUBECONFORM_CONCURRENCY", + "fromfile": false, + "help": "Number of workers used by Kubeconform to validate resources.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--kubeconform-concurrency"], + "target_field_name": null, + "typ": "int", + "unscoped_cmd_line_args": ["--concurrency"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--kubeconform-schema-locations=\"['', '', ...]\"", + "config_key": "schema_locations", + "default": ["default"], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--kubeconform-schema-locations=\"['', '', ...]\"" + ], + "env_var": "PANTS_KUBECONFORM_SCHEMA_LOCATIONS", + "fromfile": false, + "help": "List of schema locations to use to validate the resources.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--kubeconform-schema-locations"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--schema-locations"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": ["default"] + } + ] + } + } + ], + "basic": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]kubeconform-skip", + "config_key": "skip", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]kubeconform-skip"], + "env_var": "PANTS_KUBECONFORM_SKIP", + "fromfile": false, + "help": "If true, don't use kubeconform when running `pants check`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--kubeconform-skip", + "--no-kubeconform-skip" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + { + "choices": ["text", "json", "tap", "junit"], + "comma_separated_choices": "text, json, tap, junit", + "comma_separated_display_args": "--kubeconform-output-type=", + "config_key": "output_type", + "default": "text", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--kubeconform-output-type="], + "env_var": "PANTS_KUBECONFORM_OUTPUT_TYPE", + "fromfile": false, + "help": "Output type used by `kubeconform`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--kubeconform-output-type"], + "target_field_name": null, + "typ": "KubeconformOutput", + "unscoped_cmd_line_args": ["--output-type"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "text" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]kubeconform-summary", + "config_key": "summary", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]kubeconform-summary"], + "env_var": "PANTS_KUBECONFORM_SUMMARY", + "fromfile": false, + "help": "Set to true to only output check summary.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--kubeconform-summary", + "--no-kubeconform-summary" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--summary", "--no-summary"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]kubeconform-verbose", + "config_key": "verbose", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]kubeconform-verbose"], + "env_var": "PANTS_KUBECONFORM_VERBOSE", + "fromfile": false, + "help": "Set to true to increase output verbosity.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--kubeconform-verbose", + "--no-kubeconform-verbose" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--verbose", "--no-verbose"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + } + ], + "deprecated": [], + "deprecated_scope": null, + "description": "Kubeconform tool (https://github.com/yannh/kubeconform)", + "is_goal": false, + "provider": "pants.backend.experimental.helm.check.kubeconform", + "scope": "kubeconform" + }, "lambdex": { "advanced": [ { @@ -86051,7 +99106,7 @@ "display_args": ["--[no-]lint-skip-formatters"], "env_var": "PANTS_LINT_SKIP_FORMATTERS", "fromfile": false, - "help": "If true, skip running all formatters in check-only mode.\n\nFYI: when running `scie-pants-linux-x86_64 fmt lint ::`, there should be diminishing performance benefit to using this flag. Pants attempts to reuse the results from `fmt` when running `lint` where possible.", + "help": "If true, skip running all formatters in check-only mode.\n\nFYI: when running `pants fmt lint ::`, there should be diminishing performance benefit to using this flag. Pants attempts to reuse the results from `fmt` when running `lint` where possible.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ @@ -86090,7 +99145,7 @@ "display_args": ["--[no-]lint-skip-fixers"], "env_var": "PANTS_LINT_SKIP_FIXERS", "fromfile": false, - "help": "If true, skip running all fixers in check-only mode.\n\nFYI: when running `scie-pants-linux-x86_64 fix lint ::`, there should be diminishing performance benefit to using this flag. Pants attempts to reuse the results from `fix` when running `lint` where possible.", + "help": "If true, skip running all fixers in check-only mode.\n\nFYI: when running `pants fix lint ::`, there should be diminishing performance benefit to using this flag. Pants attempts to reuse the results from `fix` when running `lint` where possible.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ @@ -86502,7 +99557,7 @@ "display_args": ["--[no-]mypy-skip"], "env_var": "PANTS_MYPY_SKIP", "fromfile": false, - "help": "If true, don't use MyPy when running `scie-pants-linux-x86_64 check`.", + "help": "If true, don't use MyPy when running `pants check`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--mypy-skip", "--no-mypy-skip"], @@ -86845,7 +99900,7 @@ ], "env_var": "PANTS_NODEJS_RESOLVES", "fromfile": false, - "help": "A mapping of names to lockfile paths used in your project.\n\nSpecifying a resolve name is optional. If unspecified, the default resolve name is calculated by taking the path from the source root to the directory containing the lockfile and replacing '/' with '.' in that path.\n\nExample: An npm lockfile located at `src/js/package/package-lock.json' will result in a resolve named `js.package`, assuming src/ is a source root.\n\nRun `scie-pants-linux-x86_64 generate-lockfiles` to generate the lockfile(s).", + "help": "A mapping of names to lockfile paths used in your project.\n\nSpecifying a resolve name is optional. If unspecified, the default resolve name is calculated by taking the path from the source root to the directory containing the lockfile and replacing '/' with '.' in that path.\n\nExample: An npm lockfile located at `src/js/package/package-lock.json' will result in a resolve named `js.package`, assuming src/ is a source root.\n\nRun `pants generate-lockfiles` to generate the lockfile(s).", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--nodejs-resolves"], @@ -87051,7 +100106,7 @@ "deprecated_scope": null, "description": "The Node.js Javascript runtime (including Corepack).", "is_goal": false, - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "scope": "nodejs" }, "nodejs-infer": { @@ -87137,9 +100192,90 @@ "deprecated_scope": null, "description": "Options controlling which dependencies will be inferred for javascript targets.", "is_goal": false, - "provider": "pants.backend.experimental.openapi.lint.spectral", + "provider": "pants.backend.experimental.javascript", "scope": "nodejs-infer" }, + "nodejs-test": { + "advanced": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--nodejs-test-coverage-output-dir=", + "config_key": "coverage_output_dir", + "default": "{distdir}/coverage/js/{target_spec}", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--nodejs-test-coverage-output-dir="], + "env_var": "PANTS_NODEJS_TEST_COVERAGE_OUTPUT_DIR", + "fromfile": false, + "help": "Path to write the NodeJS coverage reports to. Must be relative to the build root.\n\nReplacements:\n\n- `{distdir}` is replaced with the Pants `distdir`.\n\n- `{target_spec}` is replaced with the address of the applicable `javascript_test` target with `/` characters replaced with dots (`.`). Additional batch information is included in `target_spec`, when batching is used.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--nodejs-test-coverage-output-dir"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--coverage-output-dir"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "{distdir}/coverage/js/{target_spec}" + } + ] + } + } + ], + "basic": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]nodejs-test-skip", + "config_key": "skip", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]nodejs-test-skip"], + "env_var": "PANTS_NODEJS_TEST_SKIP", + "fromfile": false, + "help": "If true, don't use Node.js tests when running `pants test`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--nodejs-test-skip", + "--no-nodejs-test-skip" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + } + ], + "deprecated": [], + "deprecated_scope": null, + "description": "Options for package.json script configured tests.\n\nYour preferred test runner is configured via the `package.json#scripts.test` field.\n\nThe only expectation from pants is that the `test` script can accept a variadic number of path arguments, relative to the package.json, and that any configuration files are `file` dependencies to the `package_json`.\n\nSimple example:\n\nConsider a directory-layout:\n\n\u251c\u2500\u2500 BUILD\n\u251c\u2500\u2500 src/\n\u2502 \u251c\u2500\u2500 BUILD\n\u2502 \u251c\u2500\u2500 test/\n\u2502 \u2502 \u251c\u2500\u2500 BUILD\n\u2502 \u2502 \u2514\u2500\u2500 index.test.js\n\u2502 \u2514\u2500\u2500 index.js\n\u2514\u2500\u2500 package.json\n\nwhere package.json contains\n\n# package.json\n{\n ...\n \"scripts\": {\n \"test\": \"mocha\"\n },\n \"devDependencies: {\n ...\n }\n}\n\n\nExecuting `pants test src/test/index.test.js` will cause the equivalent of `mocha src/test/index.test.js` to run.", + "is_goal": false, + "provider": "pants.backend.experimental.javascript", + "scope": "nodejs-test" + }, "openapi": { "advanced": [ { @@ -87187,6 +100323,153 @@ "provider": "pants.backend.experimental.openapi", "scope": "openapi" }, + "openapi-generator": { + "advanced": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--openapi-generator-version=", + "config_key": "version", + "default": "5.4.0", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--openapi-generator-version="], + "env_var": "PANTS_OPENAPI_GENERATOR_VERSION", + "fromfile": false, + "help": "Version string for the tool. This is available for substitution in the `[openapi-generator].artifacts` option by including the string `{version}`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--openapi-generator-version"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--version"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "5.4.0" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--openapi-generator-artifacts=\"['', '', ...]\"", + "config_key": "artifacts", + "default": ["org.openapitools:openapi-generator-cli:{version}"], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--openapi-generator-artifacts=\"['', '', ...]\"" + ], + "env_var": "PANTS_OPENAPI_GENERATOR_ARTIFACTS", + "fromfile": false, + "help": "Artifact requirements for this tool using specified as either the address of a `jvm_artifact` target or, alternatively, as a colon-separated Maven coordinates (e.g., `group:name:version`). For Maven coordinates, the string `{version}` version will be substituted with the value of the `[openapi-generator].version` option.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--openapi-generator-artifacts"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--artifacts"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": ["org.openapitools:openapi-generator-cli:{version}"] + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--openapi-generator-lockfile=", + "config_key": "lockfile", + "default": "", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--openapi-generator-lockfile="], + "env_var": "PANTS_OPENAPI_GENERATOR_LOCKFILE", + "fromfile": false, + "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/openapi/subsystems/openapi_generator.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=openapi-generator`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--openapi-generator-lockfile"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--lockfile"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--openapi-generator-jvm-options=\"['', '', ...]\"", + "config_key": "jvm_options", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--openapi-generator-jvm-options=\"['', '', ...]\"" + ], + "env_var": "PANTS_OPENAPI_GENERATOR_JVM_OPTIONS", + "fromfile": false, + "help": "List of JVM options to pass to `openapi-generator` JVM processes.\n\nOptions set here will be added to those set in `[jvm].global_options`. Please check the documentation for the `jvm` subsystem to see what values are accepted here.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--openapi-generator-jvm-options"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--jvm-options"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + } + ], + "basic": [], + "deprecated": [], + "deprecated_scope": null, + "description": "The OpenAPI Code generator (https://openapi-generator.tech)", + "is_goal": false, + "provider": "pants.backend.experimental.openapi.codegen.java", + "scope": "openapi-generator" + }, "package": { "advanced": [], "basic": [], @@ -87816,7 +101099,7 @@ "display_args": ["--[no-]preamble-skip"], "env_var": "PANTS_PREAMBLE_SKIP", "fromfile": false, - "help": "If true, don't use preamble when running `scie-pants-linux-x86_64 fmt`.", + "help": "If true, don't use preamble when running `pants fmt`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--preamble-skip", "--no-preamble-skip"], @@ -87881,6 +101164,147 @@ "provider": "pants.backend.tools.preamble", "scope": "preamble" }, + "prettier": { + "advanced": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--prettier-version=", + "config_key": "version", + "default": "prettier@2.6.2", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--prettier-version="], + "env_var": "PANTS_PRETTIER_VERSION", + "fromfile": false, + "help": "Version string for the tool in the form package@version (e.g. prettier@2.6.2)", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--prettier-version"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--version"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "prettier@2.6.2" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--prettier-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--prettier-install-from-resolve="], + "env_var": "PANTS_PRETTIER_INSTALL_FROM_RESOLVE", + "fromfile": false, + "help": "If specified, install the tool using the lockfile for this named resolve, instead of the version configured in this subsystem.\n\nIf unspecified, the tool will use the default configured package manager [nodejs].package_manager`, and install the tool without a lockfile.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--prettier-install-from-resolve"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--install-from-resolve"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + } + ], + "basic": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]prettier-skip", + "config_key": "skip", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]prettier-skip"], + "env_var": "PANTS_PRETTIER_SKIP", + "fromfile": false, + "help": "If true, don't use Prettier when running `pants fmt` and `pants lint`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--prettier-skip", "--no-prettier-skip"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--prettier-args=\"[, , ...]\"", + "config_key": "args", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--prettier-args=\"[, , ...]\"" + ], + "env_var": "PANTS_PRETTIER_ARGS", + "fromfile": false, + "help": "Arguments to pass directly to Prettier, e.g. `--prettier-args='--version'`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--prettier-args"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--args"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + } + ], + "deprecated": [], + "deprecated_scope": null, + "description": "The Prettier utility for formatting JS/TS (and others) code (https://prettier.io/).", + "is_goal": false, + "provider": "pants.backend.experimental.javascript.lint.prettier", + "scope": "prettier" + }, "protobuf-java-grpc": { "advanced": [ { @@ -87972,7 +101396,7 @@ "display_args": ["--protobuf-java-grpc-lockfile="], "env_var": "PANTS_PROTOBUF_JAVA_GRPC_LOCKFILE", "fromfile": false, - "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/backend/codegen/protobuf/java/grpc-java.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `scie-pants-linux-x86_64 jvm-generate-lockfiles --resolve=protobuf-java-grpc`.", + "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/codegen/protobuf/java/grpc-java.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=protobuf-java-grpc`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--protobuf-java-grpc-lockfile"], @@ -88627,7 +102051,7 @@ "display_args": ["--[no-]pydocstyle-config-discovery"], "env_var": "PANTS_PYDOCSTYLE_CONFIG_DISCOVERY", "fromfile": false, - "help": "If true, Pants will include any relevant config files during runs (`setup.cfg`, `tox.ini`, `.pydocstyle`, `.pydocstyle.ini`, `.pydocstylerc`, `.pydocstylerc.ini`, and `pyproject.toml`) searching for the configuration file in this particular order.\n\nPlease note that even though `pydocstyle` keeps looking for a configuration file up the directory tree until one is found, Pants will only search for the config files in the repository root (from where you would normally run the `` command).\n\nUse `[pydocstyle].config` instead if your config is in a non-standard location.", + "help": "If true, Pants will include any relevant config files during runs (`setup.cfg`, `tox.ini`, `.pydocstyle`, `.pydocstyle.ini`, `.pydocstylerc`, `.pydocstylerc.ini`, and `pyproject.toml`) searching for the configuration file in this particular order.\n\nPlease note that even though `pydocstyle` keeps looking for a configuration file up the directory tree until one is found, Pants will only search for the config files in the repository root (from where you would normally run the `` command).\n\nUse `[pydocstyle].config` instead if your config is in a non-standard location.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ @@ -88668,7 +102092,7 @@ "display_args": ["--[no-]pydocstyle-skip"], "env_var": "PANTS_PYDOCSTYLE_SKIP", "fromfile": false, - "help": "If true, don't use Pydocstyle when running `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use Pydocstyle when running `pants lint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--pydocstyle-skip", "--no-pydocstyle-skip"], @@ -88733,6 +102157,235 @@ "provider": "pants.backend.python.lint.pydocstyle", "scope": "pydocstyle" }, + "pyenv-python-provider": { + "advanced": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pyenv-python-provider-version=", + "config_key": "version", + "default": "2.3.13", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--pyenv-python-provider-version="], + "env_var": "PANTS_PYENV_PYTHON_PROVIDER_VERSION", + "fromfile": false, + "help": "Use this version of pyenv.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--pyenv-python-provider-version"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--version"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "2.3.13" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pyenv-python-provider-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", + "default": [ + "2.3.13|macos_arm64|9105de5e5cf8dc0eca2a520ed04493d183128d46a2cfb402d4cc271af1bf144b|749323", + "2.3.13|macos_x86_64|9105de5e5cf8dc0eca2a520ed04493d183128d46a2cfb402d4cc271af1bf144b|749323", + "2.3.13|linux_x86_64|9105de5e5cf8dc0eca2a520ed04493d183128d46a2cfb402d4cc271af1bf144b|749323", + "2.3.13|linux_arm64|9105de5e5cf8dc0eca2a520ed04493d183128d46a2cfb402d4cc271af1bf144b|749323" + ], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--pyenv-python-provider-known-versions=\"['', '', ...]\"" + ], + "env_var": "PANTS_PYENV_PYTHON_PROVIDER_KNOWN_VERSIONS", + "fromfile": false, + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--pyenv-python-provider-known-versions"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--known-versions"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [ + "2.3.13|macos_arm64|9105de5e5cf8dc0eca2a520ed04493d183128d46a2cfb402d4cc271af1bf144b|749323", + "2.3.13|macos_x86_64|9105de5e5cf8dc0eca2a520ed04493d183128d46a2cfb402d4cc271af1bf144b|749323", + "2.3.13|linux_x86_64|9105de5e5cf8dc0eca2a520ed04493d183128d46a2cfb402d4cc271af1bf144b|749323", + "2.3.13|linux_arm64|9105de5e5cf8dc0eca2a520ed04493d183128d46a2cfb402d4cc271af1bf144b|749323" + ] + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pyenv-python-provider-url-template=", + "config_key": "url_template", + "default": "https://github.com/pyenv/pyenv/archive/refs/tags/v{version}.tar.gz", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--pyenv-python-provider-url-template="], + "env_var": "PANTS_PYENV_PYTHON_PROVIDER_URL_TEMPLATE", + "fromfile": false, + "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--pyenv-python-provider-url-template"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--url-template"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "https://github.com/pyenv/pyenv/archive/refs/tags/v{version}.tar.gz" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pyenv-python-provider-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "url_platform_mapping", + "default": {}, + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--pyenv-python-provider-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_PYENV_PYTHON_PROVIDER_URL_PLATFORM_MAPPING", + "fromfile": false, + "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--pyenv-python-provider-url-platform-mapping" + ], + "target_field_name": null, + "typ": "dict", + "unscoped_cmd_line_args": ["--url-platform-mapping"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": {} + } + ] + } + }, + { + "choices": ["error", "warning"], + "comma_separated_choices": "error, warning", + "comma_separated_display_args": "--pyenv-python-provider-use-unsupported-version=", + "config_key": "use_unsupported_version", + "default": "error", + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--pyenv-python-provider-use-unsupported-version=" + ], + "env_var": "PANTS_PYENV_PYTHON_PROVIDER_USE_UNSUPPORTED_VERSION", + "fromfile": false, + "help": "\nWhat action to take in case the requested version of pyenv is not supported.\n\nSupported pyenv versions: unspecified\n", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--pyenv-python-provider-use-unsupported-version" + ], + "target_field_name": null, + "typ": "UnsupportedVersionUsage", + "unscoped_cmd_line_args": ["--use-unsupported-version"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "error" + } + ] + } + } + ], + "basic": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pyenv-python-provider-installation-extra-env-vars=\"['', '', ...]\"", + "config_key": "installation_extra_env_vars", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--pyenv-python-provider-installation-extra-env-vars=\"['', '', ...]\"" + ], + "env_var": "PANTS_PYENV_PYTHON_PROVIDER_INSTALLATION_EXTRA_ENV_VARS", + "fromfile": false, + "help": "Additional environment variables to include when running `pyenv install`.\n\nEntries are strings in the form `ENV_VAR=value` to use explicitly; or just `ENV_VAR` to copy the value of a variable in Pants's own environment.\n\nThis is especially useful if you want to use an optimized Python (E.g. setting `PYTHON_CONFIGURE_OPTS='--enable-optimizations --with-lto'` and `PYTHON_CFLAGS='-march=native -mtune=native'`) or need custom compiler flags.\n\nNote that changes to this option result in a different fingerprint for the installed Python, and therefore will cause a full re-install if changed.\n\nSee https://github.com/pyenv/pyenv/blob/master/plugins/python-build/README.md#special-environment-variables for supported env vars.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--pyenv-python-provider-installation-extra-env-vars" + ], + "target_field_name": "pyenv_python_provider_installation_extra_env_vars", + "typ": "list", + "unscoped_cmd_line_args": ["--installation-extra-env-vars"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + } + ], + "deprecated": [], + "deprecated_scope": null, + "description": "A subsystem for Pants-provided Python leveraging pyenv (https://github.com/pyenv/pyenv).\n\nEnabling this subsystem will switch Pants from trying to find an appropriate Python on your system to using pyenv to install the correct Python(s).\n\nThe Pythons provided by Pyenv will be used to run any \"user\" code (your Python code as well as any Python-based tools you use, like black or pylint). The Pythons are also read-only to ensure they remain hermetic across runs of different tools and code.\n\nThe Pythons themselves are stored in your `named_caches_dir`: https://www.pantsbuild.org/docs/reference-global#named_caches_dir under `pyenv/versions/`. Wiping the relevant version directory (with `sudo rm -rf`) will force a re-install of Python. This may be necessary after changing something about the underlying system which changes the compiled Python, such as installing an optional-at-build-time dependency like `liblzma-dev` (which is used for the optional module `lzma`).\n\nBy default, the subsystem does not pass any optimization flags to the Python compilation process. Doing so would increase the time it takes to install a single Python by about an order of magnitude (E.g. ~2.5 minutes to ~26 minutes).", + "is_goal": false, + "provider": "pants.backend.python.providers.experimental.pyenv", + "scope": "pyenv-python-provider" + }, "pylint": { "advanced": [ { @@ -88972,7 +102625,7 @@ "display_args": ["--[no-]pylint-skip"], "env_var": "PANTS_PYLINT_SKIP", "fromfile": false, - "help": "If true, don't use Pylint when running `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use Pylint when running `pants lint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--pylint-skip", "--no-pylint-skip"], @@ -89030,37 +102683,248 @@ ], "deprecated": [], "deprecated_scope": null, - "description": "The Pylint linter for Python code (https://www.pylint.org/).", + "description": "The Pylint linter for Python code (https://www.pylint.org/).", + "is_goal": false, + "provider": "pants.backend.python.lint.pylint", + "scope": "pylint" + }, + "pyoxidizer": { + "advanced": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pyoxidizer-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--pyoxidizer-install-from-resolve="], + "env_var": "PANTS_PYOXIDIZER_INSTALL_FROM_RESOLVE", + "fromfile": false, + "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `pyoxidizer` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--pyoxidizer-install-from-resolve"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--install-from-resolve"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pyoxidizer-requirements=\"['', '', ...]\"", + "config_key": "requirements", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--pyoxidizer-requirements=\"['', '', ...]\"" + ], + "env_var": "PANTS_PYOXIDIZER_REQUIREMENTS", + "fromfile": false, + "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--pyoxidizer-requirements"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--requirements"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pyoxidizer-interpreter-constraints=\"['', '', ...]\"", + "config_key": "interpreter_constraints", + "default": ["CPython>=3.8,<4"], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--pyoxidizer-interpreter-constraints=\"['', '', ...]\"" + ], + "env_var": "PANTS_PYOXIDIZER_INTERPRETER_CONSTRAINTS", + "fromfile": false, + "help": "Python interpreter constraints for this tool.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--pyoxidizer-interpreter-constraints"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--interpreter-constraints"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": ["CPython>=3.8,<4"] + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pyoxidizer-console-script=", + "config_key": "console_script", + "default": "pyoxidizer", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--pyoxidizer-console-script="], + "env_var": "PANTS_PYOXIDIZER_CONSOLE_SCRIPT", + "fromfile": false, + "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--pyoxidizer-console-script"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--console-script"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "pyoxidizer" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pyoxidizer-entry-point=", + "config_key": "entry_point", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--pyoxidizer-entry-point="], + "env_var": "PANTS_PYOXIDIZER_ENTRY_POINT", + "fromfile": false, + "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--pyoxidizer-entry-point"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--entry-point"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + } + ], + "basic": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--pyoxidizer-args=\"[, , ...]\"", + "config_key": "args", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--pyoxidizer-args=\"[, , ...]\"" + ], + "env_var": "PANTS_PYOXIDIZER_ARGS", + "fromfile": false, + "help": "Arguments to pass directly to PyOxidizer, e.g. `--pyoxidizer-args='--release'`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--pyoxidizer-args"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--args"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + } + ], + "deprecated": [], + "deprecated_scope": null, + "description": "The PyOxidizer utility for packaging Python code in a Rust binary (https://pyoxidizer.readthedocs.io/en/stable/pyoxidizer.html).\n\nUsed with the `pyoxidizer_binary` target.", "is_goal": false, - "provider": "pants.backend.python.lint.pylint", - "scope": "pylint" + "provider": "pants.backend.experimental.python.packaging.pyoxidizer", + "scope": "pyoxidizer" }, - "pyoxidizer": { + "pyright": { "advanced": [ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pyoxidizer-install-from-resolve=", - "config_key": "install_from_resolve", - "default": null, + "comma_separated_display_args": "--pyright-version=", + "config_key": "version", + "default": "pyright@1.1.316", "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pyoxidizer-install-from-resolve="], - "env_var": "PANTS_PYOXIDIZER_INSTALL_FROM_RESOLVE", + "display_args": ["--pyright-version="], + "env_var": "PANTS_PYRIGHT_VERSION", "fromfile": false, - "help": "If specified, install the tool using the lockfile for this named resolve.\n\nThis resolve must be defined in `[python].resolves`, as described in https://www.pantsbuild.org/v2.18/docs/python-third-party-dependencies#user-lockfiles.\n\nThe resolve's entire lockfile will be installed, unless specific requirements are listed via the `requirements` option, in which case only those requirements will be installed. This is useful if you don't want to invalidate the tool's outputs when the resolve incurs changes to unrelated requirements.\n\nIf unspecified, and the `lockfile` option is unset, the tool will be installed using the default lockfile shipped with Pants.\n\nIf unspecified, and the `lockfile` option is set, the tool will use the custom `pyoxidizer` \"tool lockfile\" generated from the `version` and `extra_requirements` options. But note that this mechanism is deprecated.", + "help": "Version string for the tool in the form package@version (e.g. prettier@2.6.2)", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pyoxidizer-install-from-resolve"], + "scoped_cmd_line_args": ["--pyright-version"], "target_field_name": null, "typ": "str", - "unscoped_cmd_line_args": ["--install-from-resolve"], + "unscoped_cmd_line_args": ["--version"], "value_history": { "ranked_values": [ { "details": null, "rank": "NONE", "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "pyright@1.1.316" } ] } @@ -89068,34 +102932,27 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pyoxidizer-requirements=\"['', '', ...]\"", - "config_key": "requirements", - "default": [], + "comma_separated_display_args": "--pyright-install-from-resolve=", + "config_key": "install_from_resolve", + "default": null, "deprecated_message": null, "deprecation_active": false, - "display_args": [ - "--pyoxidizer-requirements=\"['', '', ...]\"" - ], - "env_var": "PANTS_PYOXIDIZER_REQUIREMENTS", + "display_args": ["--pyright-install-from-resolve="], + "env_var": "PANTS_PYRIGHT_INSTALL_FROM_RESOLVE", "fromfile": false, - "help": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile.\n\nValues can be pip-style requirements (e.g., `tool` or `tool==1.2.3` or `tool>=1.2.3`), or addresses of `python_requirement` targets (or targets that generate or depend on `python_requirement` targets).\n\nThe lockfile will be validated against the requirements - if a lockfile doesn't provide the requirement (at a suitable version, if the requirement specifies version constraints) Pants will error.\n\nIf unspecified, install the entire lockfile.", + "help": "If specified, install the tool using the lockfile for this named resolve, instead of the version configured in this subsystem.\n\nIf unspecified, the tool will use the default configured package manager [nodejs].package_manager`, and install the tool without a lockfile.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pyoxidizer-requirements"], + "scoped_cmd_line_args": ["--pyright-install-from-resolve"], "target_field_name": null, - "typ": "list", - "unscoped_cmd_line_args": ["--requirements"], + "typ": "str", + "unscoped_cmd_line_args": ["--install-from-resolve"], "value_history": { "ranked_values": [ { - "details": "", + "details": null, "rank": "NONE", - "value": [] - }, - { - "details": "", - "rank": "HARDCODED", - "value": [] + "value": null } ] } @@ -89103,20 +102960,20 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pyoxidizer-interpreter-constraints=\"['', '', ...]\"", + "comma_separated_display_args": "--pyright-interpreter-constraints=\"['', '', ...]\"", "config_key": "interpreter_constraints", - "default": ["CPython>=3.8,<4"], + "default": ["CPython>=3.7,<4"], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--pyoxidizer-interpreter-constraints=\"['', '', ...]\"" + "--pyright-interpreter-constraints=\"['', '', ...]\"" ], - "env_var": "PANTS_PYOXIDIZER_INTERPRETER_CONSTRAINTS", + "env_var": "PANTS_PYRIGHT_INTERPRETER_CONSTRAINTS", "fromfile": false, - "help": "Python interpreter constraints for this tool.", + "help": "Python interpreter constraints for Pyright (which is, itself, a NodeJS tool).", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pyoxidizer-interpreter-constraints"], + "scoped_cmd_line_args": ["--pyright-interpreter-constraints"], "target_field_name": null, "typ": "list", "unscoped_cmd_line_args": ["--interpreter-constraints"], @@ -89130,29 +102987,31 @@ { "details": "", "rank": "HARDCODED", - "value": ["CPython>=3.8,<4"] + "value": ["CPython>=3.7,<4"] } ] } - }, + } + ], + "basic": [ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pyoxidizer-console-script=", - "config_key": "console_script", - "default": "pyoxidizer", + "comma_separated_display_args": "--[no-]pyright-skip", + "config_key": "skip", + "default": false, "deprecated_message": null, "deprecation_active": false, - "display_args": ["--pyoxidizer-console-script="], - "env_var": "PANTS_PYOXIDIZER_CONSOLE_SCRIPT", + "display_args": ["--[no-]pyright-skip"], + "env_var": "PANTS_PYRIGHT_SKIP", "fromfile": false, - "help": "The console script for the tool. Using this option is generally preferable to (and mutually exclusive with) specifying an `--entry-point` since console script names have a higher expectation of staying stable across releases of the tool. Usually, you will not want to change this from the default.", + "help": "If true, don't use Pyright when running `pants check`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pyoxidizer-console-script"], + "scoped_cmd_line_args": ["--pyright-skip", "--no-pyright-skip"], "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--console-script"], + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], "value_history": { "ranked_values": [ { @@ -89163,7 +103022,7 @@ { "details": null, "rank": "HARDCODED", - "value": "pyoxidizer" + "value": false } ] } @@ -89171,50 +103030,20 @@ { "choices": null, "comma_separated_choices": null, - "comma_separated_display_args": "--pyoxidizer-entry-point=", - "config_key": "entry_point", - "default": null, - "deprecated_message": null, - "deprecation_active": false, - "display_args": ["--pyoxidizer-entry-point="], - "env_var": "PANTS_PYOXIDIZER_ENTRY_POINT", - "fromfile": false, - "help": "The entry point for the tool. Generally you only want to use this option if the tool does not offer a `--console-script` (which this option is mutually exclusive with). Usually, you will not want to change this from the default.", - "removal_hint": null, - "removal_version": null, - "scoped_cmd_line_args": ["--pyoxidizer-entry-point"], - "target_field_name": null, - "typ": "str", - "unscoped_cmd_line_args": ["--entry-point"], - "value_history": { - "ranked_values": [ - { - "details": null, - "rank": "NONE", - "value": null - } - ] - } - } - ], - "basic": [ - { - "choices": null, - "comma_separated_choices": null, - "comma_separated_display_args": "--pyoxidizer-args=\"[, , ...]\"", + "comma_separated_display_args": "--pyright-args=\"[, , ...]\"", "config_key": "args", "default": [], "deprecated_message": null, "deprecation_active": false, "display_args": [ - "--pyoxidizer-args=\"[, , ...]\"" + "--pyright-args=\"[, , ...]\"" ], - "env_var": "PANTS_PYOXIDIZER_ARGS", + "env_var": "PANTS_PYRIGHT_ARGS", "fromfile": false, - "help": "Arguments to pass directly to PyOxidizer, e.g. `--pyoxidizer-args='--release'`.", + "help": "Arguments to pass directly to Pyright, e.g. `--pyright-args='--version'`.", "removal_hint": null, "removal_version": null, - "scoped_cmd_line_args": ["--pyoxidizer-args"], + "scoped_cmd_line_args": ["--pyright-args"], "target_field_name": null, "typ": "list", "unscoped_cmd_line_args": ["--args"], @@ -89236,10 +103065,10 @@ ], "deprecated": [], "deprecated_scope": null, - "description": "The PyOxidizer utility for packaging Python code in a Rust binary (https://pyoxidizer.readthedocs.io/en/stable/pyoxidizer.html).\n\nUsed with the `pyoxidizer_binary` target.", + "description": "The Pyright utility for typechecking Python code (https://github.com/microsoft/pyright).", "is_goal": false, - "provider": "pants.backend.experimental.python.packaging.pyoxidizer", - "scope": "pyoxidizer" + "provider": "pants.backend.experimental.python.typecheck.pyright", + "scope": "pyright" }, "pytest": { "advanced": [ @@ -89578,7 +103407,7 @@ "display_args": ["--[no-]pytest-skip"], "env_var": "PANTS_PYTEST_SKIP", "fromfile": false, - "help": "If true, don't use Pytest when running `scie-pants-linux-x86_64 test`.", + "help": "If true, don't use Pytest when running `pants test`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--pytest-skip", "--no-pytest-skip"], @@ -89754,7 +103583,7 @@ ], "env_var": "PANTS_PYTHON_RESOLVES", "fromfile": false, - "help": "A mapping of logical names to lockfile paths used in your project.\n\nMany organizations only need a single resolve for their whole project, which is a good default and often the simplest thing to do. However, you may need multiple resolves, such as if you use two conflicting versions of a requirement in your repository.\n\nIf you only need a single resolve, run `scie-pants-linux-x86_64 generate-lockfiles` to generate the lockfile.\n\nIf you need multiple resolves:\n\n 1. Via this option, define multiple resolve names and their lockfile paths. The names should be meaningful to your repository, such as `data-science` or `pants-plugins`.\n 2. Set the default with `[python].default_resolve`.\n 3. Update your `python_requirement` targets with the `resolve` field to declare which resolve they should be available in. They default to `[python].default_resolve`, so you only need to update targets that you want in non-default resolves. (Often you'll set this via the `python_requirements` or `poetry_requirements` target generators)\n 4. Run `scie-pants-linux-x86_64 generate-lockfiles` to generate the lockfiles. If the results aren't what you'd expect, adjust the prior step.\n 5. Update any targets like `python_source` / `python_sources`, `python_test` / `python_tests`, and `pex_binary` which need to set a non-default resolve with the `resolve` field.\n\nIf a target can work with multiple resolves, you can either use the `parametrize` mechanism or manually create a distinct target per resolve. See https://www.pantsbuild.org/v2.18/docs/targets for information about `parametrize`.\n\nFor example:\n\n python_sources(\n resolve=parametrize(\"data-science\", \"web-app\"),\n )\n\nYou can name the lockfile paths what you would like; Pants does not expect a certain file extension or location.\n\nOnly applies if `[python].enable_resolves` is true.", + "help": "A mapping of logical names to lockfile paths used in your project.\n\nMany organizations only need a single resolve for their whole project, which is a good default and often the simplest thing to do. However, you may need multiple resolves, such as if you use two conflicting versions of a requirement in your repository.\n\nIf you only need a single resolve, run `pants generate-lockfiles` to generate the lockfile.\n\nIf you need multiple resolves:\n\n 1. Via this option, define multiple resolve names and their lockfile paths. The names should be meaningful to your repository, such as `data-science` or `pants-plugins`.\n 2. Set the default with `[python].default_resolve`.\n 3. Update your `python_requirement` targets with the `resolve` field to declare which resolve they should be available in. They default to `[python].default_resolve`, so you only need to update targets that you want in non-default resolves. (Often you'll set this via the `python_requirements` or `poetry_requirements` target generators)\n 4. Run `pants generate-lockfiles` to generate the lockfiles. If the results aren't what you'd expect, adjust the prior step.\n 5. Update any targets like `python_source` / `python_sources`, `python_test` / `python_tests`, and `pex_binary` which need to set a non-default resolve with the `resolve` field.\n\nIf a target can work with multiple resolves, you can either use the `parametrize` mechanism or manually create a distinct target per resolve. See https://www.pantsbuild.org/v2.18/docs/targets for information about `parametrize`.\n\nFor example:\n\n python_sources(\n resolve=parametrize(\"data-science\", \"web-app\"),\n )\n\nYou can name the lockfile paths what you would like; Pants does not expect a certain file extension or location.\n\nOnly applies if `[python].enable_resolves` is true.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--python-resolves"], @@ -90507,7 +104336,7 @@ "env_var": "PANTS_PYTHON_REQUIREMENT_CONSTRAINTS", "fromfile": false, "help": "When resolving third-party requirements for your own code (vs. tools you run), use this constraints file to determine which versions to use.\n\nMutually exclusive with `[python].enable_resolves`, which we generally recommend as an improvement over constraints file.\n\nSee https://pip.pypa.io/en/stable/user_guide/#constraints-files for more information on the format of constraint files and how constraints are applied in Pex and pip.\n\nThis only applies when resolving user requirements, rather than tools you run like Black and Pytest. To constrain tools, set `[tool].lockfile`, e.g. `[black].lockfile`.", - "removal_hint": "We encourage instead migrating to `[python].enable_resolves` and `[python].resolves`, which is an improvement over this option. The `[python].resolves` feature ensures that your lockfiles are fully comprehensive, i.e. include all transitive dependencies; uses hashes for better supply chain security; and supports advanced features like VCS and local requirements, along with options `[python].resolves_to_only_binary`.\n\nTo migrate, stop setting `[python].requirement_constraints` and `[python].resolve_all_constraints`, and instead set `[python].enable_resolves` to `true`. Then, run `scie-pants-linux-x86_64 generate-lockfiles`.", + "removal_hint": "We encourage instead migrating to `[python].enable_resolves` and `[python].resolves`, which is an improvement over this option. The `[python].resolves` feature ensures that your lockfiles are fully comprehensive, i.e. include all transitive dependencies; uses hashes for better supply chain security; and supports advanced features like VCS and local requirements, along with options `[python].resolves_to_only_binary`.\n\nTo migrate, stop setting `[python].requirement_constraints` and `[python].resolve_all_constraints`, and instead set `[python].enable_resolves` to `true`. Then, run `pants generate-lockfiles`.", "removal_version": "3.0.0.dev0", "scoped_cmd_line_args": ["--python-requirement-constraints"], "target_field_name": null, @@ -90535,7 +104364,7 @@ "env_var": "PANTS_PYTHON_RESOLVE_ALL_CONSTRAINTS", "fromfile": false, "help": "(Only relevant when using `[python].requirement_constraints.`) If enabled, when resolving requirements, Pants will first resolve your entire constraints file as a single global resolve. Then, if the code uses a subset of your constraints file, Pants will extract the relevant requirements from that global resolve so that only what's actually needed gets used. If disabled, Pants will not use a global resolve and will resolve each subset of your requirements independently.\n\nUsually this option should be enabled because it can result in far fewer resolves.", - "removal_hint": "We encourage instead migrating to `[python].enable_resolves` and `[python].resolves`, which is an improvement over this option. The `[python].resolves` feature ensures that your lockfiles are fully comprehensive, i.e. include all transitive dependencies; uses hashes for better supply chain security; and supports advanced features like VCS and local requirements, along with options `[python].resolves_to_only_binary`.\n\nTo migrate, stop setting `[python].requirement_constraints` and `[python].resolve_all_constraints`, and instead set `[python].enable_resolves` to `true`. Then, run `scie-pants-linux-x86_64 generate-lockfiles`.", + "removal_hint": "We encourage instead migrating to `[python].enable_resolves` and `[python].resolves`, which is an improvement over this option. The `[python].resolves` feature ensures that your lockfiles are fully comprehensive, i.e. include all transitive dependencies; uses hashes for better supply chain security; and supports advanced features like VCS and local requirements, along with options `[python].resolves_to_only_binary`.\n\nTo migrate, stop setting `[python].requirement_constraints` and `[python].resolve_all_constraints`, and instead set `[python].enable_resolves` to `true`. Then, run `pants generate-lockfiles`.", "removal_version": "3.0.0.dev0", "scoped_cmd_line_args": [ "--python-resolve-all-constraints", @@ -90965,7 +104794,7 @@ "display_args": ["--python-infer-init-files="], "env_var": "PANTS_PYTHON_INFER_INIT_FILES", "fromfile": false, - "help": "Infer a target's dependencies on any `__init__.py` files in the packages it is located in (recursively upward in the directory structure).\n\nEven if this is set to `never` or `content_only`, Pants will still always include any ancestor `__init__.py` files in the sandbox. Only, they will not be \"proper\" dependencies, e.g. they will not show up in `scie-pants-linux-x86_64 dependencies` and their own dependencies will not be used.\n\nBy default, Pants only adds a \"proper\" dependency if there is content in the `__init__.py` file. This makes sure that dependencies are added when likely necessary to build, while also avoiding adding unnecessary dependencies. While accurate, those unnecessary dependencies can complicate setting metadata like the `interpreter_constraints` and `resolve` fields.", + "help": "Infer a target's dependencies on any `__init__.py` files in the packages it is located in (recursively upward in the directory structure).\n\nEven if this is set to `never` or `content_only`, Pants will still always include any ancestor `__init__.py` files in the sandbox. Only, they will not be \"proper\" dependencies, e.g. they will not show up in `pants dependencies` and their own dependencies will not be used.\n\nBy default, Pants only adds a \"proper\" dependency if there is content in the `__init__.py` file. This makes sure that dependencies are added when likely necessary to build, while also avoiding adding unnecessary dependencies. While accurate, those unnecessary dependencies can complicate setting metadata like the `interpreter_constraints` and `resolve` fields.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--python-infer-init-files"], @@ -91177,7 +105006,7 @@ "display_args": ["--[no-]python-infer-use-rust-parser"], "env_var": "PANTS_PYTHON_INFER_USE_RUST_PARSER", "fromfile": false, - "help": "Use the new Rust-based, multithreaded, in-process dependency parser.\n\nPants 2.17 introduced a new paradigm to dependency parsing for Python by leveraging a Rust-based parser that's called in the same process as Pants itself, instead of farming out to one-python-process-per-file.\n\nAs a result of the switch, cold-cache performance improved by a factor of about 12x, while hot-cache had no difference. Additionally, Pants can now infer dependencies from Python scripts with syntax errors.\n\nAfter leaving this defaulted to disabled for a release cycle, Pants 2.18 started defaulting to enabling this.\n\nIf you think the new behaviour is causing problems, it is recommended that you run `scie-pants-linux-x86_64 peek :: > before.json` and then `scie-pants-linux-x86_64 --python-infer-use-rust-parser=False peek :: > after.json` and compare the two results.\n\nIf you think there is a bug and need to disable it, please file an issue: https://github.com/pantsbuild/pants/issues/new/choose.", + "help": "Use the new Rust-based, multithreaded, in-process dependency parser.\n\nPants 2.17 introduced a new paradigm to dependency parsing for Python by leveraging a Rust-based parser that's called in the same process as Pants itself, instead of farming out to one-python-process-per-file.\n\nAs a result of the switch, cold-cache performance improved by a factor of about 12x, while hot-cache had no difference. Additionally, Pants can now infer dependencies from Python scripts with syntax errors.\n\nAfter leaving this defaulted to disabled for a release cycle, Pants 2.18 started defaulting to enabling this.\n\nIf you think the new behaviour is causing problems, it is recommended that you run `pants peek :: > before.json` and then `pants --python-infer-use-rust-parser=False peek :: > after.json` and compare the two results.\n\nIf you think there is a bug and need to disable it, please file an issue: https://github.com/pantsbuild/pants/issues/new/choose.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ @@ -91483,8 +105312,8 @@ "value": [] }, { - "details": "", - "rank": "HARDCODED", + "details": "from command-line flag", + "rank": "FLAG", "value": [] } ] @@ -91790,7 +105619,7 @@ "display_args": ["--[no-]pytype-skip"], "env_var": "PANTS_PYTYPE_SKIP", "fromfile": false, - "help": "If true, don't use Pytype when running `scie-pants-linux-x86_64 check`.", + "help": "If true, don't use Pytype when running `pants check`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--pytype-skip", "--no-pytype-skip"], @@ -92055,7 +105884,7 @@ "display_args": ["--[no-]pyupgrade-skip"], "env_var": "PANTS_PYUPGRADE_SKIP", "fromfile": false, - "help": "If true, don't use pyupgrade when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use pyupgrade when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--pyupgrade-skip", "--no-pyupgrade-skip"], @@ -92134,7 +105963,7 @@ "display_args": ["--[no-]regex-lint-skip"], "env_var": "PANTS_REGEX_LINT_SKIP", "fromfile": false, - "help": "If true, don't use regex-lint when running `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use regex-lint when running `pants lint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--regex-lint-skip", "--no-regex-lint-skip"], @@ -92618,7 +106447,7 @@ "display_args": ["--[no-]ruff-skip"], "env_var": "PANTS_RUFF_SKIP", "fromfile": false, - "help": "If true, don't use Ruff when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use Ruff when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--ruff-skip", "--no-ruff-skip"], @@ -92764,6 +106593,129 @@ "provider": "pants.core", "scope": "run" }, + "rust": { + "advanced": [], + "basic": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--rust-toolchain=", + "config_key": "toolchain", + "default": "stable", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--rust-toolchain="], + "env_var": "PANTS_RUST_TOOLCHAIN", + "fromfile": false, + "help": "Name of a Rust toolchain to use for all builds. The toolchain name will be provided to Rustup to find the Toolchain.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--rust-toolchain"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--toolchain"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "stable" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--rust-rustup-search-paths=\"['', '', ...]\"", + "config_key": "rustup_search_paths", + "default": [""], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--rust-rustup-search-paths=\"['', '', ...]\"" + ], + "env_var": "PANTS_RUST_RUSTUP_SEARCH_PATHS", + "fromfile": false, + "help": "A list of paths to search for Rustup.\n\nSpecify absolute paths to directories with the `rustup` binary, e.g. `/usr/bin`. Earlier entries will be searched first. The special string '' will expand to the contents of the PATH env var.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--rust-rustup-search-paths"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--rustup-search-paths"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [""] + } + ] + } + } + ], + "deprecated": [], + "deprecated_scope": null, + "description": "Options for Rust support.", + "is_goal": false, + "provider": "pants.backend.experimental.rust", + "scope": "rust" + }, + "rustfmt": { + "advanced": [], + "basic": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]rustfmt-skip", + "config_key": "skip", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]rustfmt-skip"], + "env_var": "PANTS_RUSTFMT_SKIP", + "fromfile": false, + "help": "If true, don't use rustfmt when running `pants fmt` and `pants lint`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--rustfmt-skip", "--no-rustfmt-skip"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + } + ], + "deprecated": [], + "deprecated_scope": null, + "description": "Rustfmt-specific options.", + "is_goal": false, + "provider": "pants.backend.experimental.rust", + "scope": "rustfmt" + }, "scala": { "advanced": [ { @@ -92850,6 +106802,16 @@ "provider": "pants.backend.experimental.scala", "scope": "scala" }, + "scala-dump-source-analysis": { + "advanced": [], + "basic": [], + "deprecated": [], + "deprecated_scope": null, + "description": "Dump source analysis for scala_source targets.", + "is_goal": true, + "provider": "pants.backend.experimental.scala.debug_goals", + "scope": "scala-dump-source-analysis" + }, "scala-infer": { "advanced": [], "basic": [ @@ -93171,7 +107133,7 @@ "display_args": ["--scalafmt-lockfile="], "env_var": "PANTS_SCALAFMT_LOCKFILE", "fromfile": false, - "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/backend/scala/lint/scalafmt/scalafmt.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `scie-pants-linux-x86_64 jvm-generate-lockfiles --resolve=scalafmt`.", + "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/scala/lint/scalafmt/scalafmt.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=scalafmt`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--scalafmt-lockfile"], @@ -93241,7 +107203,7 @@ "display_args": ["--[no-]scalafmt-skip"], "env_var": "PANTS_SCALAFMT_SKIP", "fromfile": false, - "help": "If true, don't use scalafmt when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use scalafmt when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--scalafmt-skip", "--no-scalafmt-skip"], @@ -93350,7 +107312,7 @@ "display_args": ["--scalapb-lockfile="], "env_var": "PANTS_SCALAPB_LOCKFILE", "fromfile": false, - "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/backend/codegen/protobuf/scala/scalapbc.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `scie-pants-linux-x86_64 jvm-generate-lockfiles --resolve=scalapb`.", + "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/codegen/protobuf/scala/scalapbc.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=scalapb`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--scalapb-lockfile"], @@ -93527,7 +107489,7 @@ "display_args": ["--scalatest-lockfile="], "env_var": "PANTS_SCALATEST_LOCKFILE", "fromfile": false, - "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/backend/scala/subsystems/scalatest.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `scie-pants-linux-x86_64 jvm-generate-lockfiles --resolve=scalatest`.", + "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/scala/subsystems/scalatest.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=scalatest`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--scalatest-lockfile"], @@ -93633,7 +107595,7 @@ "display_args": ["--[no-]scalatest-skip"], "env_var": "PANTS_SCALATEST_SKIP", "fromfile": false, - "help": "If true, don't use Scalatest when running `scie-pants-linux-x86_64 test`.", + "help": "If true, don't use Scalatest when running `pants test`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--scalatest-skip", "--no-scalatest-skip"], @@ -93900,6 +107862,149 @@ "provider": "pants.backend.project_info", "scope": "scc" }, + "scrooge": { + "advanced": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--scrooge-version=", + "config_key": "version", + "default": "21.12.0", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--scrooge-version="], + "env_var": "PANTS_SCROOGE_VERSION", + "fromfile": false, + "help": "Version string for the tool. This is available for substitution in the `[scrooge].artifacts` option by including the string `{version}`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--scrooge-version"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--version"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "21.12.0" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--scrooge-artifacts=\"['', '', ...]\"", + "config_key": "artifacts", + "default": ["com.twitter:scrooge-generator_2.13:{version}"], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--scrooge-artifacts=\"['', '', ...]\""], + "env_var": "PANTS_SCROOGE_ARTIFACTS", + "fromfile": false, + "help": "Artifact requirements for this tool using specified as either the address of a `jvm_artifact` target or, alternatively, as a colon-separated Maven coordinates (e.g., `group:name:version`). For Maven coordinates, the string `{version}` version will be substituted with the value of the `[scrooge].version` option.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--scrooge-artifacts"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--artifacts"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": ["com.twitter:scrooge-generator_2.13:{version}"] + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--scrooge-lockfile=", + "config_key": "lockfile", + "default": "", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--scrooge-lockfile="], + "env_var": "PANTS_SCROOGE_LOCKFILE", + "fromfile": false, + "help": "Path to a lockfile used for installing the tool.\n\nSet to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/codegen/thrift/scrooge/scrooge.default.lockfile.txt for the default lockfile contents.\n\nTo use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=scrooge`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--scrooge-lockfile"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--lockfile"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--scrooge-jvm-options=\"['', '', ...]\"", + "config_key": "jvm_options", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--scrooge-jvm-options=\"['', '', ...]\""], + "env_var": "PANTS_SCROOGE_JVM_OPTIONS", + "fromfile": false, + "help": "List of JVM options to pass to `scrooge` JVM processes.\n\nOptions set here will be added to those set in `[jvm].global_options`. Please check the documentation for the `jvm` subsystem to see what values are accepted here.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--scrooge-jvm-options"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--jvm-options"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + } + ], + "basic": [], + "deprecated": [], + "deprecated_scope": null, + "description": "The Scrooge Thrift IDL compiler (https://twitter.github.io/scrooge/).", + "is_goal": false, + "provider": "pants.backend.experimental.codegen.thrift.scrooge.java", + "scope": "scrooge" + }, "setup-py-generation": { "advanced": [], "basic": [ @@ -94366,7 +108471,7 @@ "display_args": ["--[no-]shell-test-skip"], "env_var": "PANTS_SHELL_TEST_SKIP", "fromfile": false, - "help": "If true, don't use Test with shell scripts when running `scie-pants-linux-x86_64 test`.", + "help": "If true, don't use Test with shell scripts when running `pants test`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--shell-test-skip", "--no-shell-test-skip"], @@ -94641,7 +108746,7 @@ "display_args": ["--[no-]shellcheck-skip"], "env_var": "PANTS_SHELLCHECK_SKIP", "fromfile": false, - "help": "If true, don't use Shellcheck when running `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use Shellcheck when running `pants lint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--shellcheck-skip", "--no-shellcheck-skip"], @@ -94959,7 +109064,7 @@ "display_args": ["--[no-]shfmt-skip"], "env_var": "PANTS_SHFMT_SKIP", "fromfile": false, - "help": "If true, don't use shfmt when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use shfmt when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--shfmt-skip", "--no-shfmt-skip"], @@ -95213,7 +109318,7 @@ "display_args": ["--[no-]shunit2-skip"], "env_var": "PANTS_SHUNIT2_SKIP", "fromfile": false, - "help": "If true, don't use shunit2 when running `scie-pants-linux-x86_64 test`.", + "help": "If true, don't use shunit2 when running `pants test`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--shunit2-skip", "--no-shunit2-skip"], @@ -95420,7 +109525,7 @@ "display_args": ["--[no-]spectral-skip"], "env_var": "PANTS_SPECTRAL_SKIP", "fromfile": false, - "help": "If true, don't use Spectral when running `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use Spectral when running `pants lint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--spectral-skip", "--no-spectral-skip"], @@ -95865,6 +109970,347 @@ "provider": "pants.core", "scope": "tailor" }, + "taplo": { + "advanced": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--taplo-version=", + "config_key": "version", + "default": "0.8.0", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--taplo-version="], + "env_var": "PANTS_TAPLO_VERSION", + "fromfile": false, + "help": "Use this version of Taplo.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--taplo-version"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--version"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "0.8.0" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--taplo-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", + "default": [ + "0.8.0|macos_arm64|79c1691c3c46be981fa0cec930ec9a6d6c4ffd27272d37d1885514ce59bd8ccf|3661689", + "0.8.0|macos_x86_64|a1917f1b9168cb4f7d579422dcdf9c733028d873963d8fa3a6f499e41719c502|3926263", + "0.8.0|linux_arm64|a6a94482f125c21090593f94cad23df099c4924f5b9620cda4a8653527c097a1|3995383", + "0.8.0|linux_x86_64|3703294fac37ca9a9f76308f9f98c3939ccb7588f8972acec68a48d7a10d8ee5|4123593" + ], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--taplo-known-versions=\"['', '', ...]\"" + ], + "env_var": "PANTS_TAPLO_KNOWN_VERSIONS", + "fromfile": false, + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--taplo-known-versions"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--known-versions"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [ + "0.8.0|macos_arm64|79c1691c3c46be981fa0cec930ec9a6d6c4ffd27272d37d1885514ce59bd8ccf|3661689", + "0.8.0|macos_x86_64|a1917f1b9168cb4f7d579422dcdf9c733028d873963d8fa3a6f499e41719c502|3926263", + "0.8.0|linux_arm64|a6a94482f125c21090593f94cad23df099c4924f5b9620cda4a8653527c097a1|3995383", + "0.8.0|linux_x86_64|3703294fac37ca9a9f76308f9f98c3939ccb7588f8972acec68a48d7a10d8ee5|4123593" + ] + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--taplo-url-template=", + "config_key": "url_template", + "default": "https://github.com/tamasfe/taplo/releases/download/{version}/taplo-{platform}.gz", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--taplo-url-template="], + "env_var": "PANTS_TAPLO_URL_TEMPLATE", + "fromfile": false, + "help": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a `file:$abspath` URL (e.g. `file:/this/is/absolute`, possibly by [templating the buildroot in a config file](https://www.pantsbuild.org/v2.18/docs/options#config-file-entries)).\n\nUse `{version}` to have the value from `--version` substituted, and `{platform}` to have a value from `--url-platform-mapping` substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--taplo-url-template"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--url-template"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "https://github.com/tamasfe/taplo/releases/download/{version}/taplo-{platform}.gz" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--taplo-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"", + "config_key": "url_platform_mapping", + "default": { + "linux_arm64": "linux-aarch64", + "linux_x86_64": "linux-x86_64", + "macos_arm64": "darwin-aarch64", + "macos_x86_64": "darwin-x86_64" + }, + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--taplo-url-platform-mapping=\"{'key1': val1, 'key2': val2, ...}\"" + ], + "env_var": "PANTS_TAPLO_URL_PLATFORM_MAPPING", + "fromfile": false, + "help": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool.\n\nIn `--url-template`, anytime the `{platform}` string is used, Pants will determine the current platform, and substitute `{platform}` with the respective value from your dictionary.\n\nFor example, if you define `{\"macos_x86_64\": \"apple-darwin\", \"linux_x86_64\": \"unknown-linux\"}`, and run Pants on Linux with an intel architecture, then `{platform}` will be substituted in the `--url-template` option with `unknown-linux`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--taplo-url-platform-mapping"], + "target_field_name": null, + "typ": "dict", + "unscoped_cmd_line_args": ["--url-platform-mapping"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": {} + }, + { + "details": "", + "rank": "HARDCODED", + "value": { + "linux_arm64": "linux-aarch64", + "linux_x86_64": "linux-x86_64", + "macos_arm64": "darwin-aarch64", + "macos_x86_64": "darwin-x86_64" + } + } + ] + } + }, + { + "choices": ["error", "warning"], + "comma_separated_choices": "error, warning", + "comma_separated_display_args": "--taplo-use-unsupported-version=", + "config_key": "use_unsupported_version", + "default": "error", + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--taplo-use-unsupported-version=" + ], + "env_var": "PANTS_TAPLO_USE_UNSUPPORTED_VERSION", + "fromfile": false, + "help": "\nWhat action to take in case the requested version of Taplo is not supported.\n\nSupported Taplo versions: unspecified\n", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--taplo-use-unsupported-version"], + "target_field_name": null, + "typ": "UnsupportedVersionUsage", + "unscoped_cmd_line_args": ["--use-unsupported-version"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "error" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]taplo-config-discovery", + "config_key": "config_discovery", + "default": true, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]taplo-config-discovery"], + "env_var": "PANTS_TAPLO_CONFIG_DISCOVERY", + "fromfile": false, + "help": "If true, Pants will include a `taplo.toml` or `.taplo.toml` file found in the build root during a run.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--taplo-config-discovery", + "--no-taplo-config-discovery" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": [ + "--config-discovery", + "--no-config-discovery" + ], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--taplo-glob-pattern=\"['', '', ...]\"", + "config_key": "glob_pattern", + "default": ["**/*.toml", "!.taplo.toml", "!taplo.toml"], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--taplo-glob-pattern=\"['', '', ...]\""], + "env_var": "PANTS_TAPLO_GLOB_PATTERN", + "fromfile": false, + "help": "A list of glob patterns of files to include/exclude in formatting relative to the build root. Leading exclamation points exclude an item from formatting.\n\nExample:\n\n [\"**/*.toml\", \"**/pyproject.toml\", \"!pyproject.toml\"]\n\nThe default includes all files with a `.toml` extension recursively and excludes `.taplo.toml` or `taplo.toml` files in the build root.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--taplo-glob-pattern"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--glob-pattern"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": ["**/*.toml", "!.taplo.toml", "!taplo.toml"] + } + ] + } + } + ], + "basic": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]taplo-skip", + "config_key": "skip", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]taplo-skip"], + "env_var": "PANTS_TAPLO_SKIP", + "fromfile": false, + "help": "If true, don't use Taplo when running `pants fmt` and `pants lint`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--taplo-skip", "--no-taplo-skip"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--taplo-args=\"[, , ...]\"", + "config_key": "args", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--taplo-args=\"[, , ...]\""], + "env_var": "PANTS_TAPLO_ARGS", + "fromfile": false, + "help": "Arguments to pass directly to Taplo, e.g. `--taplo-args='--option=align_entries=false'`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--taplo-args"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--args"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + } + ], + "deprecated": [], + "deprecated_scope": null, + "description": "An autoformatter for TOML files (https://taplo.tamasfe.dev/)", + "is_goal": false, + "provider": "pants.backend.tools.taplo", + "scope": "taplo" + }, "terraform-fmt": { "advanced": [], "basic": [ @@ -95879,7 +110325,7 @@ "display_args": ["--[no-]terraform-fmt-skip"], "env_var": "PANTS_TERRAFORM_FMT_SKIP", "fromfile": false, - "help": "If true, don't use `terraform fmt` when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use `terraform fmt` when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ @@ -96027,6 +110473,263 @@ "provider": "pants.backend.experimental.terraform", "scope": "terraform-hcl2-parser" }, + "terraform-tfsec": { + "advanced": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--terraform-tfsec-version=", + "config_key": "version", + "default": "v1.28.1", + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--terraform-tfsec-version="], + "env_var": "PANTS_TERRAFORM_TFSEC_VERSION", + "fromfile": false, + "help": "Use this version of tfsec.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--terraform-tfsec-version"], + "target_field_name": null, + "typ": "str", + "unscoped_cmd_line_args": ["--version"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "v1.28.1" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--terraform-tfsec-known-versions=\"['', '', ...]\"", + "config_key": "known_versions", + "default": [ + "v1.28.1|linux_x86_64|57b902b31da3eed12448a4e82a8aca30477e4bcd1bf99e3f65310eae0889f88d|26427634" + ], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--terraform-tfsec-known-versions=\"['', '', ...]\"" + ], + "env_var": "PANTS_TERRAFORM_TFSEC_KNOWN_VERSIONS", + "fromfile": false, + "help": "\nKnown versions to verify downloads against.\n\nEach element is a pipe-separated string of `version|platform|sha256|length` or\n`version|platform|sha256|length|url_override`, where:\n\n - `version` is the version string\n - `platform` is one of `[linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]`\n - `sha256` is the 64-character hex representation of the expected sha256\n digest of the download file, as emitted by `shasum -a 256`\n - `length` is the expected length of the download file in bytes, as emitted by\n `wc -c`\n - (Optional) `url_override` is a specific url to use instead of the normally\n generated url for this version\n\nE.g., `3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813`.\nand `3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz`.\n\nValues are space-stripped, so pipes can be indented for readability if necessary.\n", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--terraform-tfsec-known-versions"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--known-versions"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [ + "v1.28.1|linux_x86_64|57b902b31da3eed12448a4e82a8aca30477e4bcd1bf99e3f65310eae0889f88d|26427634" + ] + } + ] + } + }, + { + "choices": ["error", "warning"], + "comma_separated_choices": "error, warning", + "comma_separated_display_args": "--terraform-tfsec-use-unsupported-version=", + "config_key": "use_unsupported_version", + "default": "error", + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--terraform-tfsec-use-unsupported-version=" + ], + "env_var": "PANTS_TERRAFORM_TFSEC_USE_UNSUPPORTED_VERSION", + "fromfile": false, + "help": "\nWhat action to take in case the requested version of tfsec is not supported.\n\nSupported tfsec versions: unspecified\n", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--terraform-tfsec-use-unsupported-version"], + "target_field_name": null, + "typ": "UnsupportedVersionUsage", + "unscoped_cmd_line_args": ["--use-unsupported-version"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": "error" + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--terraform-tfsec-config=", + "config_key": "config", + "default": null, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--terraform-tfsec-config="], + "env_var": "PANTS_TERRAFORM_TFSEC_CONFIG", + "fromfile": false, + "help": "Path to the tfsec config file (https://aquasecurity.github.io/tfsec/latest/guides/configuration/config/)\n\nSetting this option will disable `[terraform-tfsec].config_discovery`. Use this option if the config is located in a non-standard location.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--terraform-tfsec-config"], + "target_field_name": null, + "typ": "file_option", + "unscoped_cmd_line_args": ["--config"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]terraform-tfsec-config-discovery", + "config_key": "config_discovery", + "default": true, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]terraform-tfsec-config-discovery"], + "env_var": "PANTS_TERRAFORM_TFSEC_CONFIG_DISCOVERY", + "fromfile": false, + "help": "If true, Pants will include all relevant config files during runs (`.tfsec/config.json` or `.tfsec/config.yml`). Note that you will have to tell Pants to include this file by adding `\"!.tfsec/\"` to `[global].pants_ignore.add`.\n\nUse `[terraform-tfsec].config` instead if your config is in a non-standard location.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--terraform-tfsec-config-discovery", + "--no-terraform-tfsec-config-discovery" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": [ + "--config-discovery", + "--no-config-discovery" + ], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true + } + ] + } + } + ], + "basic": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]terraform-tfsec-skip", + "config_key": "skip", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]terraform-tfsec-skip"], + "env_var": "PANTS_TERRAFORM_TFSEC_SKIP", + "fromfile": false, + "help": "If true, don't use tfsec when running `pants lint`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--terraform-tfsec-skip", + "--no-terraform-tfsec-skip" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--terraform-tfsec-args=\"[, , ...]\"", + "config_key": "args", + "default": [], + "deprecated_message": null, + "deprecation_active": false, + "display_args": [ + "--terraform-tfsec-args=\"[, , ...]\"" + ], + "env_var": "PANTS_TERRAFORM_TFSEC_ARGS", + "fromfile": false, + "help": "Arguments to pass directly to tfsec, e.g. `--terraform-tfsec-args='--minimum-severity=MEDIUM'`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--terraform-tfsec-args"], + "target_field_name": null, + "typ": "list", + "unscoped_cmd_line_args": ["--args"], + "value_history": { + "ranked_values": [ + { + "details": "", + "rank": "NONE", + "value": [] + }, + { + "details": "", + "rank": "HARDCODED", + "value": [] + } + ] + } + } + ], + "deprecated": [], + "deprecated_scope": null, + "description": "tfsec by Aqua Security", + "is_goal": false, + "provider": "pants.backend.experimental.terraform.lint.tfsec", + "scope": "terraform-tfsec" + }, "terraform-validate": { "advanced": [], "basic": [ @@ -96041,7 +110744,7 @@ "display_args": ["--[no-]terraform-validate-skip"], "env_var": "PANTS_TERRAFORM_VALIDATE_SKIP", "fromfile": false, - "help": "If true, don't use `terraform validate` when running `scie-pants-linux-x86_64 check`.", + "help": "If true, don't use `terraform validate` when running `pants check`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": [ @@ -96903,7 +111606,7 @@ "display_args": ["--[no-]twine-skip"], "env_var": "PANTS_TWINE_SKIP", "fromfile": false, - "help": "If true, don't use Twine when running `scie-pants-linux-x86_64 publish`.", + "help": "If true, don't use Twine when running `pants publish`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--twine-skip", "--no-twine-skip"], @@ -97131,6 +111834,86 @@ "provider": "pants.goal", "scope": "version" }, + "visibility": { + "advanced": [], + "basic": [ + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]visibility-skip", + "config_key": "skip", + "default": false, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]visibility-skip"], + "env_var": "PANTS_VISIBILITY_SKIP", + "fromfile": false, + "help": "If true, don't use Visibility Rules when running `pants lint`.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": ["--visibility-skip", "--no-visibility-skip"], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--skip", "--no-skip"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": false + } + ] + } + }, + { + "choices": null, + "comma_separated_choices": null, + "comma_separated_display_args": "--[no-]visibility-enforce", + "config_key": "enforce", + "default": true, + "deprecated_message": null, + "deprecation_active": false, + "display_args": ["--[no-]visibility-enforce"], + "env_var": "PANTS_VISIBILITY_ENFORCE", + "fromfile": false, + "help": "Visibility rules are enforced whenever dependencies are calculated unless `enforce` is set to false.", + "removal_hint": null, + "removal_version": null, + "scoped_cmd_line_args": [ + "--visibility-enforce", + "--no-visibility-enforce" + ], + "target_field_name": null, + "typ": "bool", + "unscoped_cmd_line_args": ["--enforce", "--no-enforce"], + "value_history": { + "ranked_values": [ + { + "details": null, + "rank": "NONE", + "value": null + }, + { + "details": null, + "rank": "HARDCODED", + "value": true + } + ] + } + } + ], + "deprecated": [], + "deprecated_scope": null, + "description": "Options for the visibility rules implementation of the dependency rules API.", + "is_goal": false, + "provider": "pants.backend.experimental.visibility", + "scope": "visibility" + }, "workunit-logger": { "advanced": [], "basic": [ @@ -97519,7 +112302,7 @@ "display_args": ["--[no-]yamllint-skip"], "env_var": "PANTS_YAMLLINT_SKIP", "fromfile": false, - "help": "If true, don't use Yamllint when running `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use Yamllint when running `pants lint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--yamllint-skip", "--no-yamllint-skip"], @@ -97788,7 +112571,7 @@ "display_args": ["--[no-]yapf-skip"], "env_var": "PANTS_YAPF_SKIP", "fromfile": false, - "help": "If true, don't use yapf when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`.", + "help": "If true, don't use yapf when running `pants fmt` and `pants lint`.", "removal_hint": null, "removal_version": null, "scoped_cmd_line_args": ["--yapf-skip", "--no-yapf-skip"], diff --git a/versioned_docs/version-2.18/reference/subsystems/add-trailing-comma.mdx b/versioned_docs/version-2.18/reference/subsystems/add-trailing-comma.mdx index a22ca149f..ba816f8e1 100644 --- a/versioned_docs/version-2.18/reference/subsystems/add-trailing-comma.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/add-trailing-comma.mdx @@ -25,7 +25,7 @@ Config section: `[add-trailing-comma]` default_repr={`False`} > -If true, don't use add-trailing-comma when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`. +If true, don't use add-trailing-comma when running `pants fmt` and `pants lint`. diff --git a/versioned_docs/version-2.18/reference/subsystems/autoflake.mdx b/versioned_docs/version-2.18/reference/subsystems/autoflake.mdx index 1c9d22656..eb7c84e6a 100644 --- a/versioned_docs/version-2.18/reference/subsystems/autoflake.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/autoflake.mdx @@ -25,7 +25,7 @@ Config section: `[autoflake]` default_repr={`False`} > -If true, don't use Autoflake when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`. +If true, don't use Autoflake when running `pants fmt` and `pants lint`. diff --git a/versioned_docs/version-2.18/reference/subsystems/avro.mdx b/versioned_docs/version-2.18/reference/subsystems/avro.mdx new file mode 100644 index 000000000..72284f71f --- /dev/null +++ b/versioned_docs/version-2.18/reference/subsystems/avro.mdx @@ -0,0 +1,44 @@ +--- +title: avro +--- + +import Option from "@site/src/components/reference/Option"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +General Avro codegen settings. + +Backend: `pants.backend.experimental.codegen.avro.java` + +Config section: `[avro]` + + + +## Basic options + +None + +## Advanced options + +### `tailor` + + + +## Deprecated options + +None + +## Related subsystems + +None + + diff --git a/versioned_docs/version-2.18/reference/subsystems/bandit.mdx b/versioned_docs/version-2.18/reference/subsystems/bandit.mdx index a8d5dffe0..77f52d8b3 100644 --- a/versioned_docs/version-2.18/reference/subsystems/bandit.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/bandit.mdx @@ -25,7 +25,7 @@ Config section: `[bandit]` default_repr={`False`} > -If true, don't use Bandit when running `scie-pants-linux-x86_64 lint`. +If true, don't use Bandit when running `pants lint`. diff --git a/versioned_docs/version-2.18/reference/subsystems/black.mdx b/versioned_docs/version-2.18/reference/subsystems/black.mdx index 944c31d44..0ce457141 100644 --- a/versioned_docs/version-2.18/reference/subsystems/black.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/black.mdx @@ -25,7 +25,7 @@ Config section: `[black]` default_repr={`False`} > -If true, don't use Black when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`. +If true, don't use Black when running `pants fmt` and `pants lint`. diff --git a/versioned_docs/version-2.18/reference/subsystems/buf.mdx b/versioned_docs/version-2.18/reference/subsystems/buf.mdx index ee41083d5..3c2d6e7f5 100644 --- a/versioned_docs/version-2.18/reference/subsystems/buf.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/buf.mdx @@ -25,7 +25,7 @@ Config section: `[buf]` default_repr={`False`} > -If true, don't use Buf when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`. +If true, don't use Buf when running `pants fmt` and `pants lint`. @@ -37,7 +37,7 @@ If true, don't use Buf when running `scie-pants-linux-x86_64 fmt` and `scie default_repr={`False`} > -If true, don't use Buf when running `scie-pants-linux-x86_64 lint`. +If true, don't use Buf when running `pants lint`. diff --git a/versioned_docs/version-2.18/reference/subsystems/build-deprecations-fixer.mdx b/versioned_docs/version-2.18/reference/subsystems/build-deprecations-fixer.mdx index 7f54c6e7f..663dbb00f 100644 --- a/versioned_docs/version-2.18/reference/subsystems/build-deprecations-fixer.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/build-deprecations-fixer.mdx @@ -30,7 +30,7 @@ Config section: `[build-deprecations-fixer]` -If true, don't use BUILD Deprecations Fixer when running `scie-pants-linux-x86_64 fix`. +If true, don't use BUILD Deprecations Fixer when running `pants fix`. diff --git a/versioned_docs/version-2.18/reference/subsystems/buildifier.mdx b/versioned_docs/version-2.18/reference/subsystems/buildifier.mdx index 08ced40f3..fde15877b 100644 --- a/versioned_docs/version-2.18/reference/subsystems/buildifier.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/buildifier.mdx @@ -32,7 +32,7 @@ Config section: `[buildifier]` default_repr={`False`} > -If true, don't use Buildifier when running `scie-pants-linux-x86_64 fmt`. +If true, don't use Buildifier when running `pants fmt`. diff --git a/versioned_docs/version-2.18/reference/subsystems/cc-external.mdx b/versioned_docs/version-2.18/reference/subsystems/cc-external.mdx new file mode 100644 index 000000000..8ac6aa4cf --- /dev/null +++ b/versioned_docs/version-2.18/reference/subsystems/cc-external.mdx @@ -0,0 +1,200 @@ +--- +title: cc-external +--- + +import Option from "@site/src/components/reference/Option"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +Options for downloaded `cc` toolchain. + +Backend: `pants.backend.experimental.cc` + +Config section: `[cc-external]` + + + +## Basic options + +### `include_directories` + + + +### `c_compiler_flags` + + + +### `c_definitions` + + + +### `cxx_compiler_flags` + + + +### `cxx_definitions` + + + +### `c_executable` + + + +### `cxx_executable` + + + +## Advanced options + +### `version` + + + +### `known_versions` + + + +### `url_template` + + + +### `url_platform_mapping` + + + +### `use_unsupported_version` + + + +## Deprecated options + +None + +## Related subsystems + +None + + diff --git a/versioned_docs/version-2.18/reference/subsystems/cc-infer.mdx b/versioned_docs/version-2.18/reference/subsystems/cc-infer.mdx new file mode 100644 index 000000000..8f239ccd9 --- /dev/null +++ b/versioned_docs/version-2.18/reference/subsystems/cc-infer.mdx @@ -0,0 +1,60 @@ +--- +title: cc-infer +--- + +import Option from "@site/src/components/reference/Option"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +Options controlling which dependencies will be inferred for CC targets. + +Backend: `pants.backend.experimental.cc` + +Config section: `[cc-infer]` + + + +## Basic options + +### `includes` + + + +### `include_from_source_roots` + + + +## Advanced options + +None + +## Deprecated options + +None + +## Related subsystems + +None + + diff --git a/versioned_docs/version-2.18/reference/subsystems/cc.mdx b/versioned_docs/version-2.18/reference/subsystems/cc.mdx new file mode 100644 index 000000000..72f65ab5c --- /dev/null +++ b/versioned_docs/version-2.18/reference/subsystems/cc.mdx @@ -0,0 +1,134 @@ +--- +title: cc +--- + +import Option from "@site/src/components/reference/Option"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +Options for a system-discovered `cc` toolchain. + +Backend: `pants.backend.experimental.cc` + +Config section: `[cc]` + + + +## Basic options + +### `include_directories` + + + +### `c_compiler_flags` + + + +### `c_definitions` + + + +### `cxx_compiler_flags` + + + +### `cxx_definitions` + + + +### `c_executable` + + + +### `cxx_executable` + + + +### `search_paths` + + + +## Advanced options + +None + +## Deprecated options + +None + +## Related subsystems + +None + + diff --git a/versioned_docs/version-2.18/reference/subsystems/clang-format.mdx b/versioned_docs/version-2.18/reference/subsystems/clang-format.mdx new file mode 100644 index 000000000..0708dac19 --- /dev/null +++ b/versioned_docs/version-2.18/reference/subsystems/clang-format.mdx @@ -0,0 +1,128 @@ +--- +title: clang-format +--- + +import Option from "@site/src/components/reference/Option"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +The clang-format utility for formatting C/C++ (and others) code (https://clang.llvm.org/docs/ClangFormat.html). The clang-format binaries are retrieved from PyPi (https://pypi.org/project/clang-format/). + +Backend: `pants.backend.experimental.cc.lint.clangformat` + +Config section: `[clang-format]` + + + +## Basic options + +### `skip` + + + +### `args` + + + +## Advanced options + +### `install_from_resolve` + + + +### `requirements` + + + +### `interpreter_constraints` + + + +### `console_script` + + + +### `entry_point` + + + +## Deprecated options + +None + +## Related subsystems + +None + + diff --git a/versioned_docs/version-2.18/reference/subsystems/cli.mdx b/versioned_docs/version-2.18/reference/subsystems/cli.mdx index c73472624..e471cf70f 100644 --- a/versioned_docs/version-2.18/reference/subsystems/cli.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/cli.mdx @@ -35,7 +35,7 @@ green = "fmt lint check" all-changed = "--changed-since=HEAD --changed-dependents=transitive" ``` -This would allow you to run `scie-pants-linux-x86_64 green all-changed`, which is shorthand for `scie-pants-linux-x86_64 fmt lint check --changed-since=HEAD --changed-dependents=transitive`. +This would allow you to run `pants green all-changed`, which is shorthand for `pants fmt lint check --changed-since=HEAD --changed-dependents=transitive`. Notice: this option must be placed in a config file (e.g. `pants.toml` or `pantsrc`) to have any effect. diff --git a/versioned_docs/version-2.18/reference/subsystems/cue.mdx b/versioned_docs/version-2.18/reference/subsystems/cue.mdx new file mode 100644 index 000000000..ecac59ef6 --- /dev/null +++ b/versioned_docs/version-2.18/reference/subsystems/cue.mdx @@ -0,0 +1,142 @@ +--- +title: cue +--- + +import Option from "@site/src/components/reference/Option"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +CUE is an open-source data validation language and inference engine with its roots in logic programming. Although the language is not a general-purpose programming language, it has many applications, such as data validation, data templating, configuration, querying, code generation and even scripting. The inference engine can be used to validate data in code or to include it as part of a code generation pipeline. + +Homepage: https://cuelang.org/ + +Backend: `pants.backend.experimental.cue` + +Config section: `[cue]` + + + +## Basic options + +### `skip` + + + +### `args` + + + +## Advanced options + +### `version` + + + +### `known_versions` + + + +### `url_template` + + + +### `url_platform_mapping` + + + +### `use_unsupported_version` + + + +## Deprecated options + +None + +## Related subsystems + +None + + diff --git a/versioned_docs/version-2.18/reference/subsystems/docformatter.mdx b/versioned_docs/version-2.18/reference/subsystems/docformatter.mdx index 67f8a4ebe..13d82114f 100644 --- a/versioned_docs/version-2.18/reference/subsystems/docformatter.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/docformatter.mdx @@ -25,7 +25,7 @@ Config section: `[docformatter]` default_repr={`False`} > -If true, don't use docformatter when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`. +If true, don't use docformatter when running `pants fmt` and `pants lint`. diff --git a/versioned_docs/version-2.18/reference/subsystems/docker.mdx b/versioned_docs/version-2.18/reference/subsystems/docker.mdx index e92de9e64..2afeabfa8 100644 --- a/versioned_docs/version-2.18/reference/subsystems/docker.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/docker.mdx @@ -202,7 +202,7 @@ Additional arguments to use for `docker run` invocations. Example: ``` -$ scie-pants-linux-x86_64 run --docker-run-args="-p 127.0.0.1:80:8080/tcp --name demo" src/example:image -- [image entrypoint args] +$ pants run --docker-run-args="-p 127.0.0.1:80:8080/tcp --name demo" src/example:image -- [image entrypoint args] ``` To provide the top-level options to the `docker` client, use `[docker].env_vars` to configure the [Environment variables](https://docs.docker.com/engine/reference/commandline/cli/#environment-variables) as appropriate. diff --git a/versioned_docs/version-2.18/reference/subsystems/environments-preview.mdx b/versioned_docs/version-2.18/reference/subsystems/environments-preview.mdx index 334ff85af..e37785df8 100644 --- a/versioned_docs/version-2.18/reference/subsystems/environments-preview.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/environments-preview.mdx @@ -9,7 +9,7 @@ import styles from "@site/src/components/reference/styles.module.css"; A highly experimental subsystem to allow setting environment variables and executable search paths for different environments, e.g. macOS vs. Linux. -Backend: `` +Backend: `pants.backend.experimental.javascript` Config section: `[environments-preview]` diff --git a/versioned_docs/version-2.18/reference/subsystems/flake8.mdx b/versioned_docs/version-2.18/reference/subsystems/flake8.mdx index 0d397351c..9444290ca 100644 --- a/versioned_docs/version-2.18/reference/subsystems/flake8.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/flake8.mdx @@ -25,7 +25,7 @@ Config section: `[flake8]` default_repr={`False`} > -If true, don't use Flake8 when running `scie-pants-linux-x86_64 lint`. +If true, don't use Flake8 when running `pants lint`. diff --git a/versioned_docs/version-2.18/reference/subsystems/go-test.mdx b/versioned_docs/version-2.18/reference/subsystems/go-test.mdx index f3fd9afb4..125a6e1b5 100644 --- a/versioned_docs/version-2.18/reference/subsystems/go-test.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/go-test.mdx @@ -88,7 +88,7 @@ This option is similar to the `go test -coverpkg` option, but without support cu default_repr={`False`} > -If true, don't use Go test binary when running `scie-pants-linux-x86_64 test`. +If true, don't use Go test binary when running `pants test`. diff --git a/versioned_docs/version-2.18/reference/subsystems/go-vet.mdx b/versioned_docs/version-2.18/reference/subsystems/go-vet.mdx new file mode 100644 index 000000000..01dce103e --- /dev/null +++ b/versioned_docs/version-2.18/reference/subsystems/go-vet.mdx @@ -0,0 +1,44 @@ +--- +title: go-vet +--- + +import Option from "@site/src/components/reference/Option"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +`go vet`-specific options. + +Backend: `pants.backend.experimental.go.lint.vet` + +Config section: `[go-vet]` + + + +## Basic options + +### `skip` + + + +## Advanced options + +None + +## Deprecated options + +None + +## Related subsystems + +None + + diff --git a/versioned_docs/version-2.18/reference/subsystems/gofmt.mdx b/versioned_docs/version-2.18/reference/subsystems/gofmt.mdx index 0e737213e..b4fad02eb 100644 --- a/versioned_docs/version-2.18/reference/subsystems/gofmt.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/gofmt.mdx @@ -25,7 +25,7 @@ Config section: `[gofmt]` default_repr={`False`} > -If true, don't use gofmt when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`. +If true, don't use gofmt when running `pants fmt` and `pants lint`. diff --git a/versioned_docs/version-2.18/reference/subsystems/golangci-lint.mdx b/versioned_docs/version-2.18/reference/subsystems/golangci-lint.mdx new file mode 100644 index 000000000..141967921 --- /dev/null +++ b/versioned_docs/version-2.18/reference/subsystems/golangci-lint.mdx @@ -0,0 +1,168 @@ +--- +title: golangci-lint +--- + +import Option from "@site/src/components/reference/Option"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +A fast Go linters runner + +Backend: `pants.backend.experimental.go.lint.golangci_lint` + +Config section: `[golangci-lint]` + + + +## Basic options + +### `skip` + + + +### `args` + + + +## Advanced options + +### `version` + + + +### `known_versions` + + + +### `url_template` + + + +### `url_platform_mapping` + + + +### `use_unsupported_version` + + + +### `config` + + + +### `config_discovery` + + + +## Deprecated options + +None + +## Related subsystems + +None + + diff --git a/versioned_docs/version-2.18/reference/subsystems/google-java-format.mdx b/versioned_docs/version-2.18/reference/subsystems/google-java-format.mdx index 4860b700b..9ca5b6f36 100644 --- a/versioned_docs/version-2.18/reference/subsystems/google-java-format.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/google-java-format.mdx @@ -25,7 +25,7 @@ Config section: `[google-java-format]` default_repr={`False`} > -If true, don't use Google Java Format when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`. +If true, don't use Google Java Format when running `pants fmt` and `pants lint`. @@ -77,9 +77,9 @@ Artifact requirements for this tool using specified as either the address of a ` Path to a lockfile used for installing the tool. -Set to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/backend/java/lint/google_java_format/google_java_format.default.lockfile.txt for the default lockfile contents. +Set to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/java/lint/google_java_format/google_java_format.default.lockfile.txt for the default lockfile contents. -To use a custom lockfile, set this option to a file path relative to the build root, then run `scie-pants-linux-x86_64 jvm-generate-lockfiles --resolve=google-java-format`. +To use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=google-java-format`. diff --git a/versioned_docs/version-2.18/reference/subsystems/hadolint.mdx b/versioned_docs/version-2.18/reference/subsystems/hadolint.mdx index 623fdcf4c..3b385d923 100644 --- a/versioned_docs/version-2.18/reference/subsystems/hadolint.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/hadolint.mdx @@ -25,7 +25,7 @@ Config section: `[hadolint]` default_repr={`False`} > -If true, don't use Hadolint when running `scie-pants-linux-x86_64 lint`. +If true, don't use Hadolint when running `pants lint`. diff --git a/versioned_docs/version-2.18/reference/subsystems/helm-unittest.mdx b/versioned_docs/version-2.18/reference/subsystems/helm-unittest.mdx index 87edf0793..6a3fe929a 100644 --- a/versioned_docs/version-2.18/reference/subsystems/helm-unittest.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/helm-unittest.mdx @@ -50,7 +50,7 @@ Output type used for the test report. default_repr={`False`} > -If true, don't use helmunittestsubsystem when running `scie-pants-linux-x86_64 test`. +If true, don't use helmunittestsubsystem when running `pants test`. diff --git a/versioned_docs/version-2.18/reference/subsystems/isort.mdx b/versioned_docs/version-2.18/reference/subsystems/isort.mdx index aa711f7e0..1e40640dc 100644 --- a/versioned_docs/version-2.18/reference/subsystems/isort.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/isort.mdx @@ -25,7 +25,7 @@ Config section: `[isort]` default_repr={`False`} > -If true, don't use isort when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`. +If true, don't use isort when running `pants fmt` and `pants lint`. diff --git a/versioned_docs/version-2.18/reference/subsystems/jarjar.mdx b/versioned_docs/version-2.18/reference/subsystems/jarjar.mdx index f63784701..35997694e 100644 --- a/versioned_docs/version-2.18/reference/subsystems/jarjar.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/jarjar.mdx @@ -78,9 +78,9 @@ Artifact requirements for this tool using specified as either the address of a ` Path to a lockfile used for installing the tool. -Set to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/jvm/shading/jarjar.default.lockfile.txt for the default lockfile contents. +Set to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/jvm/shading/jarjar.default.lockfile.txt for the default lockfile contents. -To use a custom lockfile, set this option to a file path relative to the build root, then run `scie-pants-linux-x86_64 jvm-generate-lockfiles --resolve=jarjar`. +To use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=jarjar`. diff --git a/versioned_docs/version-2.18/reference/subsystems/java-avro.mdx b/versioned_docs/version-2.18/reference/subsystems/java-avro.mdx new file mode 100644 index 000000000..ff765b0f8 --- /dev/null +++ b/versioned_docs/version-2.18/reference/subsystems/java-avro.mdx @@ -0,0 +1,86 @@ +--- +title: java-avro +--- + +import Option from "@site/src/components/reference/Option"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +Avro IDL compiler (https://avro.apache.org/). + +Backend: `pants.backend.experimental.codegen.avro.java` + +Config section: `[java-avro]` + + + +## Basic options + +None + +## Advanced options + +### `version` + + + +### `artifacts` + + + +### `lockfile` + + + +### `jvm_options` + + + +## Deprecated options + +None + +## Related subsystems + +None + + diff --git a/versioned_docs/version-2.18/reference/subsystems/java-thrift.mdx b/versioned_docs/version-2.18/reference/subsystems/java-thrift.mdx new file mode 100644 index 000000000..155fdb6da --- /dev/null +++ b/versioned_docs/version-2.18/reference/subsystems/java-thrift.mdx @@ -0,0 +1,44 @@ +--- +title: java-thrift +--- + +import Option from "@site/src/components/reference/Option"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +Options specific to generating Java from Thrift using the Apache Thrift generator + +Backend: `pants.backend.experimental.codegen.thrift.apache.java` + +Config section: `[java-thrift]` + + + +## Basic options + +### `options` + + + +## Advanced options + +None + +## Deprecated options + +None + +## Related subsystems + +None + + diff --git a/versioned_docs/version-2.18/reference/subsystems/junit.mdx b/versioned_docs/version-2.18/reference/subsystems/junit.mdx index 176b620e7..4db695c13 100644 --- a/versioned_docs/version-2.18/reference/subsystems/junit.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/junit.mdx @@ -37,7 +37,7 @@ Arguments to pass directly to JUnit, e.g. `--junit-args='--disable-ansi-colors'` default_repr={`False`} > -If true, don't use JUnit when running `scie-pants-linux-x86_64 test`. +If true, don't use JUnit when running `pants test`. @@ -77,9 +77,9 @@ Artifact requirements for this tool using specified as either the address of a ` Path to a lockfile used for installing the tool. -Set to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/jvm/test/junit.default.lockfile.txt for the default lockfile contents. +Set to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/jvm/test/junit.default.lockfile.txt for the default lockfile contents. -To use a custom lockfile, set this option to a file path relative to the build root, then run `scie-pants-linux-x86_64 jvm-generate-lockfiles --resolve=junit`. +To use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=junit`. diff --git a/versioned_docs/version-2.18/reference/subsystems/ktlint.mdx b/versioned_docs/version-2.18/reference/subsystems/ktlint.mdx index 62f027480..d2b13d146 100644 --- a/versioned_docs/version-2.18/reference/subsystems/ktlint.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/ktlint.mdx @@ -25,7 +25,7 @@ Config section: `[ktlint]` default_repr={`False`} > -If true, don't use Ktlint when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`. +If true, don't use Ktlint when running `pants fmt` and `pants lint`. @@ -65,9 +65,9 @@ Artifact requirements for this tool using specified as either the address of a ` Path to a lockfile used for installing the tool. -Set to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/backend/kotlin/lint/ktlint/ktlint.lock for the default lockfile contents. +Set to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/kotlin/lint/ktlint/ktlint.lock for the default lockfile contents. -To use a custom lockfile, set this option to a file path relative to the build root, then run `scie-pants-linux-x86_64 jvm-generate-lockfiles --resolve=ktlint`. +To use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=ktlint`. diff --git a/versioned_docs/version-2.18/reference/subsystems/kubeconform.mdx b/versioned_docs/version-2.18/reference/subsystems/kubeconform.mdx new file mode 100644 index 000000000..b312da332 --- /dev/null +++ b/versioned_docs/version-2.18/reference/subsystems/kubeconform.mdx @@ -0,0 +1,189 @@ +--- +title: kubeconform +--- + +import Option from "@site/src/components/reference/Option"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +Kubeconform tool (https://github.com/yannh/kubeconform) + +Backend: `pants.backend.experimental.helm.check.kubeconform` + +Config section: `[kubeconform]` + + + +## Basic options + +### `skip` + + + +### `output_type` + + + +### `summary` + + + +### `verbose` + + + +## Advanced options + +### `version` + + + +### `known_versions` + + + +### `url_template` + + + +### `url_platform_mapping` + + + +### `use_unsupported_version` + + + +### `concurrency` + + + +### `schema_locations` + + + +## Deprecated options + +None + +## Related subsystems + +None + + diff --git a/versioned_docs/version-2.18/reference/subsystems/mypy.mdx b/versioned_docs/version-2.18/reference/subsystems/mypy.mdx index 089475143..a73a2a2e4 100644 --- a/versioned_docs/version-2.18/reference/subsystems/mypy.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/mypy.mdx @@ -25,7 +25,7 @@ Config section: `[mypy]` default_repr={`False`} > -If true, don't use MyPy when running `scie-pants-linux-x86_64 check`. +If true, don't use MyPy when running `pants check`. diff --git a/versioned_docs/version-2.18/reference/subsystems/nodejs-infer.mdx b/versioned_docs/version-2.18/reference/subsystems/nodejs-infer.mdx index 73e90450c..29d1ba80f 100644 --- a/versioned_docs/version-2.18/reference/subsystems/nodejs-infer.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/nodejs-infer.mdx @@ -9,7 +9,7 @@ import styles from "@site/src/components/reference/styles.module.css"; Options controlling which dependencies will be inferred for javascript targets. -Backend: `pants.backend.experimental.openapi.lint.spectral` +Backend: `pants.backend.experimental.javascript` Config section: `[nodejs-infer]` diff --git a/versioned_docs/version-2.18/reference/subsystems/nodejs-test.mdx b/versioned_docs/version-2.18/reference/subsystems/nodejs-test.mdx new file mode 100644 index 000000000..3ab2832ee --- /dev/null +++ b/versioned_docs/version-2.18/reference/subsystems/nodejs-test.mdx @@ -0,0 +1,93 @@ +--- +title: nodejs-test +--- + +import Option from "@site/src/components/reference/Option"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +Options for package.json script configured tests. + +Your preferred test runner is configured via the `package.json#scripts.test` field. + +The only expectation from pants is that the `test` script can accept a variadic number of path arguments, relative to the package.json, and that any configuration files are `file` dependencies to the `package_json`. + +Simple example: + +Consider a directory-layout: + +├── BUILD +├── src/ +│ ├── BUILD +│ ├── test/ +│ │ ├── BUILD +│ │ └── index.test.js +│ └── index.js +└── package.json + +where package.json contains + +# package.json + +{ +... +"scripts": { +"test": "mocha" +}, +"devDependencies: { +... +} +} + +Executing `pants test src/test/index.test.js` will cause the equivalent of `mocha src/test/index.test.js` to run. + +Backend: `pants.backend.experimental.javascript` + +Config section: `[nodejs-test]` + + + +## Basic options + +### `skip` + + + +## Advanced options + +### `coverage_output_dir` + + + +## Deprecated options + +None + +## Related subsystems + +None + + diff --git a/versioned_docs/version-2.18/reference/subsystems/nodejs.mdx b/versioned_docs/version-2.18/reference/subsystems/nodejs.mdx index 436271a89..348e16a4a 100644 --- a/versioned_docs/version-2.18/reference/subsystems/nodejs.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/nodejs.mdx @@ -9,7 +9,7 @@ import styles from "@site/src/components/reference/styles.module.css"; The Node.js Javascript runtime (including Corepack). -Backend: `pants.backend.experimental.openapi.lint.spectral` +Backend: `pants.backend.experimental.javascript` Config section: `[nodejs]` @@ -136,7 +136,7 @@ Specifying a resolve name is optional. If unspecified, the default resolve name Example: An npm lockfile located at `src/js/package/package-lock.json' will result in a resolve named `js.package`, assuming src/ is a source root. -Run `scie-pants-linux-x86_64 generate-lockfiles` to generate the lockfile(s). +Run `pants generate-lockfiles` to generate the lockfile(s). diff --git a/versioned_docs/version-2.18/reference/subsystems/openapi-generator.mdx b/versioned_docs/version-2.18/reference/subsystems/openapi-generator.mdx new file mode 100644 index 000000000..f9005b00c --- /dev/null +++ b/versioned_docs/version-2.18/reference/subsystems/openapi-generator.mdx @@ -0,0 +1,86 @@ +--- +title: openapi-generator +--- + +import Option from "@site/src/components/reference/Option"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +The OpenAPI Code generator (https://openapi-generator.tech) + +Backend: `pants.backend.experimental.openapi.codegen.java` + +Config section: `[openapi-generator]` + + + +## Basic options + +None + +## Advanced options + +### `version` + + + +### `artifacts` + + + +### `lockfile` + + + +### `jvm_options` + + + +## Deprecated options + +None + +## Related subsystems + +None + + diff --git a/versioned_docs/version-2.18/reference/subsystems/preamble.mdx b/versioned_docs/version-2.18/reference/subsystems/preamble.mdx index 8577e4ba8..27fb5eb3f 100644 --- a/versioned_docs/version-2.18/reference/subsystems/preamble.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/preamble.mdx @@ -29,7 +29,7 @@ Config section: `[preamble]` default_repr={`False`} > -If true, don't use preamble when running `scie-pants-linux-x86_64 fmt`. +If true, don't use preamble when running `pants fmt`. diff --git a/versioned_docs/version-2.18/reference/subsystems/prettier.mdx b/versioned_docs/version-2.18/reference/subsystems/prettier.mdx new file mode 100644 index 000000000..1d1776038 --- /dev/null +++ b/versioned_docs/version-2.18/reference/subsystems/prettier.mdx @@ -0,0 +1,80 @@ +--- +title: prettier +--- + +import Option from "@site/src/components/reference/Option"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +The Prettier utility for formatting JS/TS (and others) code (https://prettier.io/). + +Backend: `pants.backend.experimental.javascript.lint.prettier` + +Config section: `[prettier]` + + + +## Basic options + +### `skip` + + + +### `args` + + + +## Advanced options + +### `version` + + + +### `install_from_resolve` + + + +## Deprecated options + +None + +## Related subsystems + +None + + diff --git a/versioned_docs/version-2.18/reference/subsystems/protobuf-java-grpc.mdx b/versioned_docs/version-2.18/reference/subsystems/protobuf-java-grpc.mdx index 03dd94b1f..3545a5c9a 100644 --- a/versioned_docs/version-2.18/reference/subsystems/protobuf-java-grpc.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/protobuf-java-grpc.mdx @@ -55,9 +55,9 @@ Artifact requirements for this tool using specified as either the address of a ` Path to a lockfile used for installing the tool. -Set to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/backend/codegen/protobuf/java/grpc-java.default.lockfile.txt for the default lockfile contents. +Set to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/codegen/protobuf/java/grpc-java.default.lockfile.txt for the default lockfile contents. -To use a custom lockfile, set this option to a file path relative to the build root, then run `scie-pants-linux-x86_64 jvm-generate-lockfiles --resolve=protobuf-java-grpc`. +To use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=protobuf-java-grpc`. diff --git a/versioned_docs/version-2.18/reference/subsystems/pydocstyle.mdx b/versioned_docs/version-2.18/reference/subsystems/pydocstyle.mdx index c9fe69e53..acc718d99 100644 --- a/versioned_docs/version-2.18/reference/subsystems/pydocstyle.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/pydocstyle.mdx @@ -25,7 +25,7 @@ Config section: `[pydocstyle]` default_repr={`False`} > -If true, don't use Pydocstyle when running `scie-pants-linux-x86_64 lint`. +If true, don't use Pydocstyle when running `pants lint`. @@ -139,7 +139,7 @@ Path to a Pydocstyle config file (http://www.pydocstyle.org/en/stable/usage.html If true, Pants will include any relevant config files during runs (`setup.cfg`, `tox.ini`, `.pydocstyle`, `.pydocstyle.ini`, `.pydocstylerc`, `.pydocstylerc.ini`, and `pyproject.toml`) searching for the configuration file in this particular order. -Please note that even though `pydocstyle` keeps looking for a configuration file up the directory tree until one is found, Pants will only search for the config files in the repository root (from where you would normally run the `` command). +Please note that even though `pydocstyle` keeps looking for a configuration file up the directory tree until one is found, Pants will only search for the config files in the repository root (from where you would normally run the `` command). Use `[pydocstyle].config` instead if your config is in a non-standard location. diff --git a/versioned_docs/version-2.18/reference/subsystems/pyenv-python-provider.mdx b/versioned_docs/version-2.18/reference/subsystems/pyenv-python-provider.mdx new file mode 100644 index 000000000..979e9779a --- /dev/null +++ b/versioned_docs/version-2.18/reference/subsystems/pyenv-python-provider.mdx @@ -0,0 +1,145 @@ +--- +title: pyenv-python-provider +--- + +import Option from "@site/src/components/reference/Option"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +A subsystem for Pants-provided Python leveraging pyenv (https://github.com/pyenv/pyenv). + +Enabling this subsystem will switch Pants from trying to find an appropriate Python on your system to using pyenv to install the correct Python(s). + +The Pythons provided by Pyenv will be used to run any "user" code (your Python code as well as any Python-based tools you use, like black or pylint). The Pythons are also read-only to ensure they remain hermetic across runs of different tools and code. + +The Pythons themselves are stored in your `named_caches_dir`: https://www.pantsbuild.org/docs/reference-global#named_caches_dir under `pyenv/versions/`. Wiping the relevant version directory (with `sudo rm -rf`) will force a re-install of Python. This may be necessary after changing something about the underlying system which changes the compiled Python, such as installing an optional-at-build-time dependency like `liblzma-dev` (which is used for the optional module `lzma`). + +By default, the subsystem does not pass any optimization flags to the Python compilation process. Doing so would increase the time it takes to install a single Python by about an order of magnitude (E.g. ~2.5 minutes to ~26 minutes). + +Backend: `pants.backend.python.providers.experimental.pyenv` + +Config section: `[pyenv-python-provider]` + + + +## Basic options + +### `installation_extra_env_vars` + + + +## Advanced options + +### `version` + + + +### `known_versions` + + + +### `url_template` + + + +### `url_platform_mapping` + + + +### `use_unsupported_version` + + + +## Deprecated options + +None + +## Related subsystems + +None + + diff --git a/versioned_docs/version-2.18/reference/subsystems/pylint.mdx b/versioned_docs/version-2.18/reference/subsystems/pylint.mdx index 24e514922..71b11c51e 100644 --- a/versioned_docs/version-2.18/reference/subsystems/pylint.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/pylint.mdx @@ -25,7 +25,7 @@ Config section: `[pylint]` default_repr={`False`} > -If true, don't use Pylint when running `scie-pants-linux-x86_64 lint`. +If true, don't use Pylint when running `pants lint`. diff --git a/versioned_docs/version-2.18/reference/subsystems/pyright.mdx b/versioned_docs/version-2.18/reference/subsystems/pyright.mdx new file mode 100644 index 000000000..da7fa961f --- /dev/null +++ b/versioned_docs/version-2.18/reference/subsystems/pyright.mdx @@ -0,0 +1,92 @@ +--- +title: pyright +--- + +import Option from "@site/src/components/reference/Option"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +The Pyright utility for typechecking Python code (https://github.com/microsoft/pyright). + +Backend: `pants.backend.experimental.python.typecheck.pyright` + +Config section: `[pyright]` + + + +## Basic options + +### `skip` + + + +### `args` + + + +## Advanced options + +### `version` + + + +### `install_from_resolve` + + + +### `interpreter_constraints` + + + +## Deprecated options + +None + +## Related subsystems + +None + + diff --git a/versioned_docs/version-2.18/reference/subsystems/pytest.mdx b/versioned_docs/version-2.18/reference/subsystems/pytest.mdx index e9da9da04..d8a59d6a2 100644 --- a/versioned_docs/version-2.18/reference/subsystems/pytest.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/pytest.mdx @@ -51,7 +51,7 @@ NOTE: Enabling `pytest-xdist` can cause high-level scoped fixtures (for example default_repr={`False`} > -If true, don't use Pytest when running `scie-pants-linux-x86_64 test`. +If true, don't use Pytest when running `pants test`. diff --git a/versioned_docs/version-2.18/reference/subsystems/python-infer.mdx b/versioned_docs/version-2.18/reference/subsystems/python-infer.mdx index a26783884..21d901feb 100644 --- a/versioned_docs/version-2.18/reference/subsystems/python-infer.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/python-infer.mdx @@ -94,7 +94,7 @@ If `--assets` is True, treat valid-looking strings with at least this many forwa Infer a target's dependencies on any `__init__.py` files in the packages it is located in (recursively upward in the directory structure). -Even if this is set to `never` or `content_only`, Pants will still always include any ancestor `__init__.py` files in the sandbox. Only, they will not be "proper" dependencies, e.g. they will not show up in `scie-pants-linux-x86_64 dependencies` and their own dependencies will not be used. +Even if this is set to `never` or `content_only`, Pants will still always include any ancestor `__init__.py` files in the sandbox. Only, they will not be "proper" dependencies, e.g. they will not show up in `pants dependencies` and their own dependencies will not be used. By default, Pants only adds a "proper" dependency if there is content in the `__init__.py` file. This makes sure that dependencies are added when likely necessary to build, while also avoiding adding unnecessary dependencies. While accurate, those unnecessary dependencies can complicate setting metadata like the `interpreter_constraints` and `resolve` fields. @@ -199,7 +199,7 @@ As a result of the switch, cold-cache performance improved by a factor of about After leaving this defaulted to disabled for a release cycle, Pants 2.18 started defaulting to enabling this. -If you think the new behaviour is causing problems, it is recommended that you run `scie-pants-linux-x86_64 peek :: > before.json` and then `scie-pants-linux-x86_64 --python-infer-use-rust-parser=False peek :: > after.json` and compare the two results. +If you think the new behaviour is causing problems, it is recommended that you run `pants peek :: > before.json` and then `pants --python-infer-use-rust-parser=False peek :: > after.json` and compare the two results. If you think there is a bug and need to disable it, please file an issue: https://github.com/pantsbuild/pants/issues/new/choose. diff --git a/versioned_docs/version-2.18/reference/subsystems/python.mdx b/versioned_docs/version-2.18/reference/subsystems/python.mdx index 149f16997..7115f21a8 100644 --- a/versioned_docs/version-2.18/reference/subsystems/python.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/python.mdx @@ -107,14 +107,14 @@ A mapping of logical names to lockfile paths used in your project. Many organizations only need a single resolve for their whole project, which is a good default and often the simplest thing to do. However, you may need multiple resolves, such as if you use two conflicting versions of a requirement in your repository. -If you only need a single resolve, run `scie-pants-linux-x86_64 generate-lockfiles` to generate the lockfile. +If you only need a single resolve, run `pants generate-lockfiles` to generate the lockfile. If you need multiple resolves: 1. Via this option, define multiple resolve names and their lockfile paths. The names should be meaningful to your repository, such as `data-science` or `pants-plugins`. 2. Set the default with `[python].default_resolve`. 3. Update your `python_requirement` targets with the `resolve` field to declare which resolve they should be available in. They default to `[python].default_resolve`, so you only need to update targets that you want in non-default resolves. (Often you'll set this via the `python_requirements` or `poetry_requirements` target generators) -4. Run `scie-pants-linux-x86_64 generate-lockfiles` to generate the lockfiles. If the results aren't what you'd expect, adjust the prior step. +4. Run `pants generate-lockfiles` to generate the lockfiles. If the results aren't what you'd expect, adjust the prior step. 5. Update any targets like `python_source` / `python_sources`, `python_test` / `python_tests`, and `pex_binary` which need to set a non-default resolve with the `resolve` field. If a target can work with multiple resolves, you can either use the `parametrize` mechanism or manually create a distinct target per resolve. See https://www.pantsbuild.org/v2.18/docs/targets for information about `parametrize`. @@ -416,7 +416,7 @@ If another targets address is in conflict with the created lockfile target, it w env_repr='PANTS_PYTHON_REQUIREMENT_CONSTRAINTS' default_repr={`None`} removal_version='3.0.0.dev0' - removal_hint={'We encourage instead migrating to `[python].enable_resolves` and `[python].resolves`, which is an improvement over this option. The `[python].resolves` feature ensures that your lockfiles are fully comprehensive, i.e. include all transitive dependencies; uses hashes for better supply chain security; and supports advanced features like VCS and local requirements, along with options `[python].resolves_to_only_binary`.

To migrate, stop setting `[python].requirement_constraints` and `[python].resolve_all_constraints`, and instead set `[python].enable_resolves` to `true`. Then, run `scie-pants-linux-x86_64 generate-lockfiles`.'} + removal_hint={'We encourage instead migrating to `[python].enable_resolves` and `[python].resolves`, which is an improvement over this option. The `[python].resolves` feature ensures that your lockfiles are fully comprehensive, i.e. include all transitive dependencies; uses hashes for better supply chain security; and supports advanced features like VCS and local requirements, along with options `[python].resolves_to_only_binary`.

To migrate, stop setting `[python].requirement_constraints` and `[python].resolve_all_constraints`, and instead set `[python].enable_resolves` to `true`. Then, run `pants generate-lockfiles`.'} > When resolving third-party requirements for your own code (vs. tools you run), use this constraints file to determine which versions to use. @@ -436,7 +436,7 @@ This only applies when resolving user requirements, rather than tools you run li env_repr='PANTS_PYTHON_RESOLVE_ALL_CONSTRAINTS' default_repr={`True`} removal_version='3.0.0.dev0' - removal_hint={'We encourage instead migrating to `[python].enable_resolves` and `[python].resolves`, which is an improvement over this option. The `[python].resolves` feature ensures that your lockfiles are fully comprehensive, i.e. include all transitive dependencies; uses hashes for better supply chain security; and supports advanced features like VCS and local requirements, along with options `[python].resolves_to_only_binary`.

To migrate, stop setting `[python].requirement_constraints` and `[python].resolve_all_constraints`, and instead set `[python].enable_resolves` to `true`. Then, run `scie-pants-linux-x86_64 generate-lockfiles`.'} + removal_hint={'We encourage instead migrating to `[python].enable_resolves` and `[python].resolves`, which is an improvement over this option. The `[python].resolves` feature ensures that your lockfiles are fully comprehensive, i.e. include all transitive dependencies; uses hashes for better supply chain security; and supports advanced features like VCS and local requirements, along with options `[python].resolves_to_only_binary`.

To migrate, stop setting `[python].requirement_constraints` and `[python].resolve_all_constraints`, and instead set `[python].enable_resolves` to `true`. Then, run `pants generate-lockfiles`.'} > (Only relevant when using `[python].requirement_constraints.`) If enabled, when resolving requirements, Pants will first resolve your entire constraints file as a single global resolve. Then, if the code uses a subset of your constraints file, Pants will extract the relevant requirements from that global resolve so that only what's actually needed gets used. If disabled, Pants will not use a global resolve and will resolve each subset of your requirements independently. diff --git a/versioned_docs/version-2.18/reference/subsystems/pytype.mdx b/versioned_docs/version-2.18/reference/subsystems/pytype.mdx index 506e2da7f..48a78b0a1 100644 --- a/versioned_docs/version-2.18/reference/subsystems/pytype.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/pytype.mdx @@ -25,7 +25,7 @@ Config section: `[pytype]` default_repr={`False`} > -If true, don't use Pytype when running `scie-pants-linux-x86_64 check`. +If true, don't use Pytype when running `pants check`. diff --git a/versioned_docs/version-2.18/reference/subsystems/pyupgrade.mdx b/versioned_docs/version-2.18/reference/subsystems/pyupgrade.mdx index a8142f056..3dee179a0 100644 --- a/versioned_docs/version-2.18/reference/subsystems/pyupgrade.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/pyupgrade.mdx @@ -25,7 +25,7 @@ Config section: `[pyupgrade]` default_repr={`False`} > -If true, don't use pyupgrade when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`. +If true, don't use pyupgrade when running `pants fmt` and `pants lint`. diff --git a/versioned_docs/version-2.18/reference/subsystems/regex-lint.mdx b/versioned_docs/version-2.18/reference/subsystems/regex-lint.mdx index a919e6ff4..20d8d1542 100644 --- a/versioned_docs/version-2.18/reference/subsystems/regex-lint.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/regex-lint.mdx @@ -29,7 +29,7 @@ Config section: `[regex-lint]` default_repr={`False`} > -If true, don't use regex-lint when running `scie-pants-linux-x86_64 lint`. +If true, don't use regex-lint when running `pants lint`. diff --git a/versioned_docs/version-2.18/reference/subsystems/ruff.mdx b/versioned_docs/version-2.18/reference/subsystems/ruff.mdx index f7c858ef1..7f5388d07 100644 --- a/versioned_docs/version-2.18/reference/subsystems/ruff.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/ruff.mdx @@ -25,7 +25,7 @@ Config section: `[ruff]` default_repr={`False`} > -If true, don't use Ruff when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`. +If true, don't use Ruff when running `pants fmt` and `pants lint`. diff --git a/versioned_docs/version-2.18/reference/subsystems/rust.mdx b/versioned_docs/version-2.18/reference/subsystems/rust.mdx new file mode 100644 index 000000000..3f8ebf401 --- /dev/null +++ b/versioned_docs/version-2.18/reference/subsystems/rust.mdx @@ -0,0 +1,58 @@ +--- +title: rust +--- + +import Option from "@site/src/components/reference/Option"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +Options for Rust support. + +Backend: `pants.backend.experimental.rust` + +Config section: `[rust]` + + + +## Basic options + +### `toolchain` + + + +### `rustup_search_paths` + + + +## Advanced options + +None + +## Deprecated options + +None + +## Related subsystems + +None + + diff --git a/versioned_docs/version-2.18/reference/subsystems/rustfmt.mdx b/versioned_docs/version-2.18/reference/subsystems/rustfmt.mdx new file mode 100644 index 000000000..2d7dccbd5 --- /dev/null +++ b/versioned_docs/version-2.18/reference/subsystems/rustfmt.mdx @@ -0,0 +1,44 @@ +--- +title: rustfmt +--- + +import Option from "@site/src/components/reference/Option"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +Rustfmt-specific options. + +Backend: `pants.backend.experimental.rust` + +Config section: `[rustfmt]` + + + +## Basic options + +### `skip` + + + +## Advanced options + +None + +## Deprecated options + +None + +## Related subsystems + +None + + diff --git a/versioned_docs/version-2.18/reference/subsystems/scalafmt.mdx b/versioned_docs/version-2.18/reference/subsystems/scalafmt.mdx index e46eef232..e9677ae82 100644 --- a/versioned_docs/version-2.18/reference/subsystems/scalafmt.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/scalafmt.mdx @@ -25,7 +25,7 @@ Config section: `[scalafmt]` default_repr={`False`} > -If true, don't use scalafmt when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`. +If true, don't use scalafmt when running `pants fmt` and `pants lint`. @@ -65,9 +65,9 @@ Artifact requirements for this tool using specified as either the address of a ` Path to a lockfile used for installing the tool. -Set to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/backend/scala/lint/scalafmt/scalafmt.default.lockfile.txt for the default lockfile contents. +Set to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/scala/lint/scalafmt/scalafmt.default.lockfile.txt for the default lockfile contents. -To use a custom lockfile, set this option to a file path relative to the build root, then run `scie-pants-linux-x86_64 jvm-generate-lockfiles --resolve=scalafmt`. +To use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=scalafmt`. diff --git a/versioned_docs/version-2.18/reference/subsystems/scalapb.mdx b/versioned_docs/version-2.18/reference/subsystems/scalapb.mdx index 053de1cb9..cb44dee87 100644 --- a/versioned_docs/version-2.18/reference/subsystems/scalapb.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/scalapb.mdx @@ -67,9 +67,9 @@ Artifact requirements for this tool using specified as either the address of a ` Path to a lockfile used for installing the tool. -Set to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/backend/codegen/protobuf/scala/scalapbc.default.lockfile.txt for the default lockfile contents. +Set to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/codegen/protobuf/scala/scalapbc.default.lockfile.txt for the default lockfile contents. -To use a custom lockfile, set this option to a file path relative to the build root, then run `scie-pants-linux-x86_64 jvm-generate-lockfiles --resolve=scalapb`. +To use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=scalapb`. diff --git a/versioned_docs/version-2.18/reference/subsystems/scalatest.mdx b/versioned_docs/version-2.18/reference/subsystems/scalatest.mdx index 3e73a054f..3eb3b9a57 100644 --- a/versioned_docs/version-2.18/reference/subsystems/scalatest.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/scalatest.mdx @@ -39,7 +39,7 @@ See https://www.scalatest.org/user_guide/using_the_runner for supported argument default_repr={`False`} > -If true, don't use Scalatest when running `scie-pants-linux-x86_64 test`. +If true, don't use Scalatest when running `pants test`. @@ -79,9 +79,9 @@ Artifact requirements for this tool using specified as either the address of a ` Path to a lockfile used for installing the tool. -Set to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/backend/scala/subsystems/scalatest.default.lockfile.txt for the default lockfile contents. +Set to the string `` to use a lockfile provided by Pants, so long as you have not changed the `--version` option. See https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/scala/subsystems/scalatest.default.lockfile.txt for the default lockfile contents. -To use a custom lockfile, set this option to a file path relative to the build root, then run `scie-pants-linux-x86_64 jvm-generate-lockfiles --resolve=scalatest`. +To use a custom lockfile, set this option to a file path relative to the build root, then run `pants jvm-generate-lockfiles --resolve=scalatest`. diff --git a/versioned_docs/version-2.18/reference/subsystems/scrooge.mdx b/versioned_docs/version-2.18/reference/subsystems/scrooge.mdx new file mode 100644 index 000000000..039a42ab2 --- /dev/null +++ b/versioned_docs/version-2.18/reference/subsystems/scrooge.mdx @@ -0,0 +1,86 @@ +--- +title: scrooge +--- + +import Option from "@site/src/components/reference/Option"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +The Scrooge Thrift IDL compiler (https://twitter.github.io/scrooge/). + +Backend: `pants.backend.experimental.codegen.thrift.scrooge.java` + +Config section: `[scrooge]` + + + +## Basic options + +None + +## Advanced options + +### `version` + + + +### `artifacts` + + + +### `lockfile` + + + +### `jvm_options` + + + +## Deprecated options + +None + +## Related subsystems + +None + + diff --git a/versioned_docs/version-2.18/reference/subsystems/shell-test.mdx b/versioned_docs/version-2.18/reference/subsystems/shell-test.mdx index 3c748d702..1a371c907 100644 --- a/versioned_docs/version-2.18/reference/subsystems/shell-test.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/shell-test.mdx @@ -25,7 +25,7 @@ Config section: `[shell-test]` default_repr={`False`} > -If true, don't use Test with shell scripts when running `scie-pants-linux-x86_64 test`. +If true, don't use Test with shell scripts when running `pants test`. diff --git a/versioned_docs/version-2.18/reference/subsystems/shellcheck.mdx b/versioned_docs/version-2.18/reference/subsystems/shellcheck.mdx index 822d54955..09fe7d8d1 100644 --- a/versioned_docs/version-2.18/reference/subsystems/shellcheck.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/shellcheck.mdx @@ -25,7 +25,7 @@ Config section: `[shellcheck]` default_repr={`False`} > -If true, don't use Shellcheck when running `scie-pants-linux-x86_64 lint`. +If true, don't use Shellcheck when running `pants lint`. diff --git a/versioned_docs/version-2.18/reference/subsystems/shfmt.mdx b/versioned_docs/version-2.18/reference/subsystems/shfmt.mdx index b28e0433d..1050b09a8 100644 --- a/versioned_docs/version-2.18/reference/subsystems/shfmt.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/shfmt.mdx @@ -25,7 +25,7 @@ Config section: `[shfmt]` default_repr={`False`} > -If true, don't use shfmt when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`. +If true, don't use shfmt when running `pants fmt` and `pants lint`. diff --git a/versioned_docs/version-2.18/reference/subsystems/shunit2.mdx b/versioned_docs/version-2.18/reference/subsystems/shunit2.mdx index 74fccd0df..510f62cc5 100644 --- a/versioned_docs/version-2.18/reference/subsystems/shunit2.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/shunit2.mdx @@ -25,7 +25,7 @@ Config section: `[shunit2]` default_repr={`False`} > -If true, don't use shunit2 when running `scie-pants-linux-x86_64 test`. +If true, don't use shunit2 when running `pants test`. diff --git a/versioned_docs/version-2.18/reference/subsystems/spectral.mdx b/versioned_docs/version-2.18/reference/subsystems/spectral.mdx index 2f9588306..a5ab244bd 100644 --- a/versioned_docs/version-2.18/reference/subsystems/spectral.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/spectral.mdx @@ -25,7 +25,7 @@ Config section: `[spectral]` default_repr={`False`} > -If true, don't use Spectral when running `scie-pants-linux-x86_64 lint`. +If true, don't use Spectral when running `pants lint`. diff --git a/versioned_docs/version-2.18/reference/subsystems/taplo.mdx b/versioned_docs/version-2.18/reference/subsystems/taplo.mdx new file mode 100644 index 000000000..738c34fa5 --- /dev/null +++ b/versioned_docs/version-2.18/reference/subsystems/taplo.mdx @@ -0,0 +1,172 @@ +--- +title: taplo +--- + +import Option from "@site/src/components/reference/Option"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +An autoformatter for TOML files (https://taplo.tamasfe.dev/) + +Backend: `pants.backend.tools.taplo` + +Config section: `[taplo]` + + + +## Basic options + +### `skip` + + + +### `args` + + + +## Advanced options + +### `version` + + + +### `known_versions` + + + +### `url_template` + + + +### `url_platform_mapping` + + + +### `use_unsupported_version` + + + +### `config_discovery` + + + +### `glob_pattern` + + + +## Deprecated options + +None + +## Related subsystems + +None + + diff --git a/versioned_docs/version-2.18/reference/subsystems/terraform-fmt.mdx b/versioned_docs/version-2.18/reference/subsystems/terraform-fmt.mdx index 968e542ad..c675ed16b 100644 --- a/versioned_docs/version-2.18/reference/subsystems/terraform-fmt.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/terraform-fmt.mdx @@ -25,7 +25,7 @@ Config section: `[terraform-fmt]` default_repr={`False`} > -If true, don't use `terraform fmt` when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`. +If true, don't use `terraform fmt` when running `pants fmt` and `pants lint`. diff --git a/versioned_docs/version-2.18/reference/subsystems/terraform-tfsec.mdx b/versioned_docs/version-2.18/reference/subsystems/terraform-tfsec.mdx new file mode 100644 index 000000000..e14374312 --- /dev/null +++ b/versioned_docs/version-2.18/reference/subsystems/terraform-tfsec.mdx @@ -0,0 +1,138 @@ +--- +title: terraform-tfsec +--- + +import Option from "@site/src/components/reference/Option"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +tfsec by Aqua Security + +Backend: `pants.backend.experimental.terraform.lint.tfsec` + +Config section: `[terraform-tfsec]` + + + +## Basic options + +### `skip` + + + +### `args` + + + +## Advanced options + +### `version` + + + +### `known_versions` + + + +### `use_unsupported_version` + + + +### `config` + + + +### `config_discovery` + + + +## Deprecated options + +None + +## Related subsystems + +None + + diff --git a/versioned_docs/version-2.18/reference/subsystems/terraform-validate.mdx b/versioned_docs/version-2.18/reference/subsystems/terraform-validate.mdx index a84bf5b6c..e7686bc2f 100644 --- a/versioned_docs/version-2.18/reference/subsystems/terraform-validate.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/terraform-validate.mdx @@ -25,7 +25,7 @@ Config section: `[terraform-validate]` default_repr={`False`} > -If true, don't use `terraform validate` when running `scie-pants-linux-x86_64 check`. +If true, don't use `terraform validate` when running `pants check`. diff --git a/versioned_docs/version-2.18/reference/subsystems/twine.mdx b/versioned_docs/version-2.18/reference/subsystems/twine.mdx index 7fb4fe588..b4fa8e1b4 100644 --- a/versioned_docs/version-2.18/reference/subsystems/twine.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/twine.mdx @@ -25,7 +25,7 @@ Config section: `[twine]` default_repr={`False`} > -If true, don't use Twine when running `scie-pants-linux-x86_64 publish`. +If true, don't use Twine when running `pants publish`. diff --git a/versioned_docs/version-2.18/reference/subsystems/visibility.mdx b/versioned_docs/version-2.18/reference/subsystems/visibility.mdx new file mode 100644 index 000000000..50791d359 --- /dev/null +++ b/versioned_docs/version-2.18/reference/subsystems/visibility.mdx @@ -0,0 +1,56 @@ +--- +title: visibility +--- + +import Option from "@site/src/components/reference/Option"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +Options for the visibility rules implementation of the dependency rules API. + +Backend: `pants.backend.experimental.visibility` + +Config section: `[visibility]` + + + +## Basic options + +### `skip` + + + +### `enforce` + + + +## Advanced options + +None + +## Deprecated options + +None + +## Related subsystems + +None + + diff --git a/versioned_docs/version-2.18/reference/subsystems/yamllint.mdx b/versioned_docs/version-2.18/reference/subsystems/yamllint.mdx index c807f56be..0fc1bb13f 100644 --- a/versioned_docs/version-2.18/reference/subsystems/yamllint.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/yamllint.mdx @@ -61,7 +61,7 @@ Arguments to pass directly to Yamllint, e.g. `--yamllint-args='-d relaxed'`. default_repr={`False`} > -If true, don't use Yamllint when running `scie-pants-linux-x86_64 lint`. +If true, don't use Yamllint when running `pants lint`. diff --git a/versioned_docs/version-2.18/reference/subsystems/yapf.mdx b/versioned_docs/version-2.18/reference/subsystems/yapf.mdx index d7a95a452..0ac558b28 100644 --- a/versioned_docs/version-2.18/reference/subsystems/yapf.mdx +++ b/versioned_docs/version-2.18/reference/subsystems/yapf.mdx @@ -25,7 +25,7 @@ Config section: `[yapf]` default_repr={`False`} > -If true, don't use yapf when running `scie-pants-linux-x86_64 fmt` and `scie-pants-linux-x86_64 lint`. +If true, don't use yapf when running `pants fmt` and `pants lint`. diff --git a/versioned_docs/version-2.18/reference/targets/adhoc_tool.mdx b/versioned_docs/version-2.18/reference/targets/adhoc_tool.mdx index 4378a4583..985e36caa 100644 --- a/versioned_docs/version-2.18/reference/targets/adhoc_tool.mdx +++ b/versioned_docs/version-2.18/reference/targets/adhoc_tool.mdx @@ -38,7 +38,7 @@ Backend: `pants.backend.experimental.adhoc` @@ -51,7 +51,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. diff --git a/versioned_docs/version-2.18/reference/targets/archive.mdx b/versioned_docs/version-2.18/reference/targets/archive.mdx index 534717852..c52c5ec85 100644 --- a/versioned_docs/version-2.18/reference/targets/archive.mdx +++ b/versioned_docs/version-2.18/reference/targets/archive.mdx @@ -24,7 +24,7 @@ Backend: `pants.core` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -52,7 +52,7 @@ Where the built asset should be located. If undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`. -When running `scie-pants-linux-x86_64 package`, this path will be prefixed by `--distdir` (e.g. `dist/`). +When running `pants package`, this path will be prefixed by `--distdir` (e.g. `dist/`). Warning: setting this value risks naming collisions with other package targets you may have. @@ -65,11 +65,11 @@ Warning: setting this value risks naming collisions with other package targets y default_repr={`None`} > -Addresses to any targets that can be built with `scie-pants-linux-x86_64 package`, e.g. `["project:app"]`. +Addresses to any targets that can be built with `pants package`, e.g. `["project:app"]`. -Pants will build the assets as if you had run `scie-pants-linux-x86_64 package`. It will include the results in your archive using the same name they would normally have, but without the `--distdir` prefix (e.g. `dist/`). +Pants will build the assets as if you had run `pants package`. It will include the results in your archive using the same name they would normally have, but without the `--distdir` prefix (e.g. `dist/`). -You can include anything that can be built by `scie-pants-linux-x86_64 package`, e.g. a `pex_binary`, `python_aws_lambda_function`, or even another `archive`. +You can include anything that can be built by `pants package`, e.g. a `pex_binary`, `python_aws_lambda_function`, or even another `archive`. diff --git a/versioned_docs/version-2.18/reference/targets/avro_source.mdx b/versioned_docs/version-2.18/reference/targets/avro_source.mdx new file mode 100644 index 000000000..b433d733a --- /dev/null +++ b/versioned_docs/version-2.18/reference/targets/avro_source.mdx @@ -0,0 +1,104 @@ +--- +title: avro_source +--- + +import Field from "@site/src/components/reference/Field"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +A single Avro file used to generate various languages. + +See https://www.pantsbuild.org/v2.18/docs/avro. + +Backend: `pants.backend.experimental.codegen.avro.java` + +--- + + + +## `tags` + + + +Arbitrary strings to describe a target. + +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. + + + +## `description` + + + +A human-readable description of the target. + +Use `pants list --documented ::` to see all targets with descriptions. + + + +## `dependencies` + + + +Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. + +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. + +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. + +If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. + +You may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file. + + + +## `source` + + + +A single file that belongs to this target. + +Path is relative to the BUILD file's directory, e.g. `source='example.ext'`. + + + +## `jvm_jdk` + + + +The major version of the JDK that this target should be built with. If not defined, will default to `[jvm].default_source_jdk`. + + + +## `jvm_resolve` + + + +The resolve from `[jvm].resolves` to use when compiling this target. + +If not defined, will default to `[jvm].default_resolve`. + + + + diff --git a/versioned_docs/version-2.18/reference/targets/avro_sources.mdx b/versioned_docs/version-2.18/reference/targets/avro_sources.mdx new file mode 100644 index 000000000..9172494ad --- /dev/null +++ b/versioned_docs/version-2.18/reference/targets/avro_sources.mdx @@ -0,0 +1,132 @@ +--- +title: avro_sources +--- + +import Field from "@site/src/components/reference/Field"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +Generate a `avro_source` target for each file in the `sources` field. + +Backend: `pants.backend.experimental.codegen.avro.java` + +--- + + + +## `tags` + + + +Arbitrary strings to describe a target. + +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. + + + +## `description` + + + +A human-readable description of the target. + +Use `pants list --documented ::` to see all targets with descriptions. + + + +## `sources` + + + +A list of files and globs that belong to this target. + +Paths are relative to the BUILD file's directory. You can ignore files/globs by prefixing them with `!`. + +Example: `sources=['example.avsc', 'new_*.avpr', '!old_ignore.avdl']` + + + +## `overrides` + + + +Override the field values for generated `avro_source` targets. + +Expects a dictionary of relative file paths and globs to a dictionary for the overrides. You may either use a string for a single path / glob, or a string tuple for multiple paths / globs. Each override is a dictionary of field names to the overridden value. + +For example: + +``` +overrides={ + "bar.proto": {"description": "our user model"]}, + ("foo.proto", "bar.proto"): {"tags": ["overridden"]}, +} +``` + +File paths and globs are relative to the BUILD file's directory. Every overridden file is validated to belong to this target's `sources` field. + +If you'd like to override a field's value for every `avro_source` target generated by this target, change the field directly on this target rather than using the `overrides` field. + +You can specify the same file name in multiple keys, so long as you don't override the same field more than one time for the file. + + + +## `jvm_jdk` + + + +The major version of the JDK that this target should be built with. If not defined, will default to `[jvm].default_source_jdk`. + + + +## `jvm_resolve` + + + +The resolve from `[jvm].resolves` to use when compiling this target. + +If not defined, will default to `[jvm].default_resolve`. + + + +## `dependencies` + + + +Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. + +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. + +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. + +If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. + +You may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file. + + + + diff --git a/versioned_docs/version-2.18/reference/targets/cc_source.mdx b/versioned_docs/version-2.18/reference/targets/cc_source.mdx new file mode 100644 index 000000000..5e1a1cd00 --- /dev/null +++ b/versioned_docs/version-2.18/reference/targets/cc_source.mdx @@ -0,0 +1,88 @@ +--- +title: cc_source +--- + +import Field from "@site/src/components/reference/Field"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +A single C/C++ source file or header file. + +Backend: `pants.backend.experimental.cc` + +--- + + + +## `tags` + + + +Arbitrary strings to describe a target. + +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. + + + +## `description` + + + +A human-readable description of the target. + +Use `pants list --documented ::` to see all targets with descriptions. + + + +## `dependencies` + + + +Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. + +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. + +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. + +If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. + +You may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file. + + + +## `source` + + + +A single file that belongs to this target. + +Path is relative to the BUILD file's directory, e.g. `source='example.ext'`. + + + +## `skip_clang_format` + + + +If true, don't run clang-format on this target's code. + + + + diff --git a/versioned_docs/version-2.18/reference/targets/cc_sources.mdx b/versioned_docs/version-2.18/reference/targets/cc_sources.mdx new file mode 100644 index 000000000..b0b539ec1 --- /dev/null +++ b/versioned_docs/version-2.18/reference/targets/cc_sources.mdx @@ -0,0 +1,90 @@ +--- +title: cc_sources +--- + +import Field from "@site/src/components/reference/Field"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +Generate a `cc_source` target for each file in the `sources` field. + +Backend: `pants.backend.experimental.cc` + +--- + + + +## `tags` + + + +Arbitrary strings to describe a target. + +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. + + + +## `description` + + + +A human-readable description of the target. + +Use `pants list --documented ::` to see all targets with descriptions. + + + +## `sources` + + + +A list of files and globs that belong to this target. + +Paths are relative to the BUILD file's directory. You can ignore files/globs by prefixing them with `!`. + +Example: `sources=['example.cpp', 'new_*.cc', '!old_ignore.cc']` + + + +## `skip_clang_format` + + + +If true, don't run clang-format on this target's code. + + + +## `dependencies` + + + +Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. + +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. + +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. + +If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. + +You may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file. + + + + diff --git a/versioned_docs/version-2.18/reference/targets/cue_package.mdx b/versioned_docs/version-2.18/reference/targets/cue_package.mdx new file mode 100644 index 000000000..63908ab8f --- /dev/null +++ b/versioned_docs/version-2.18/reference/targets/cue_package.mdx @@ -0,0 +1,61 @@ +--- +title: cue_package +--- + +import Field from "@site/src/components/reference/Field"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +The `cue_package` target defines a CUE package. Within a module, CUE organizes files grouped by package. A package can be defined within the module or externally. Definitions and constraints can be split across files within a package, and even organized across directories. + +CUE docs: https://cuelang.org/docs/concepts/packages/ + +Backend: `pants.backend.experimental.cue` + +--- + + + +## `tags` + + + +Arbitrary strings to describe a target. + +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. + + + +## `description` + + + +A human-readable description of the target. + +Use `pants list --documented ::` to see all targets with descriptions. + + + +## `sources` + + + +A list of files and globs that belong to this target. + +Paths are relative to the BUILD file's directory. You can ignore files/globs by prefixing them with `!`. + +Example: `sources=['schema.cue', 'lib/**/*.cue']` + + + + diff --git a/versioned_docs/version-2.18/reference/targets/debian_package.mdx b/versioned_docs/version-2.18/reference/targets/debian_package.mdx new file mode 100644 index 000000000..7240013a6 --- /dev/null +++ b/versioned_docs/version-2.18/reference/targets/debian_package.mdx @@ -0,0 +1,121 @@ +--- +title: debian_package +--- + +import Field from "@site/src/components/reference/Field"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +" +A Debian package containing an artifact. + +``` + This will not install the package, only create a .deb file + that you can then distribute and install, e.g. via dpkg. + + "See https://www.pantsbuild.org/v2.18/docs/debian-package. +``` + +Backend: `pants.backend.experimental.debian` + +--- + + + +## `tags` + + + +Arbitrary strings to describe a target. + +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. + + + +## `description` + + + +A human-readable description of the target. + +Use `pants list --documented ::` to see all targets with descriptions. + + + +## `output_path` + + + +Where the built asset should be located. + +If undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`. + +When running `pants package`, this path will be prefixed by `--distdir` (e.g. `dist/`). + +Warning: setting this value risks naming collisions with other package targets you may have. + + + +## `sources` + + + +Paths that will be included in the package to be produced such as Debian metadata files. You must include a DEBIAN/control file. + +Paths are relative to the BUILD file's directory and all paths must belong to the same parent directory. For example, `sources=['dir/**']` is valid, but `sources=['top_level_file.txt']` and `sources=['dir1/*', 'dir2/*']` are not. + + + +## `symlinks` + + + +Symlinks to create for each target being packaged. + +For example, you could set symlinks={'command-name': 'entrypoint-name'}. + + + +## `install_prefix` + + + +Absolute path to a directory where Debian package will be installed to. + + + +## `packages` + + + +Addresses to any targets that can be built with `pants package`, e.g. `["project:app"]`. + +Pants will build the assets as if you had run `pants package`. It will include the results in your Debian package using the same name they would normally have, but without the `--distdir` prefix (e.g. `dist/`). + +You can include anything that can be uilt by `pants package`, e.g. a `pex_binary`, a `python_distribution`, or an `archive`. + + + + diff --git a/versioned_docs/version-2.18/reference/targets/deploy_jar.mdx b/versioned_docs/version-2.18/reference/targets/deploy_jar.mdx index eb0eb5f25..774318363 100644 --- a/versioned_docs/version-2.18/reference/targets/deploy_jar.mdx +++ b/versioned_docs/version-2.18/reference/targets/deploy_jar.mdx @@ -26,7 +26,7 @@ Backend: `pants.backend.experimental.java` @@ -39,7 +39,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -65,7 +65,7 @@ Where the built asset should be located. If undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`. -When running `scie-pants-linux-x86_64 package`, this path will be prefixed by `--distdir` (e.g. `dist/`). +When running `pants package`, this path will be prefixed by `--distdir` (e.g. `dist/`). Warning: setting this value risks naming collisions with other package targets you may have. @@ -80,9 +80,9 @@ Warning: setting this value risks naming collisions with other package targets y Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/docker_environment.mdx b/versioned_docs/version-2.18/reference/targets/docker_environment.mdx index 36d94cc0c..6359501f7 100644 --- a/versioned_docs/version-2.18/reference/targets/docker_environment.mdx +++ b/versioned_docs/version-2.18/reference/targets/docker_environment.mdx @@ -30,7 +30,7 @@ Backend: `pants.core` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -43,7 +43,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -60,6 +60,10 @@ This value may be any image identifier that the local Docker installation can ac The choice of image ID can affect the reproducibility of builds. Consider using an immutable digest if reproducibility is needed, but regularly ensure that the image is free of relevant bugs or security vulnerabilities. +Note that in order to use an image as a `docker_environment` it must have a few tools: - `/bin/sh` - `/usr/bin/env` - `bash` - `tar` + +While most images will have these preinstalled, users of base images such as Distroless or scratch will need to bake these tools into the image themselves. All of these except `bash` are available via busybox. + ## `platform` @@ -88,27 +92,39 @@ Must be an environment name from the option `[environments-preview].names`, the -## `apache_thrift_thrift_search_paths` +## `golang_cgo_c_flags` -Overrides the default value from the option `[apache-thrift].thrift_search_paths` when this environment target is active. +Overrides the default value from the option `[golang].cgo_c_flags` when this environment target is active. -## `nodejs_executable_search_paths` +## `go_generate_env_vars` -Overrides the default value from the option `[nodejs].executable_search_paths` when this environment target is active. +Overrides the default value from the option `[go-generate].env_vars` when this environment target is active. + + + +## `docker_executable_search_paths` + + + +Overrides the default value from the option `[docker].executable_search_paths` when this environment target is active. @@ -124,67 +140,67 @@ Overrides the default value from the option `[golang].cgo_fortran_binary_name` w -## `python_native_code_ld_flags` +## `golang_go_search_paths` -Overrides the default value from the option `[python-native-code].ld_flags` when this environment target is active. +Overrides the default value from the option `[golang].go_search_paths` when this environment target is active. -## `docker_env_vars` +## `pex_executable_search_paths` -Overrides the default value from the option `[docker].env_vars` when this environment target is active. +Overrides the default value from the option `[pex].executable_search_paths` when this environment target is active. -## `golang_cgo_gcc_binary_name` +## `golang_subprocess_env_vars` -Overrides the default value from the option `[golang].cgo_gcc_binary_name` when this environment target is active. +Overrides the default value from the option `[golang].subprocess_env_vars` when this environment target is active. -## `test_extra_env_vars` +## `nodejs_search_path` -Overrides the default value from the option `[test].extra_env_vars` when this environment target is active. +Overrides the default value from the option `[nodejs].search_path` when this environment target is active. -## `python_bootstrap_search_path` +## `golang_cgo_fortran_flags` -Overrides the default value from the option `[python-bootstrap].search_path` when this environment target is active. +Overrides the default value from the option `[golang].cgo_fortran_flags` when this environment target is active. -## `golang_go_search_paths` +## `golang_cgo_tool_search_paths` -Overrides the default value from the option `[golang].go_search_paths` when this environment target is active. +Overrides the default value from the option `[golang].cgo_tool_search_paths` when this environment target is active. -## `golang_cgo_fortran_flags` +## `golang_cgo_gcc_binary_name` -Overrides the default value from the option `[golang].cgo_fortran_flags` when this environment target is active. +Overrides the default value from the option `[golang].cgo_gcc_binary_name` when this environment target is active. -## `python_native_code_cpp_flags` +## `apache_thrift_thrift_search_paths` -Overrides the default value from the option `[python-native-code].cpp_flags` when this environment target is active. +Overrides the default value from the option `[apache-thrift].thrift_search_paths` when this environment target is active. -## `go_generate_env_vars` +## `python_native_code_ld_flags` -Overrides the default value from the option `[go-generate].env_vars` when this environment target is active. +Overrides the default value from the option `[python-native-code].ld_flags` when this environment target is active. -## `golang_cgo_c_flags` +## `shell_setup_executable_search_paths` -Overrides the default value from the option `[golang].cgo_c_flags` when this environment target is active. +Overrides the default value from the option `[shell-setup].executable_search_paths` when this environment target is active. -## `jvm_global_options` +## `test_extra_env_vars` -Overrides the default value from the option `[jvm].global_options` when this environment target is active. +Overrides the default value from the option `[test].extra_env_vars` when this environment target is active. -## `pex_executable_search_paths` +## `golang_external_linker_binary_name` -Overrides the default value from the option `[pex].executable_search_paths` when this environment target is active. +Overrides the default value from the option `[golang].external_linker_binary_name` when this environment target is active. -## `golang_cgo_gxx_binary_name` +## `docker_env_vars` -Overrides the default value from the option `[golang].cgo_gxx_binary_name` when this environment target is active. +Overrides the default value from the option `[docker].env_vars` when this environment target is active. -## `golang_subprocess_env_vars` +## `golang_cgo_gxx_binary_name` -Overrides the default value from the option `[golang].subprocess_env_vars` when this environment target is active. +Overrides the default value from the option `[golang].cgo_gxx_binary_name` when this environment target is active. -## `nodejs_search_path` +## `jvm_global_options` -Overrides the default value from the option `[nodejs].search_path` when this environment target is active. +Overrides the default value from the option `[jvm].global_options` when this environment target is active. -## `golang_cgo_tool_search_paths` +## `python_native_code_cpp_flags` -Overrides the default value from the option `[golang].cgo_tool_search_paths` when this environment target is active. +Overrides the default value from the option `[python-native-code].cpp_flags` when this environment target is active. -## `docker_executable_search_paths` +## `nodejs_corepack_env_vars` -Overrides the default value from the option `[docker].executable_search_paths` when this environment target is active. +Overrides the default value from the option `[nodejs].corepack_env_vars` when this environment target is active. -## `python_bootstrap_names` +## `golang_cgo_linker_flags` -Overrides the default value from the option `[python-bootstrap].names` when this environment target is active. +Overrides the default value from the option `[golang].cgo_linker_flags` when this environment target is active. -## `subprocess_environment_env_vars` +## `python_bootstrap_search_path` -Overrides the default value from the option `[subprocess-environment].env_vars` when this environment target is active. +Overrides the default value from the option `[python-bootstrap].search_path` when this environment target is active. -## `nodejs_corepack_env_vars` +## `pyenv_python_provider_installation_extra_env_vars` -Overrides the default value from the option `[nodejs].corepack_env_vars` when this environment target is active. +Overrides the default value from the option `[pyenv-python-provider].installation_extra_env_vars` when this environment target is active. -## `golang_cgo_linker_flags` +## `golang_cgo_cxx_flags` -Overrides the default value from the option `[golang].cgo_linker_flags` when this environment target is active. +Overrides the default value from the option `[golang].cgo_cxx_flags` when this environment target is active. -## `shell_setup_executable_search_paths` +## `nodejs_executable_search_paths` -Overrides the default value from the option `[shell-setup].executable_search_paths` when this environment target is active. +Overrides the default value from the option `[nodejs].executable_search_paths` when this environment target is active. -## `golang_cgo_cxx_flags` +## `python_bootstrap_names` -Overrides the default value from the option `[golang].cgo_cxx_flags` when this environment target is active. +Overrides the default value from the option `[python-bootstrap].names` when this environment target is active. -## `golang_external_linker_binary_name` +## `subprocess_environment_env_vars` -Overrides the default value from the option `[golang].external_linker_binary_name` when this environment target is active. +Overrides the default value from the option `[subprocess-environment].env_vars` when this environment target is active. diff --git a/versioned_docs/version-2.18/reference/targets/docker_image.mdx b/versioned_docs/version-2.18/reference/targets/docker_image.mdx index dd7073caf..92749aae5 100644 --- a/versioned_docs/version-2.18/reference/targets/docker_image.mdx +++ b/versioned_docs/version-2.18/reference/targets/docker_image.mdx @@ -39,7 +39,7 @@ Backend: `pants.backend.docker` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -52,7 +52,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -78,9 +78,9 @@ Use `[docker].build_args` to set default build args for all images. Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. @@ -291,7 +291,7 @@ See [Docker documentation](https://docs.docker.com/develop/develop-images/build_ default_repr={`False`} > -If true, do not push this image to registries when running `scie-pants-linux-x86_64 publish`. +If true, do not push this image to registries when running `pants publish`. @@ -369,7 +369,7 @@ Where the built asset should be located. If undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`. -When running `scie-pants-linux-x86_64 package`, this path will be prefixed by `--distdir` (e.g. `dist/`). +When running `pants package`, this path will be prefixed by `--distdir` (e.g. `dist/`). Warning: setting this value risks naming collisions with other package targets you may have. diff --git a/versioned_docs/version-2.18/reference/targets/experimental_test_shell_command.mdx b/versioned_docs/version-2.18/reference/targets/experimental_test_shell_command.mdx index d9cbf0eed..58eccc73a 100644 --- a/versioned_docs/version-2.18/reference/targets/experimental_test_shell_command.mdx +++ b/versioned_docs/version-2.18/reference/targets/experimental_test_shell_command.mdx @@ -39,7 +39,7 @@ Backend: `pants.backend.shell` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -52,7 +52,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. diff --git a/versioned_docs/version-2.18/reference/targets/experimental_wrap_as_go_package_sources.mdx b/versioned_docs/version-2.18/reference/targets/experimental_wrap_as_go_package_sources.mdx index 76db3f1ba..0630639a4 100644 --- a/versioned_docs/version-2.18/reference/targets/experimental_wrap_as_go_package_sources.mdx +++ b/versioned_docs/version-2.18/reference/targets/experimental_wrap_as_go_package_sources.mdx @@ -30,7 +30,7 @@ Backend: `pants.backend.experimental.go` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -43,7 +43,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. diff --git a/versioned_docs/version-2.18/reference/targets/experimental_wrap_as_java_sources.mdx b/versioned_docs/version-2.18/reference/targets/experimental_wrap_as_java_sources.mdx index 940029f9b..ff3e04681 100644 --- a/versioned_docs/version-2.18/reference/targets/experimental_wrap_as_java_sources.mdx +++ b/versioned_docs/version-2.18/reference/targets/experimental_wrap_as_java_sources.mdx @@ -30,7 +30,7 @@ Backend: `pants.backend.experimental.java` @@ -43,7 +43,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. diff --git a/versioned_docs/version-2.18/reference/targets/experimental_wrap_as_kotlin_sources.mdx b/versioned_docs/version-2.18/reference/targets/experimental_wrap_as_kotlin_sources.mdx index 003b6ad9a..bae3428a7 100644 --- a/versioned_docs/version-2.18/reference/targets/experimental_wrap_as_kotlin_sources.mdx +++ b/versioned_docs/version-2.18/reference/targets/experimental_wrap_as_kotlin_sources.mdx @@ -30,7 +30,7 @@ Backend: `pants.backend.experimental.kotlin` @@ -43,7 +43,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. diff --git a/versioned_docs/version-2.18/reference/targets/experimental_wrap_as_python_sources.mdx b/versioned_docs/version-2.18/reference/targets/experimental_wrap_as_python_sources.mdx index a341b498b..5751ec09f 100644 --- a/versioned_docs/version-2.18/reference/targets/experimental_wrap_as_python_sources.mdx +++ b/versioned_docs/version-2.18/reference/targets/experimental_wrap_as_python_sources.mdx @@ -30,7 +30,7 @@ Backend: `pants.backend.python` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -43,7 +43,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. diff --git a/versioned_docs/version-2.18/reference/targets/experimental_wrap_as_resources.mdx b/versioned_docs/version-2.18/reference/targets/experimental_wrap_as_resources.mdx index bdb4704b5..7f60252a5 100644 --- a/versioned_docs/version-2.18/reference/targets/experimental_wrap_as_resources.mdx +++ b/versioned_docs/version-2.18/reference/targets/experimental_wrap_as_resources.mdx @@ -30,7 +30,7 @@ Backend: `pants.core` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -43,7 +43,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. diff --git a/versioned_docs/version-2.18/reference/targets/experimental_wrap_as_scala_sources.mdx b/versioned_docs/version-2.18/reference/targets/experimental_wrap_as_scala_sources.mdx index df94d3733..5548c481b 100644 --- a/versioned_docs/version-2.18/reference/targets/experimental_wrap_as_scala_sources.mdx +++ b/versioned_docs/version-2.18/reference/targets/experimental_wrap_as_scala_sources.mdx @@ -30,7 +30,7 @@ Backend: `pants.backend.experimental.scala` @@ -43,7 +43,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. diff --git a/versioned_docs/version-2.18/reference/targets/file.mdx b/versioned_docs/version-2.18/reference/targets/file.mdx index 9f9ef1da9..b814b434b 100644 --- a/versioned_docs/version-2.18/reference/targets/file.mdx +++ b/versioned_docs/version-2.18/reference/targets/file.mdx @@ -26,7 +26,7 @@ Backend: `pants.core` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -39,7 +39,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -52,9 +52,9 @@ Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descr Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/files.mdx b/versioned_docs/version-2.18/reference/targets/files.mdx index 5da99bc60..68adbc45f 100644 --- a/versioned_docs/version-2.18/reference/targets/files.mdx +++ b/versioned_docs/version-2.18/reference/targets/files.mdx @@ -24,7 +24,7 @@ Backend: `pants.core` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -94,9 +94,9 @@ You can specify the same file name in multiple keys, so long as you don't o Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/go_binary.mdx b/versioned_docs/version-2.18/reference/targets/go_binary.mdx index 55a27e2dd..e1a85a7a6 100644 --- a/versioned_docs/version-2.18/reference/targets/go_binary.mdx +++ b/versioned_docs/version-2.18/reference/targets/go_binary.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.experimental.go` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -52,7 +52,7 @@ Where the built asset should be located. If undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`. -When running `scie-pants-linux-x86_64 package`, this path will be prefixed by `--distdir` (e.g. `dist/`). +When running `pants package`, this path will be prefixed by `--distdir` (e.g. `dist/`). Warning: setting this value risks naming collisions with other package targets you may have. diff --git a/versioned_docs/version-2.18/reference/targets/go_mod.mdx b/versioned_docs/version-2.18/reference/targets/go_mod.mdx index ea3d4e8ad..a0cfd6173 100644 --- a/versioned_docs/version-2.18/reference/targets/go_mod.mdx +++ b/versioned_docs/version-2.18/reference/targets/go_mod.mdx @@ -28,7 +28,7 @@ Backend: `pants.backend.experimental.go` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -41,7 +41,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. diff --git a/versioned_docs/version-2.18/reference/targets/go_package.mdx b/versioned_docs/version-2.18/reference/targets/go_package.mdx index ed56089fc..49be0ec57 100644 --- a/versioned_docs/version-2.18/reference/targets/go_package.mdx +++ b/versioned_docs/version-2.18/reference/targets/go_package.mdx @@ -26,7 +26,7 @@ Backend: `pants.backend.experimental.go` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -39,7 +39,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -52,9 +52,9 @@ Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descr Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. @@ -211,4 +211,28 @@ If true, don't run gofmt on this package. +## `skip_go_vet` + + + +If true, don't run `go vet` on this target's code. + + + +## `skip_golangci_lint` + + + +If true, don't run `golangci-lint` on this target's code. + + + diff --git a/versioned_docs/version-2.18/reference/targets/go_third_party_package.mdx b/versioned_docs/version-2.18/reference/targets/go_third_party_package.mdx index 89d297917..f6dd9e5ee 100644 --- a/versioned_docs/version-2.18/reference/targets/go_third_party_package.mdx +++ b/versioned_docs/version-2.18/reference/targets/go_third_party_package.mdx @@ -28,7 +28,7 @@ Backend: `pants.backend.experimental.go` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -41,7 +41,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -54,9 +54,9 @@ Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descr Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/helm_artifact.mdx b/versioned_docs/version-2.18/reference/targets/helm_artifact.mdx index 0c94682be..df2c66974 100644 --- a/versioned_docs/version-2.18/reference/targets/helm_artifact.mdx +++ b/versioned_docs/version-2.18/reference/targets/helm_artifact.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.experimental.helm` @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. diff --git a/versioned_docs/version-2.18/reference/targets/helm_chart.mdx b/versioned_docs/version-2.18/reference/targets/helm_chart.mdx index cbf1ddc49..0b25926c7 100644 --- a/versioned_docs/version-2.18/reference/targets/helm_chart.mdx +++ b/versioned_docs/version-2.18/reference/targets/helm_chart.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.experimental.helm` @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -76,9 +76,9 @@ Example: `sources=['values.yaml', 'templates/*.yaml', '!values_ignore.yaml']` Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. @@ -99,7 +99,7 @@ If undefined, this will use the path to the BUILD file, For example, `src/charts Regardless of whether you use the default or set this field, the path will end with Helms's file format of `-.tgz`, where `chart_name` and `chart_version` are the values extracted from the Chart.yaml file. So, using the default for this field, the target `src/charts/mychart:tgt_name` might have a final path like `src.charts.mychart/tgt_name/mychart-0.1.0.tgz`. -When running `scie-pants-linux-x86_64 package`, this path will be prefixed by `--distdir` (e.g. `dist/`). +When running `pants package`, this path will be prefixed by `--distdir` (e.g. `dist/`). Warning: setting this value risks naming collisions with other package targets you may have. @@ -183,7 +183,7 @@ The above example shows two valid `registry` options: using an alias to a config default_repr={`False`} > -If set to true, do not push this Helm chart to registries when running `scie-pants-linux-x86_64 publish`. +If set to true, do not push this Helm chart to registries when running `pants publish`. @@ -194,7 +194,91 @@ If set to true, do not push this Helm chart to registries when running `scie-pan default_repr={`False`} > -If set to true, do not run any linting in this Helm chart when running `scie-pants-linux-x86_64 lint`. +If set to true, do not run any linting in this Helm chart when running `pants lint`. + + + +## `kubeconform_ignore_missing_schemas` + + + +Whether to fail if there are missing schemas for custom resources. + + + +## `kubeconform_reject_kinds` + + + +List of kinds or GVKs to reject. + + + +## `kubeconform_ignore_sources` + + + +Regular expression patterns specifying paths to ignore. + + + +## `kubeconform_skip_kinds` + + + +List of kinds or GVKs to ignore. + + + +## `skip_kubeconform` + + + +If set to true, do not run any kubeconform checking in this Helm target when running `pants check`. + + + +## `kubeconform_strict` + + + +Run Kubeconform in strict mode. + + + +## `kubeconform_kubernetes_version` + + + +Kubernetes version to use for the validation. diff --git a/versioned_docs/version-2.18/reference/targets/helm_deployment.mdx b/versioned_docs/version-2.18/reference/targets/helm_deployment.mdx index dd2fe06e4..4a183deda 100644 --- a/versioned_docs/version-2.18/reference/targets/helm_deployment.mdx +++ b/versioned_docs/version-2.18/reference/targets/helm_deployment.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.experimental.helm` @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -72,9 +72,9 @@ Name of the release used in the deployment. If not set, the target name will be Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. @@ -197,4 +197,88 @@ Enables DNS lookups when using the `getHostByName` template function. +## `kubeconform_ignore_missing_schemas` + + + +Whether to fail if there are missing schemas for custom resources. + + + +## `kubeconform_reject_kinds` + + + +List of kinds or GVKs to reject. + + + +## `kubeconform_ignore_sources` + + + +Regular expression patterns specifying paths to ignore. + + + +## `kubeconform_skip_kinds` + + + +List of kinds or GVKs to ignore. + + + +## `skip_kubeconform` + + + +If set to true, do not run any kubeconform checking in this Helm target when running `pants check`. + + + +## `kubeconform_strict` + + + +Run Kubeconform in strict mode. + + + +## `kubeconform_kubernetes_version` + + + +Kubernetes version to use for the validation. + + + diff --git a/versioned_docs/version-2.18/reference/targets/helm_unittest_test.mdx b/versioned_docs/version-2.18/reference/targets/helm_unittest_test.mdx index f75a43706..d7cb4dd80 100644 --- a/versioned_docs/version-2.18/reference/targets/helm_unittest_test.mdx +++ b/versioned_docs/version-2.18/reference/targets/helm_unittest_test.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.experimental.helm` @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -63,9 +63,9 @@ Path is relative to the BUILD file's directory, e.g. `source='example.ext'` Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/helm_unittest_tests.mdx b/versioned_docs/version-2.18/reference/targets/helm_unittest_tests.mdx index b8280998f..c994a7105 100644 --- a/versioned_docs/version-2.18/reference/targets/helm_unittest_tests.mdx +++ b/versioned_docs/version-2.18/reference/targets/helm_unittest_tests.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.experimental.helm` @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -65,9 +65,9 @@ Example: `sources=['*_test.yaml', '!ignore_test.yaml']` Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/java_source.mdx b/versioned_docs/version-2.18/reference/targets/java_source.mdx index 72e09e5d0..4ba82bc8b 100644 --- a/versioned_docs/version-2.18/reference/targets/java_source.mdx +++ b/versioned_docs/version-2.18/reference/targets/java_source.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.experimental.java` @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -50,9 +50,9 @@ Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descr Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/java_sources.mdx b/versioned_docs/version-2.18/reference/targets/java_sources.mdx index 4449eb514..de38e0b49 100644 --- a/versioned_docs/version-2.18/reference/targets/java_sources.mdx +++ b/versioned_docs/version-2.18/reference/targets/java_sources.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.experimental.java` @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -77,9 +77,9 @@ If true, don't run Google Java Format on this target's code. Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/javascript_source.mdx b/versioned_docs/version-2.18/reference/targets/javascript_source.mdx new file mode 100644 index 000000000..d534557d6 --- /dev/null +++ b/versioned_docs/version-2.18/reference/targets/javascript_source.mdx @@ -0,0 +1,88 @@ +--- +title: javascript_source +--- + +import Field from "@site/src/components/reference/Field"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +A single Javascript source file. + +Backend: `pants.backend.experimental.javascript` + +--- + + + +## `tags` + + + +Arbitrary strings to describe a target. + +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. + + + +## `description` + + + +A human-readable description of the target. + +Use `pants list --documented ::` to see all targets with descriptions. + + + +## `dependencies` + + + +Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. + +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. + +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. + +If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. + +You may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file. + + + +## `source` + + + +A single file that belongs to this target. + +Path is relative to the BUILD file's directory, e.g. `source='example.ext'`. + + + +## `skip_prettier` + + + +If true, don't run Prettier on this target's code. + + + + diff --git a/versioned_docs/version-2.18/reference/targets/javascript_sources.mdx b/versioned_docs/version-2.18/reference/targets/javascript_sources.mdx new file mode 100644 index 000000000..73f27d846 --- /dev/null +++ b/versioned_docs/version-2.18/reference/targets/javascript_sources.mdx @@ -0,0 +1,119 @@ +--- +title: javascript_sources +--- + +import Field from "@site/src/components/reference/Field"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +Generate a `javascript_source` target for each file in the `sources` field. + +Backend: `pants.backend.experimental.javascript` + +--- + + + +## `tags` + + + +Arbitrary strings to describe a target. + +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. + + + +## `description` + + + +A human-readable description of the target. + +Use `pants list --documented ::` to see all targets with descriptions. + + + +## `sources` + + + +A list of files and globs that belong to this target. + +Paths are relative to the BUILD file's directory. You can ignore files/globs by prefixing them with `!`. + +Example: `sources=['utils.js', 'subdir/*.js', '!ignore_me.js']` + + + +## `overrides` + + + +Override the field values for generated `javascript_source` targets. + +Expects a dictionary of relative file paths and globs to a dictionary for the overrides. You may either use a string for a single path / glob, or a string tuple for multiple paths / globs. Each override is a dictionary of field names to the overridden value. + +For example: + +``` +overrides={ + "foo.js": {"skip_prettier": True}, + "bar.js": {"skip_prettier": True}, + ("foo.js", "bar.js"): {"tags": ["no_lint"]}, +} +``` + +File paths and globs are relative to the BUILD file's directory. Every overridden file is validated to belong to this target's `sources` field. + +If you'd like to override a field's value for every `javascript_source` target generated by this target, change the field directly on this target rather than using the `overrides` field. + +You can specify the same file name in multiple keys, so long as you don't override the same field more than one time for the file. + + + +## `skip_prettier` + + + +If true, don't run Prettier on this target's code. + + + +## `dependencies` + + + +Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. + +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. + +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. + +If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. + +You may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file. + + + + diff --git a/versioned_docs/version-2.18/reference/targets/javascript_test.mdx b/versioned_docs/version-2.18/reference/targets/javascript_test.mdx new file mode 100644 index 000000000..0a674b11f --- /dev/null +++ b/versioned_docs/version-2.18/reference/targets/javascript_test.mdx @@ -0,0 +1,128 @@ +--- +title: javascript_test +--- + +import Field from "@site/src/components/reference/Field"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +A single Javascript test file. + +Backend: `pants.backend.experimental.javascript` + +--- + + + +## `tags` + + + +Arbitrary strings to describe a target. + +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. + + + +## `description` + + + +A human-readable description of the target. + +Use `pants list --documented ::` to see all targets with descriptions. + + + +## `dependencies` + + + +Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. + +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. + +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. + +If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. + +You may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file. + + + +## `source` + + + +A single file that belongs to this target. + +Path is relative to the BUILD file's directory, e.g. `source='example.ext'`. + + + +## `timeout` + + + +A timeout (in seconds) used by each test file belonging to this target. + +If unset, will default to `[test].timeout_default`; if that option is also unset, then the test will never time out. Will never exceed `[test].timeout_maximum`. Only applies if the option `--test-timeouts` is set to true (the default). + + + +## `extra_env_vars` + + + +Additional environment variables to include in test processes. + +Entries are strings in the form `ENV_VAR=value` to use explicitly; or just `ENV_VAR` to copy the value of a variable in Pants's own environment. + +This will be merged with and override values from `[test].extra_env_vars`. + + + +## `batch_compatibility_tag` + + + +An arbitrary value used to mark the test files belonging to this target as valid for batched execution. + +It's _sometimes_ safe to run multiple `javascript_test`s within a single test runner process, and doing so can give significant wins by allowing reuse of expensive test setup / teardown logic. To opt into this behavior, set this field to an arbitrary non-empty string on all the `javascript_test` targets that are safe/compatible to run in the same process. + +If this field is left unset on a target, the target is assumed to be incompatible with all others and will run in a dedicated `nodejs test runner` process. + +If this field is set on a target, and its value is different from the value on some other test `javascript_test`, then the two targets are explicitly incompatible and are guaranteed to not run in the same `nodejs test runner` process. + +If this field is set on a target, and its value is the same as the value on some other `javascript_test`, then the two targets are explicitly compatible and _may_ run in the same test runner process. Compatible tests may not end up in the same test runner batch if: + +- There are "too many" compatible tests in a partition, as determined by the `[test].batch_size` config parameter, or +- Compatible tests have some incompatibility in Pants metadata (i.e. different `resolve`s or `extra_env_vars`). + +When tests with the same `batch_compatibility_tag` have incompatibilities in some other Pants metadata, they will be automatically split into separate batches. This way you can set a high-level `batch_compatibility_tag` using `__defaults__` and then have tests continue to work as you tweak BUILD metadata on specific targets. + + + + diff --git a/versioned_docs/version-2.18/reference/targets/javascript_tests.mdx b/versioned_docs/version-2.18/reference/targets/javascript_tests.mdx new file mode 100644 index 000000000..3721894cb --- /dev/null +++ b/versioned_docs/version-2.18/reference/targets/javascript_tests.mdx @@ -0,0 +1,159 @@ +--- +title: javascript_tests +--- + +import Field from "@site/src/components/reference/Field"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +Generate a `javascript_test` target for each file in the `sources` field. + +Backend: `pants.backend.experimental.javascript` + +--- + + + +## `tags` + + + +Arbitrary strings to describe a target. + +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. + + + +## `description` + + + +A human-readable description of the target. + +Use `pants list --documented ::` to see all targets with descriptions. + + + +## `sources` + + + +A list of files and globs that belong to this target. + +Paths are relative to the BUILD file's directory. You can ignore files/globs by prefixing them with `!`. + +Example: `sources=['utils.test.js', 'subdir/*.test.mjs', '!ignore_me.test.js']` + + + +## `overrides` + + + +Override the field values for generated `javascript_test` targets. + +Expects a dictionary of relative file paths and globs to a dictionary for the overrides. You may either use a string for a single path / glob, or a string tuple for multiple paths / globs. Each override is a dictionary of field names to the overridden value. + +For example: + +``` +overrides={ + "foo.test.js": {"timeout": 120}, + "bar.test.js": {"timeout": 200}, + ("foo.test.js", "bar.test.js"): {"tags": ["slow_tests"]}, +} +``` + +File paths and globs are relative to the BUILD file's directory. Every overridden file is validated to belong to this target's `sources` field. + +If you'd like to override a field's value for every `javascript_test` target generated by this target, change the field directly on this target rather than using the `overrides` field. + +You can specify the same file name in multiple keys, so long as you don't override the same field more than one time for the file. + + + +## `dependencies` + + + +Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. + +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. + +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. + +If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. + +You may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file. + + + +## `timeout` + + + +A timeout (in seconds) used by each test file belonging to this target. + +If unset, will default to `[test].timeout_default`; if that option is also unset, then the test will never time out. Will never exceed `[test].timeout_maximum`. Only applies if the option `--test-timeouts` is set to true (the default). + + + +## `extra_env_vars` + + + +Additional environment variables to include in test processes. + +Entries are strings in the form `ENV_VAR=value` to use explicitly; or just `ENV_VAR` to copy the value of a variable in Pants's own environment. + +This will be merged with and override values from `[test].extra_env_vars`. + + + +## `batch_compatibility_tag` + + + +An arbitrary value used to mark the test files belonging to this target as valid for batched execution. + +It's _sometimes_ safe to run multiple `javascript_test`s within a single test runner process, and doing so can give significant wins by allowing reuse of expensive test setup / teardown logic. To opt into this behavior, set this field to an arbitrary non-empty string on all the `javascript_test` targets that are safe/compatible to run in the same process. + +If this field is left unset on a target, the target is assumed to be incompatible with all others and will run in a dedicated `nodejs test runner` process. + +If this field is set on a target, and its value is different from the value on some other test `javascript_test`, then the two targets are explicitly incompatible and are guaranteed to not run in the same `nodejs test runner` process. + +If this field is set on a target, and its value is the same as the value on some other `javascript_test`, then the two targets are explicitly compatible and _may_ run in the same test runner process. Compatible tests may not end up in the same test runner batch if: + +- There are "too many" compatible tests in a partition, as determined by the `[test].batch_size` config parameter, or +- Compatible tests have some incompatibility in Pants metadata (i.e. different `resolve`s or `extra_env_vars`). + +When tests with the same `batch_compatibility_tag` have incompatibilities in some other Pants metadata, they will be automatically split into separate batches. This way you can set a high-level `batch_compatibility_tag` using `__defaults__` and then have tests continue to work as you tweak BUILD metadata on specific targets. + + + + diff --git a/versioned_docs/version-2.18/reference/targets/junit_test.mdx b/versioned_docs/version-2.18/reference/targets/junit_test.mdx index 24136c34a..85d49c629 100644 --- a/versioned_docs/version-2.18/reference/targets/junit_test.mdx +++ b/versioned_docs/version-2.18/reference/targets/junit_test.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.experimental.java` @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -91,9 +91,9 @@ This will be merged with and override values from `[test].extra_env_vars`. Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/junit_tests.mdx b/versioned_docs/version-2.18/reference/targets/junit_tests.mdx index dd5f0e339..ee5419530 100644 --- a/versioned_docs/version-2.18/reference/targets/junit_tests.mdx +++ b/versioned_docs/version-2.18/reference/targets/junit_tests.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.experimental.java` @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -93,9 +93,9 @@ This will be merged with and override values from `[test].extra_env_vars`. Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/jvm_artifact.mdx b/versioned_docs/version-2.18/reference/targets/jvm_artifact.mdx index f935b3358..612ce404a 100644 --- a/versioned_docs/version-2.18/reference/targets/jvm_artifact.mdx +++ b/versioned_docs/version-2.18/reference/targets/jvm_artifact.mdx @@ -28,7 +28,7 @@ Backend: `pants.backend.experimental.java` @@ -41,7 +41,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -95,7 +95,7 @@ The JVM packages this artifact provides for the purposes of dependency inference For example, the JVM artifact `junit:junit` might provide `["org.junit.**"]`. -Usually you can leave this field off. If unspecified, Pants will fall back to the `[java-infer].third_party_import_mapping`, then to a built in mapping (https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/jvm/dependency_inference/jvm_artifact_mappings.py), and then finally it will default to the normalized `group` of the artifact. For example, in the absence of any other mapping the artifact `io.confluent:common-config` would default to providing `["io.confluent.**"]`. +Usually you can leave this field off. If unspecified, Pants will fall back to the `[java-infer].third_party_import_mapping`, then to a built in mapping (https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/jvm/dependency_inference/jvm_artifact_mappings.py), and then finally it will default to the normalized `group` of the artifact. For example, in the absence of any other mapping the artifact `io.confluent:common-config` would default to providing `["io.confluent.**"]`. The package path may be made recursive to match symbols in subpackages by adding `.**` to the end of the package path. For example, specify `["org.junit.**"]` to infer a dependency on the artifact for any file importing a symbol from `org.junit` or its subpackages. diff --git a/versioned_docs/version-2.18/reference/targets/jvm_war.mdx b/versioned_docs/version-2.18/reference/targets/jvm_war.mdx index 007447e3f..b949fe9d7 100644 --- a/versioned_docs/version-2.18/reference/targets/jvm_war.mdx +++ b/versioned_docs/version-2.18/reference/targets/jvm_war.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.experimental.java` @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -74,9 +74,9 @@ A list of addresses to `resources` and `files` targets with content to place in Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. @@ -126,7 +126,7 @@ Where the built asset should be located. If undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`. -When running `scie-pants-linux-x86_64 package`, this path will be prefixed by `--distdir` (e.g. `dist/`). +When running `pants package`, this path will be prefixed by `--distdir` (e.g. `dist/`). Warning: setting this value risks naming collisions with other package targets you may have. diff --git a/versioned_docs/version-2.18/reference/targets/kotlin_junit_test.mdx b/versioned_docs/version-2.18/reference/targets/kotlin_junit_test.mdx index abc022acd..222f1f9fa 100644 --- a/versioned_docs/version-2.18/reference/targets/kotlin_junit_test.mdx +++ b/versioned_docs/version-2.18/reference/targets/kotlin_junit_test.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.experimental.kotlin` @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -50,9 +50,9 @@ Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descr Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/kotlin_junit_tests.mdx b/versioned_docs/version-2.18/reference/targets/kotlin_junit_tests.mdx index 550ff50ae..2d80d87cb 100644 --- a/versioned_docs/version-2.18/reference/targets/kotlin_junit_tests.mdx +++ b/versioned_docs/version-2.18/reference/targets/kotlin_junit_tests.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.experimental.kotlin` @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -65,9 +65,9 @@ Example: `sources=['*Test.kt', '!TestIgnore.kt']` Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/kotlin_source.mdx b/versioned_docs/version-2.18/reference/targets/kotlin_source.mdx index bb78a2302..c79606ce2 100644 --- a/versioned_docs/version-2.18/reference/targets/kotlin_source.mdx +++ b/versioned_docs/version-2.18/reference/targets/kotlin_source.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.experimental.kotlin` @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -50,9 +50,9 @@ Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descr Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/kotlin_sources.mdx b/versioned_docs/version-2.18/reference/targets/kotlin_sources.mdx index 7838ae373..d48edefaa 100644 --- a/versioned_docs/version-2.18/reference/targets/kotlin_sources.mdx +++ b/versioned_docs/version-2.18/reference/targets/kotlin_sources.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.experimental.kotlin` @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -77,9 +77,9 @@ If true, don't run Ktlint on this target's code. Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/kotlinc_plugin.mdx b/versioned_docs/version-2.18/reference/targets/kotlinc_plugin.mdx index c8ad9eb36..828754fa0 100644 --- a/versioned_docs/version-2.18/reference/targets/kotlinc_plugin.mdx +++ b/versioned_docs/version-2.18/reference/targets/kotlinc_plugin.mdx @@ -34,7 +34,7 @@ Backend: `pants.backend.experimental.kotlin` @@ -47,7 +47,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. diff --git a/versioned_docs/version-2.18/reference/targets/local_environment.mdx b/versioned_docs/version-2.18/reference/targets/local_environment.mdx index 2c04b85a3..3a0375141 100644 --- a/versioned_docs/version-2.18/reference/targets/local_environment.mdx +++ b/versioned_docs/version-2.18/reference/targets/local_environment.mdx @@ -30,7 +30,7 @@ Backend: `pants.core` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -43,7 +43,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -75,27 +75,39 @@ Tip: when targeting Linux, it can be particularly helpful to fallback to a `dock -## `apache_thrift_thrift_search_paths` +## `golang_cgo_c_flags` -Overrides the default value from the option `[apache-thrift].thrift_search_paths` when this environment target is active. +Overrides the default value from the option `[golang].cgo_c_flags` when this environment target is active. -## `nodejs_executable_search_paths` +## `go_generate_env_vars` -Overrides the default value from the option `[nodejs].executable_search_paths` when this environment target is active. +Overrides the default value from the option `[go-generate].env_vars` when this environment target is active. + + + +## `docker_executable_search_paths` + + + +Overrides the default value from the option `[docker].executable_search_paths` when this environment target is active. @@ -111,67 +123,67 @@ Overrides the default value from the option `[golang].cgo_fortran_binary_name` w -## `python_native_code_ld_flags` +## `golang_go_search_paths` -Overrides the default value from the option `[python-native-code].ld_flags` when this environment target is active. +Overrides the default value from the option `[golang].go_search_paths` when this environment target is active. -## `docker_env_vars` +## `pex_executable_search_paths` -Overrides the default value from the option `[docker].env_vars` when this environment target is active. +Overrides the default value from the option `[pex].executable_search_paths` when this environment target is active. -## `golang_cgo_gcc_binary_name` +## `golang_subprocess_env_vars` -Overrides the default value from the option `[golang].cgo_gcc_binary_name` when this environment target is active. +Overrides the default value from the option `[golang].subprocess_env_vars` when this environment target is active. -## `test_extra_env_vars` +## `nodejs_search_path` -Overrides the default value from the option `[test].extra_env_vars` when this environment target is active. +Overrides the default value from the option `[nodejs].search_path` when this environment target is active. -## `python_bootstrap_search_path` +## `golang_cgo_fortran_flags` -Overrides the default value from the option `[python-bootstrap].search_path` when this environment target is active. +Overrides the default value from the option `[golang].cgo_fortran_flags` when this environment target is active. -## `golang_go_search_paths` +## `golang_cgo_tool_search_paths` -Overrides the default value from the option `[golang].go_search_paths` when this environment target is active. +Overrides the default value from the option `[golang].cgo_tool_search_paths` when this environment target is active. -## `golang_cgo_fortran_flags` +## `golang_cgo_gcc_binary_name` -Overrides the default value from the option `[golang].cgo_fortran_flags` when this environment target is active. +Overrides the default value from the option `[golang].cgo_gcc_binary_name` when this environment target is active. -## `python_native_code_cpp_flags` +## `apache_thrift_thrift_search_paths` -Overrides the default value from the option `[python-native-code].cpp_flags` when this environment target is active. +Overrides the default value from the option `[apache-thrift].thrift_search_paths` when this environment target is active. -## `go_generate_env_vars` +## `python_native_code_ld_flags` -Overrides the default value from the option `[go-generate].env_vars` when this environment target is active. +Overrides the default value from the option `[python-native-code].ld_flags` when this environment target is active. -## `golang_cgo_c_flags` +## `shell_setup_executable_search_paths` -Overrides the default value from the option `[golang].cgo_c_flags` when this environment target is active. +Overrides the default value from the option `[shell-setup].executable_search_paths` when this environment target is active. -## `jvm_global_options` +## `test_extra_env_vars` -Overrides the default value from the option `[jvm].global_options` when this environment target is active. +Overrides the default value from the option `[test].extra_env_vars` when this environment target is active. -## `pex_executable_search_paths` +## `golang_external_linker_binary_name` -Overrides the default value from the option `[pex].executable_search_paths` when this environment target is active. +Overrides the default value from the option `[golang].external_linker_binary_name` when this environment target is active. -## `golang_cgo_gxx_binary_name` +## `docker_env_vars` -Overrides the default value from the option `[golang].cgo_gxx_binary_name` when this environment target is active. +Overrides the default value from the option `[docker].env_vars` when this environment target is active. -## `golang_subprocess_env_vars` +## `golang_cgo_gxx_binary_name` -Overrides the default value from the option `[golang].subprocess_env_vars` when this environment target is active. +Overrides the default value from the option `[golang].cgo_gxx_binary_name` when this environment target is active. -## `nodejs_search_path` +## `jvm_global_options` -Overrides the default value from the option `[nodejs].search_path` when this environment target is active. +Overrides the default value from the option `[jvm].global_options` when this environment target is active. -## `golang_cgo_tool_search_paths` +## `python_native_code_cpp_flags` -Overrides the default value from the option `[golang].cgo_tool_search_paths` when this environment target is active. +Overrides the default value from the option `[python-native-code].cpp_flags` when this environment target is active. -## `docker_executable_search_paths` +## `nodejs_corepack_env_vars` -Overrides the default value from the option `[docker].executable_search_paths` when this environment target is active. +Overrides the default value from the option `[nodejs].corepack_env_vars` when this environment target is active. -## `python_bootstrap_names` +## `golang_cgo_linker_flags` -Overrides the default value from the option `[python-bootstrap].names` when this environment target is active. +Overrides the default value from the option `[golang].cgo_linker_flags` when this environment target is active. -## `subprocess_environment_env_vars` +## `python_bootstrap_search_path` -Overrides the default value from the option `[subprocess-environment].env_vars` when this environment target is active. +Overrides the default value from the option `[python-bootstrap].search_path` when this environment target is active. -## `nodejs_corepack_env_vars` +## `pyenv_python_provider_installation_extra_env_vars` -Overrides the default value from the option `[nodejs].corepack_env_vars` when this environment target is active. +Overrides the default value from the option `[pyenv-python-provider].installation_extra_env_vars` when this environment target is active. -## `golang_cgo_linker_flags` +## `golang_cgo_cxx_flags` -Overrides the default value from the option `[golang].cgo_linker_flags` when this environment target is active. +Overrides the default value from the option `[golang].cgo_cxx_flags` when this environment target is active. -## `shell_setup_executable_search_paths` +## `nodejs_executable_search_paths` -Overrides the default value from the option `[shell-setup].executable_search_paths` when this environment target is active. +Overrides the default value from the option `[nodejs].executable_search_paths` when this environment target is active. -## `golang_cgo_cxx_flags` +## `python_bootstrap_names` -Overrides the default value from the option `[golang].cgo_cxx_flags` when this environment target is active. +Overrides the default value from the option `[python-bootstrap].names` when this environment target is active. -## `golang_external_linker_binary_name` +## `subprocess_environment_env_vars` -Overrides the default value from the option `[golang].external_linker_binary_name` when this environment target is active. +Overrides the default value from the option `[subprocess-environment].env_vars` when this environment target is active. diff --git a/versioned_docs/version-2.18/reference/targets/node_package.mdx b/versioned_docs/version-2.18/reference/targets/node_package.mdx new file mode 100644 index 000000000..7eca4156d --- /dev/null +++ b/versioned_docs/version-2.18/reference/targets/node_package.mdx @@ -0,0 +1,102 @@ +--- +title: node_package +--- + +import Field from "@site/src/components/reference/Field"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +A first party node package. + +Backend: `pants.backend.experimental.javascript` + +--- + + + +## `tags` + + + +Arbitrary strings to describe a target. + +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. + + + +## `description` + + + +A human-readable description of the target. + +Use `pants list --documented ::` to see all targets with descriptions. + + + +## `source` + + + +A single file that belongs to this target. + +Path is relative to the BUILD file's directory, e.g. `source='example.ext'`. + + + +## `package` + + + +Name of the Node package, as specified in the package.json. + +This field should not be overridden; use the value from target generation. + + + +## `version` + + + +Version of the Node package, as specified in the package.json. + +This field should not be overridden; use the value from target generation. + + + +## `dependencies` + + + +Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. + +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. + +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. + +If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. + +You may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file. + + + + diff --git a/versioned_docs/version-2.18/reference/targets/node_third_party_package.mdx b/versioned_docs/version-2.18/reference/targets/node_third_party_package.mdx new file mode 100644 index 000000000..e45e7cafe --- /dev/null +++ b/versioned_docs/version-2.18/reference/targets/node_third_party_package.mdx @@ -0,0 +1,89 @@ +--- +title: node_third_party_package +--- + +import Field from "@site/src/components/reference/Field"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +A third party node package. + +Backend: `pants.backend.experimental.javascript` + +--- + + + +## `tags` + + + +Arbitrary strings to describe a target. + +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. + + + +## `description` + + + +A human-readable description of the target. + +Use `pants list --documented ::` to see all targets with descriptions. + + + +## `package` + + + +Name of the Node package, as specified in the package.json. + +This field should not be overridden; use the value from target generation. + + + +## `version` + + + +Version of the Node package, as specified in the package.json. + +This field should not be overridden; use the value from target generation. + + + +## `dependencies` + + + +Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. + +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. + +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. + +If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. + +You may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file. + + + + diff --git a/versioned_docs/version-2.18/reference/targets/openapi_document.mdx b/versioned_docs/version-2.18/reference/targets/openapi_document.mdx index 980544ccc..52db1eb2e 100644 --- a/versioned_docs/version-2.18/reference/targets/openapi_document.mdx +++ b/versioned_docs/version-2.18/reference/targets/openapi_document.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.experimental.openapi` @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -50,9 +50,9 @@ Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descr Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. @@ -73,6 +73,30 @@ Path is relative to the BUILD file's directory, e.g. `source='example.ext'` +## `jvm_jdk` + + + +The major version of the JDK that this target should be built with. If not defined, will default to `[jvm].default_source_jdk`. + + + +## `skip_java` + + + +If true, skips generation of Java sources from this target + + + ## `skip_spectral` +## `java_api_package` + + + +Root package for generated API code + + + +## `java_model_package` + + + +Root package for generated model code + + + +## `jvm_resolve` + + + +The resolve from `[jvm].resolves` to use when compiling this target. + +If not defined, will default to `[jvm].default_resolve`. + + + diff --git a/versioned_docs/version-2.18/reference/targets/openapi_documents.mdx b/versioned_docs/version-2.18/reference/targets/openapi_documents.mdx index a912f4912..01225304f 100644 --- a/versioned_docs/version-2.18/reference/targets/openapi_documents.mdx +++ b/versioned_docs/version-2.18/reference/targets/openapi_documents.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.experimental.openapi` @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -56,6 +56,30 @@ Example: `sources=['openapi.json']` +## `jvm_jdk` + + + +The major version of the JDK that this target should be built with. If not defined, will default to `[jvm].default_source_jdk`. + + + +## `skip_java` + + + +If true, skips generation of Java sources from this target + + + ## `skip_spectral` +## `java_api_package` + + + +Root package for generated API code + + + +## `java_model_package` + + + +Root package for generated model code + + + +## `jvm_resolve` + + + +The resolve from `[jvm].resolves` to use when compiling this target. + +If not defined, will default to `[jvm].default_resolve`. + + + ## `dependencies` `pants.backend.experimental.openapi` @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -50,9 +50,9 @@ Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descr Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/openapi_sources.mdx b/versioned_docs/version-2.18/reference/targets/openapi_sources.mdx index c7d494308..019faaf18 100644 --- a/versioned_docs/version-2.18/reference/targets/openapi_sources.mdx +++ b/versioned_docs/version-2.18/reference/targets/openapi_sources.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.experimental.openapi` @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -65,9 +65,9 @@ Example: `sources=['*.json']` Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/package_json.mdx b/versioned_docs/version-2.18/reference/targets/package_json.mdx new file mode 100644 index 000000000..fdf267e93 --- /dev/null +++ b/versioned_docs/version-2.18/reference/targets/package_json.mdx @@ -0,0 +1,93 @@ +--- +title: package_json +--- + +import Field from "@site/src/components/reference/Field"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +A package.json file describing a nodejs package. (https://nodejs.org/api/packages.html#introduction) + +Generates a `node_package` target for the package. + +Generates `node_third_party_package` targets for each specified 3rd party dependency (e.g. in the package.json#devDependencies field). + +Backend: `pants.backend.experimental.javascript` + +--- + + + +## `tags` + + + +Arbitrary strings to describe a target. + +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. + + + +## `description` + + + +A human-readable description of the target. + +Use `pants list --documented ::` to see all targets with descriptions. + + + +## `source` + + + +A single file that belongs to this target. + +Path is relative to the BUILD file's directory, e.g. `source='example.ext'`. + + + +## `scripts` + + + +Custom node package manager scripts that should be known and ran as part of relevant goals. + +Maps the package.json#scripts section to a cacheable pants invocation. + + + +## `dependencies` + + + +Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. + +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. + +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. + +If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. + +You may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file. + + + + diff --git a/versioned_docs/version-2.18/reference/targets/pants_requirements.mdx b/versioned_docs/version-2.18/reference/targets/pants_requirements.mdx index 2df0f954f..8eca0adce 100644 --- a/versioned_docs/version-2.18/reference/targets/pants_requirements.mdx +++ b/versioned_docs/version-2.18/reference/targets/pants_requirements.mdx @@ -30,7 +30,7 @@ Backend: `pants.backend.plugin_development` @@ -43,7 +43,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -51,7 +51,7 @@ Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descr The PEP 440 version specifier version of Pants to target. E.g. `== 2.15.*`, or `>= 2.16.0, < 2.17.0` diff --git a/versioned_docs/version-2.18/reference/targets/pex_binaries.mdx b/versioned_docs/version-2.18/reference/targets/pex_binaries.mdx index b26c7e4c0..99892019d 100644 --- a/versioned_docs/version-2.18/reference/targets/pex_binaries.mdx +++ b/versioned_docs/version-2.18/reference/targets/pex_binaries.mdx @@ -28,7 +28,7 @@ Backend: `pants.backend.python` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -41,7 +41,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -147,9 +147,9 @@ All dependencies must share the same value for their `resolve` field. Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/pex_binary.mdx b/versioned_docs/version-2.18/reference/targets/pex_binary.mdx index 25ba046ef..e66770f79 100644 --- a/versioned_docs/version-2.18/reference/targets/pex_binary.mdx +++ b/versioned_docs/version-2.18/reference/targets/pex_binary.mdx @@ -26,7 +26,7 @@ Backend: `pants.backend.python` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -39,7 +39,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -101,9 +101,9 @@ All dependencies must share the same value for their `resolve` field. Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. @@ -398,7 +398,7 @@ Where the built asset should be located. If undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`. -When running `scie-pants-linux-x86_64 package`, this path will be prefixed by `--distdir` (e.g. `dist/`). +When running `pants package`, this path will be prefixed by `--distdir` (e.g. `dist/`). Warning: setting this value risks naming collisions with other package targets you may have. diff --git a/versioned_docs/version-2.18/reference/targets/pipenv_requirements.mdx b/versioned_docs/version-2.18/reference/targets/pipenv_requirements.mdx index e06585179..f67f613c7 100644 --- a/versioned_docs/version-2.18/reference/targets/pipenv_requirements.mdx +++ b/versioned_docs/version-2.18/reference/targets/pipenv_requirements.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.python` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. diff --git a/versioned_docs/version-2.18/reference/targets/poetry_requirements.mdx b/versioned_docs/version-2.18/reference/targets/poetry_requirements.mdx index 82136c634..6edf88e02 100644 --- a/versioned_docs/version-2.18/reference/targets/poetry_requirements.mdx +++ b/versioned_docs/version-2.18/reference/targets/poetry_requirements.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.python` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. diff --git a/versioned_docs/version-2.18/reference/targets/protobuf_source.mdx b/versioned_docs/version-2.18/reference/targets/protobuf_source.mdx index 779ebb8eb..4e2f6c57a 100644 --- a/versioned_docs/version-2.18/reference/targets/protobuf_source.mdx +++ b/versioned_docs/version-2.18/reference/targets/protobuf_source.mdx @@ -28,7 +28,7 @@ Backend: `pants.backend.codegen.protobuf.python Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -41,7 +41,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -54,9 +54,9 @@ Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descr Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. @@ -88,33 +88,39 @@ Whether to generate gRPC code or not. -## `skip_buf_lint` +## `python_interpreter_constraints` -If true, don't run `buf lint` on this target's code. +The Python interpreters this code is compatible with. + +Each element should be written in pip-style format, e.g. `CPython==2.7.*` or `CPython>=3.6,<4`. You can leave off `CPython` as a shorthand, e.g. `>=2.7` will be expanded to `CPython>=2.7`. + +Specify more than one element to OR the constraints, e.g. `['PyPy==3.7.*', 'CPython==3.7.*']` means either PyPy 3.7 _or_ CPython 3.7. + +If the field is not set, it will default to the option `[python].interpreter_constraints`. + +See https://www.pantsbuild.org/v2.18/docs/python-interpreter-compatibility for how these interpreter constraints are merged with the constraints of dependencies. -## `python_source_root` +## `jvm_jdk` -The source root to generate Python sources under. - -If unspecified, the source root the `protobuf_sources` is under will be used. +The major version of the JDK that this target should be built with. If not defined, will default to `[jvm].default_source_jdk`. -## `jvm_jdk` +## `jvm_resolve` -The major version of the JDK that this target should be built with. If not defined, will default to `[jvm].default_source_jdk`. +The resolve from `[jvm].resolves` to use when compiling this target. + +If not defined, will default to `[jvm].default_resolve`. -## `skip_buf_format` +## `skip_buf_lint` -If true, don't run `buf format` on this target's code. +If true, don't run `buf lint` on this target's code. -## `python_resolve` +## `skip_buf_format` -The resolve from `[python].resolves` to use. - -If not defined, will default to `[python].default_resolve`. - -All dependencies must share the same value for their `resolve` field. +If true, don't run `buf format` on this target's code. -## `python_interpreter_constraints` +## `go_mod_address` -The Python interpreters this code is compatible with. - -Each element should be written in pip-style format, e.g. `CPython==2.7.*` or `CPython>=3.6,<4`. You can leave off `CPython` as a shorthand, e.g. `>=2.7` will be expanded to `CPython>=2.7`. - -Specify more than one element to OR the constraints, e.g. `['PyPy==3.7.*', 'CPython==3.7.*']` means either PyPy 3.7 _or_ CPython 3.7. +Address of the `go_mod` target representing the Go module that this target is part of. -If the field is not set, it will default to the option `[python].interpreter_constraints`. +This field is similar to the `resolve` field used in the Python and JVM backends. If a codegen target such as `protobuf_sources` will be used in multiple Go modules, then you should use the `parametrize` built-in to parametrize that `protobuf_sources` target for each Go module. -See https://www.pantsbuild.org/v2.18/docs/python-interpreter-compatibility for how these interpreter constraints are merged with the constraints of dependencies. +If there is a single `go_mod` target in the repository, then this field defaults to the address for that single `go_mod` target. -## `go_mod_address` +## `python_source_root` -Address of the `go_mod` target representing the Go module that this target is part of. - -This field is similar to the `resolve` field used in the Python and JVM backends. If a codegen target such as `protobuf_sources` will be used in multiple Go modules, then you should use the `parametrize` built-in to parametrize that `protobuf_sources` target for each Go module. +The source root to generate Python sources under. -If there is a single `go_mod` target in the repository, then this field defaults to the address for that single `go_mod` target. +If unspecified, the source root the `protobuf_sources` is under will be used. -## `jvm_resolve` +## `python_resolve` -The resolve from `[jvm].resolves` to use when compiling this target. +The resolve from `[python].resolves` to use. -If not defined, will default to `[jvm].default_resolve`. +If not defined, will default to `[python].default_resolve`. + +All dependencies must share the same value for their `resolve` field. diff --git a/versioned_docs/version-2.18/reference/targets/protobuf_sources.mdx b/versioned_docs/version-2.18/reference/targets/protobuf_sources.mdx index 0ef79afba..05734a5f1 100644 --- a/versioned_docs/version-2.18/reference/targets/protobuf_sources.mdx +++ b/versioned_docs/version-2.18/reference/targets/protobuf_sources.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.codegen.protobuf.python Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -85,33 +85,39 @@ You can specify the same file name in multiple keys, so long as you don't o -## `skip_buf_lint` +## `python_interpreter_constraints` -If true, don't run `buf lint` on this target's code. +The Python interpreters this code is compatible with. + +Each element should be written in pip-style format, e.g. `CPython==2.7.*` or `CPython>=3.6,<4`. You can leave off `CPython` as a shorthand, e.g. `>=2.7` will be expanded to `CPython>=2.7`. + +Specify more than one element to OR the constraints, e.g. `['PyPy==3.7.*', 'CPython==3.7.*']` means either PyPy 3.7 _or_ CPython 3.7. + +If the field is not set, it will default to the option `[python].interpreter_constraints`. + +See https://www.pantsbuild.org/v2.18/docs/python-interpreter-compatibility for how these interpreter constraints are merged with the constraints of dependencies. -## `python_source_root` +## `jvm_jdk` -The source root to generate Python sources under. - -If unspecified, the source root the `protobuf_sources` is under will be used. +The major version of the JDK that this target should be built with. If not defined, will default to `[jvm].default_source_jdk`. -## `jvm_jdk` +## `jvm_resolve` -The major version of the JDK that this target should be built with. If not defined, will default to `[jvm].default_source_jdk`. +The resolve from `[jvm].resolves` to use when compiling this target. + +If not defined, will default to `[jvm].default_resolve`. -## `skip_buf_format` +## `skip_buf_lint` -If true, don't run `buf format` on this target's code. +If true, don't run `buf lint` on this target's code. -## `python_resolve` +## `skip_buf_format` -The resolve from `[python].resolves` to use. - -If not defined, will default to `[python].default_resolve`. - -All dependencies must share the same value for their `resolve` field. +If true, don't run `buf format` on this target's code. -## `python_interpreter_constraints` +## `go_mod_address` -The Python interpreters this code is compatible with. - -Each element should be written in pip-style format, e.g. `CPython==2.7.*` or `CPython>=3.6,<4`. You can leave off `CPython` as a shorthand, e.g. `>=2.7` will be expanded to `CPython>=2.7`. - -Specify more than one element to OR the constraints, e.g. `['PyPy==3.7.*', 'CPython==3.7.*']` means either PyPy 3.7 _or_ CPython 3.7. +Address of the `go_mod` target representing the Go module that this target is part of. -If the field is not set, it will default to the option `[python].interpreter_constraints`. +This field is similar to the `resolve` field used in the Python and JVM backends. If a codegen target such as `protobuf_sources` will be used in multiple Go modules, then you should use the `parametrize` built-in to parametrize that `protobuf_sources` target for each Go module. -See https://www.pantsbuild.org/v2.18/docs/python-interpreter-compatibility for how these interpreter constraints are merged with the constraints of dependencies. +If there is a single `go_mod` target in the repository, then this field defaults to the address for that single `go_mod` target. -## `go_mod_address` +## `python_source_root` -Address of the `go_mod` target representing the Go module that this target is part of. - -This field is similar to the `resolve` field used in the Python and JVM backends. If a codegen target such as `protobuf_sources` will be used in multiple Go modules, then you should use the `parametrize` built-in to parametrize that `protobuf_sources` target for each Go module. +The source root to generate Python sources under. -If there is a single `go_mod` target in the repository, then this field defaults to the address for that single `go_mod` target. +If unspecified, the source root the `protobuf_sources` is under will be used. -## `jvm_resolve` +## `python_resolve` -The resolve from `[jvm].resolves` to use when compiling this target. +The resolve from `[python].resolves` to use. -If not defined, will default to `[jvm].default_resolve`. +If not defined, will default to `[python].default_resolve`. + +All dependencies must share the same value for their `resolve` field. @@ -221,9 +221,9 @@ Whether to generate gRPC code or not. Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/pyoxidizer_binary.mdx b/versioned_docs/version-2.18/reference/targets/pyoxidizer_binary.mdx index eebaa5ddb..559b10b7f 100644 --- a/versioned_docs/version-2.18/reference/targets/pyoxidizer_binary.mdx +++ b/versioned_docs/version-2.18/reference/targets/pyoxidizer_binary.mdx @@ -28,7 +28,7 @@ Backend: `pants.backend.experimental.python.pac Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -41,7 +41,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -58,7 +58,7 @@ If undefined, this will use the path to the BUILD file, followed by the target n Regardless of whether you use the default or set this field, the path will end with PyOxidizer's file format of `/{debug,release}/install/`, where `platform` is a Rust platform triplet like `aarch-64-apple-darwin` and `binary_name` is the value of the `binary_name` field. So, using the default for this field, the target `src/python/project:bin` might have a final path like `src.python.project/bin/aarch-64-apple-darwin/release/bin`. -When running `scie-pants-linux-x86_64 package`, this path will be prefixed by `--distdir` (e.g. `dist/`). +When running `pants package`, this path will be prefixed by `--distdir` (e.g. `dist/`). Warning: setting this value risks naming collisions with other package targets you may have. diff --git a/versioned_docs/version-2.18/reference/targets/python_aws_lambda_function.mdx b/versioned_docs/version-2.18/reference/targets/python_aws_lambda_function.mdx index 3b610a8dd..9d5d8d73d 100644 --- a/versioned_docs/version-2.18/reference/targets/python_aws_lambda_function.mdx +++ b/versioned_docs/version-2.18/reference/targets/python_aws_lambda_function.mdx @@ -26,7 +26,7 @@ Backend: `pants.backend.awslambda.python` @@ -39,7 +39,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -54,7 +54,7 @@ Where the built asset should be located. If undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`. -When running `scie-pants-linux-x86_64 package`, this path will be prefixed by `--distdir` (e.g. `dist/`). +When running `pants package`, this path will be prefixed by `--distdir` (e.g. `dist/`). Warning: setting this value risks naming collisions with other package targets you may have. @@ -142,9 +142,9 @@ You can specify multiple valid environments by using `parametrize`. If `__local_ Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/python_aws_lambda_layer.mdx b/versioned_docs/version-2.18/reference/targets/python_aws_lambda_layer.mdx index a2ebd630a..76169e1d8 100644 --- a/versioned_docs/version-2.18/reference/targets/python_aws_lambda_layer.mdx +++ b/versioned_docs/version-2.18/reference/targets/python_aws_lambda_layer.mdx @@ -26,7 +26,7 @@ Backend: `pants.backend.awslambda.python` @@ -39,7 +39,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -54,7 +54,7 @@ Where the built asset should be located. If undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`. -When running `scie-pants-linux-x86_64 package`, this path will be prefixed by `--distdir` (e.g. `dist/`). +When running `pants package`, this path will be prefixed by `--distdir` (e.g. `dist/`). Warning: setting this value risks naming collisions with other package targets you may have. @@ -153,9 +153,9 @@ Whether to resolve first party sources and include them in the AWS Lambda artifa Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/python_distribution.mdx b/versioned_docs/version-2.18/reference/targets/python_distribution.mdx index 186b73073..f901d8d00 100644 --- a/versioned_docs/version-2.18/reference/targets/python_distribution.mdx +++ b/versioned_docs/version-2.18/reference/targets/python_distribution.mdx @@ -26,7 +26,7 @@ Backend: `pants.backend.python` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -39,7 +39,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -71,9 +71,9 @@ See https://www.pantsbuild.org/v2.18/docs/python-interpreter-compatibility for h Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. @@ -108,7 +108,7 @@ Note that Pants will assume that any value that either starts with `:` or has `/ Pants will attempt to infer dependencies, which you can confirm by running: ``` -scie-pants-linux-x86_64 dependencies +pants dependencies ``` @@ -226,15 +226,19 @@ If undefined, this defaults to the empty path, i.e. the output goes at the top l -## `skip_twine` +## `repositories` -If true, don't publish this target's packages using Twine. +List of URL addresses or Twine repository aliases where to publish the Python package. + +Twine is used for publishing Python packages, so the address to any kind of repository that Twine supports may be used here. + +Aliases are prefixed with `@` to refer to a config section in your Twine configuration, such as a `.pypirc` file. Use `@pypi` to upload to the public PyPi repository, which is the default when using Twine directly. @@ -254,19 +258,15 @@ You will typically set this field on distributions whose `setup.py` uses `mypyc. -## `repositories` +## `skip_twine` -List of URL addresses or Twine repository aliases where to publish the Python package. - -Twine is used for publishing Python packages, so the address to any kind of repository that Twine supports may be used here. - -Aliases are prefixed with `@` to refer to a config section in your Twine configuration, such as a `.pypirc` file. Use `@pypi` to upload to the public PyPi repository, which is the default when using Twine directly. +If true, don't publish this target's packages using Twine. diff --git a/versioned_docs/version-2.18/reference/targets/python_google_cloud_function.mdx b/versioned_docs/version-2.18/reference/targets/python_google_cloud_function.mdx index 0336bf841..2d92eec6d 100644 --- a/versioned_docs/version-2.18/reference/targets/python_google_cloud_function.mdx +++ b/versioned_docs/version-2.18/reference/targets/python_google_cloud_function.mdx @@ -26,7 +26,7 @@ Backend: `pants.backend.google_cloud_function.p Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -39,7 +39,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -54,7 +54,7 @@ Where the built asset should be located. If undefined, this will use the path to the BUILD file, followed by the target name. For example, `src/python/project:app` would be `src.python.project/app.ext`. -When running `scie-pants-linux-x86_64 package`, this path will be prefixed by `--distdir` (e.g. `dist/`). +When running `pants package`, this path will be prefixed by `--distdir` (e.g. `dist/`). Warning: setting this value risks naming collisions with other package targets you may have. @@ -69,9 +69,9 @@ Warning: setting this value risks naming collisions with other package targets y Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/python_requirement.mdx b/versioned_docs/version-2.18/reference/targets/python_requirement.mdx index 9312b5e2d..41ea4a25b 100644 --- a/versioned_docs/version-2.18/reference/targets/python_requirement.mdx +++ b/versioned_docs/version-2.18/reference/targets/python_requirement.mdx @@ -28,7 +28,7 @@ Backend: `pants.backend.python` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -41,7 +41,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -69,9 +69,9 @@ If the requirement depends on some other requirement to work, such as needing `s Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. @@ -90,7 +90,7 @@ The modules this requirement provides (used for dependency inference). For example, the requirement `setuptools` provides `["setuptools", "pkg_resources", "easy_install"]`. -Usually you can leave this field off. If unspecified, Pants will first look at the default module mapping (https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/backend/python/dependency_inference/default_module_mapping.py), and then will default to the normalized project name. For example, the requirement `Django` would default to the module `django`. +Usually you can leave this field off. If unspecified, Pants will first look at the default module mapping (https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/python/dependency_inference/default_module_mapping.py), and then will default to the normalized project name. For example, the requirement `Django` would default to the module `django`. Mutually exclusive with the `type_stub_modules` field. @@ -107,7 +107,7 @@ The modules this requirement provides if the requirement is a type stub (used fo For example, the requirement `types-requests` provides `["requests"]`. -Usually you can leave this field off. If unspecified, Pants will first look at the default module mapping (https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/backend/python/dependency_inference/default_module_mapping.py). If not found _and_ the requirement name starts with `types-` or `stubs-`, or ends with `-types` or `-stubs`, will default to that requirement name without the prefix/suffix. For example, `types-requests` would default to `requests`. Otherwise, will be treated like a normal requirement (see the `modules` field). +Usually you can leave this field off. If unspecified, Pants will first look at the default module mapping (https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/backend/python/dependency_inference/default_module_mapping.py). If not found _and_ the requirement name starts with `types-` or `stubs-`, or ends with `-types` or `-stubs`, will default to that requirement name without the prefix/suffix. For example, `types-requests` would default to `requests`. Otherwise, will be treated like a normal requirement (see the `modules` field). Mutually exclusive with the `modules` field. diff --git a/versioned_docs/version-2.18/reference/targets/python_requirements.mdx b/versioned_docs/version-2.18/reference/targets/python_requirements.mdx index 621be0c31..b4078a301 100644 --- a/versioned_docs/version-2.18/reference/targets/python_requirements.mdx +++ b/versioned_docs/version-2.18/reference/targets/python_requirements.mdx @@ -30,7 +30,7 @@ Backend: `pants.backend.python` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -43,7 +43,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. diff --git a/versioned_docs/version-2.18/reference/targets/python_source.mdx b/versioned_docs/version-2.18/reference/targets/python_source.mdx index d924812fc..cf080dff0 100644 --- a/versioned_docs/version-2.18/reference/targets/python_source.mdx +++ b/versioned_docs/version-2.18/reference/targets/python_source.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.python` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -69,9 +69,9 @@ See https://www.pantsbuild.org/v2.18/docs/python-interpreter-compatibility for h Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. @@ -139,135 +139,147 @@ If true, runs of this target with the `run` goal may be interrupted and restarte -## `skip_pylint` +## `skip_mypy` -If true, don't run Pylint on this target's code. +If true, don't run MyPy on this target's code. -## `skip_pytype` +## `skip_isort` -If true, don't run pytype on this target's code. +If true, don't run isort on this target's code. -## `skip_autoflake` +## `skip_pyupgrade` -If true, don't run Autoflake on this target's code. +If true, don't run pyupgrade on this target's code. -## `skip_docformatter` +## `skip_ruff` -If true, don't run Docformatter on this target's code. +If true, don't run ruff on this target's code. -## `skip_mypy` +## `skip_pyright` -If true, don't run MyPy on this target's code. +If true, don't run Pyright on this target's code. -## `skip_isort` +## `skip_flake8` -If true, don't run isort on this target's code. +If true, don't run Flake8 on this target's code. -## `skip_pydocstyle` +## `skip_bandit` -If true, don't run pydocstyle on this target's code. +If true, don't run Bandit on this target's code. -## `skip_bandit` +## `skip_pytype` -If true, don't run Bandit on this target's code. +If true, don't run pytype on this target's code. -## `skip_ruff` +## `skip_autoflake` -If true, don't run ruff on this target's code. +If true, don't run Autoflake on this target's code. -## `skip_flake8` +## `skip_add_trailing_comma` -If true, don't run Flake8 on this target's code. +If true, don't run add-trailing-comma on this target's code. -## `skip_add_trailing_comma` +## `skip_black` -If true, don't run add-trailing-comma on this target's code. +If true, don't run Black on this target's code. + + + +## `skip_pylint` + + + +If true, don't run Pylint on this target's code. @@ -283,27 +295,27 @@ If true, don't run yapf on this target's code. -## `skip_pyupgrade` +## `skip_docformatter` -If true, don't run pyupgrade on this target's code. +If true, don't run Docformatter on this target's code. -## `skip_black` +## `skip_pydocstyle` -If true, don't run Black on this target's code. +If true, don't run pydocstyle on this target's code. diff --git a/versioned_docs/version-2.18/reference/targets/python_sources.mdx b/versioned_docs/version-2.18/reference/targets/python_sources.mdx index c9b4db4d1..d7658badb 100644 --- a/versioned_docs/version-2.18/reference/targets/python_sources.mdx +++ b/versioned_docs/version-2.18/reference/targets/python_sources.mdx @@ -26,7 +26,7 @@ Backend: `pants.backend.python` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -39,7 +39,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -87,135 +87,147 @@ You can specify the same file name in multiple keys, so long as you don't o -## `skip_pylint` +## `skip_mypy` -If true, don't run Pylint on this target's code. +If true, don't run MyPy on this target's code. -## `skip_pytype` +## `skip_isort` -If true, don't run pytype on this target's code. +If true, don't run isort on this target's code. -## `skip_autoflake` +## `skip_pyupgrade` -If true, don't run Autoflake on this target's code. +If true, don't run pyupgrade on this target's code. -## `skip_docformatter` +## `skip_ruff` -If true, don't run Docformatter on this target's code. +If true, don't run ruff on this target's code. -## `skip_mypy` +## `skip_pyright` -If true, don't run MyPy on this target's code. +If true, don't run Pyright on this target's code. -## `skip_isort` +## `skip_flake8` -If true, don't run isort on this target's code. +If true, don't run Flake8 on this target's code. -## `skip_pydocstyle` +## `skip_bandit` -If true, don't run pydocstyle on this target's code. +If true, don't run Bandit on this target's code. -## `skip_bandit` +## `skip_pytype` -If true, don't run Bandit on this target's code. +If true, don't run pytype on this target's code. -## `skip_ruff` +## `skip_autoflake` -If true, don't run ruff on this target's code. +If true, don't run Autoflake on this target's code. -## `skip_flake8` +## `skip_add_trailing_comma` -If true, don't run Flake8 on this target's code. +If true, don't run add-trailing-comma on this target's code. -## `skip_add_trailing_comma` +## `skip_black` -If true, don't run add-trailing-comma on this target's code. +If true, don't run Black on this target's code. + + + +## `skip_pylint` + + + +If true, don't run Pylint on this target's code. @@ -231,27 +243,27 @@ If true, don't run yapf on this target's code. -## `skip_pyupgrade` +## `skip_docformatter` -If true, don't run pyupgrade on this target's code. +If true, don't run Docformatter on this target's code. -## `skip_black` +## `skip_pydocstyle` -If true, don't run Black on this target's code. +If true, don't run pydocstyle on this target's code. @@ -300,9 +312,9 @@ The latter mode is similar to creating, activating, and using a virtual environm Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/python_test.mdx b/versioned_docs/version-2.18/reference/targets/python_test.mdx index 7779081e8..2e4b365f6 100644 --- a/versioned_docs/version-2.18/reference/targets/python_test.mdx +++ b/versioned_docs/version-2.18/reference/targets/python_test.mdx @@ -28,7 +28,7 @@ Backend: `pants.backend.python` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -41,7 +41,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -54,9 +54,9 @@ Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descr Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. @@ -161,11 +161,11 @@ When tests with the same `batch_compatibility_tag` have incompatibilities in som default_repr={`None`} > -Addresses to targets that can be built with the `scie-pants-linux-x86_64 package` goal and whose resulting artifacts should be included in the test run. +Addresses to targets that can be built with the `pants package` goal and whose resulting artifacts should be included in the test run. -Pants will build the artifacts as if you had run `scie-pants-linux-x86_64 package`. It will include the results in your test's chroot, using the same name they would normally have, but without the `--distdir` prefix (e.g. `dist/`). +Pants will build the artifacts as if you had run `pants package`. It will include the results in your test's chroot, using the same name they would normally have, but without the `--distdir` prefix (e.g. `dist/`). -You can include anything that can be built by `scie-pants-linux-x86_64 package`, e.g. a `pex_binary`, `python_aws_lambda_function`, or an `archive`. +You can include anything that can be built by `pants package`, e.g. a `pex_binary`, `python_aws_lambda_function`, or an `archive`. @@ -242,155 +242,147 @@ Path is relative to the BUILD file's directory, e.g. `source='example.ext'` -## `skip_pylint` +## `skip_mypy` -If true, don't run Pylint on this target's code. +If true, don't run MyPy on this target's code. -## `skip_pytype` +## `skip_isort` -If true, don't run pytype on this target's code. +If true, don't run isort on this target's code. -## `skip_autoflake` +## `skip_pyupgrade` -If true, don't run Autoflake on this target's code. +If true, don't run pyupgrade on this target's code. -## `skip_docformatter` +## `skip_ruff` -If true, don't run Docformatter on this target's code. +If true, don't run ruff on this target's code. -## `skip_mypy` +## `skip_pyright` -If true, don't run MyPy on this target's code. +If true, don't run Pyright on this target's code. -## `skip_isort` +## `skip_flake8` -If true, don't run isort on this target's code. +If true, don't run Flake8 on this target's code. -## `skip_pydocstyle` +## `skip_bandit` -If true, don't run pydocstyle on this target's code. +If true, don't run Bandit on this target's code. -## `skip_bandit` +## `skip_pytype` -If true, don't run Bandit on this target's code. +If true, don't run pytype on this target's code. -## `skip_ruff` +## `skip_add_trailing_comma` -If true, don't run ruff on this target's code. +If true, don't run add-trailing-comma on this target's code. -## `stevedore_namespaces` +## `skip_autoflake` -List the stevedore namespaces required by this target. - -Code for all `entry_points` on `python_distribution` targets with these namespaces will be added as dependencies so that they are available on PYTHONPATH during tests. Note that this is only a subset of the `python_distribution`s dependencies, so the `entry_points` only need to be defined on one `python_distribution` even if the test only needs some of the `entry_points` namespaces on it. - -Plus, an `entry_points.txt` file will be generated in the sandbox so that each of the `python_distribution`s appear to be "installed". The `entry_points.txt` file will only include the namespaces requested on this field. Without this, stevedore would not be able to look up plugins in the setuptools `entry_points` metadata. - -NOTE: Each `python_distribution` must opt-in to being included in this repo-wide inference by tagging the namespaces with `stevedore_namespace("my.stevedore.extension")`. - -The stevedore namespace format (`my.stevedore.extension`) is similar to a Python namespace. +If true, don't run Autoflake on this target's code. -## `skip_flake8` +## `skip_black` -If true, don't run Flake8 on this target's code. +If true, don't run Black on this target's code. -## `skip_add_trailing_comma` +## `skip_pylint` -If true, don't run add-trailing-comma on this target's code. +If true, don't run Pylint on this target's code. @@ -406,27 +398,47 @@ If true, don't run yapf on this target's code. -## `skip_pyupgrade` +## `stevedore_namespaces` + + + +List the stevedore namespaces required by this target. + +Code for all `entry_points` on `python_distribution` targets with these namespaces will be added as dependencies so that they are available on PYTHONPATH during tests. Note that this is only a subset of the `python_distribution`s dependencies, so the `entry_points` only need to be defined on one `python_distribution` even if the test only needs some of the `entry_points` namespaces on it. + +Plus, an `entry_points.txt` file will be generated in the sandbox so that each of the `python_distribution`s appear to be "installed". The `entry_points.txt` file will only include the namespaces requested on this field. Without this, stevedore would not be able to look up plugins in the setuptools `entry_points` metadata. + +NOTE: Each `python_distribution` must opt-in to being included in this repo-wide inference by tagging the namespaces with `stevedore_namespace("my.stevedore.extension")`. + +The stevedore namespace format (`my.stevedore.extension`) is similar to a Python namespace. + + + +## `skip_docformatter` -If true, don't run pyupgrade on this target's code. +If true, don't run Docformatter on this target's code. -## `skip_black` +## `skip_pydocstyle` -If true, don't run Black on this target's code. +If true, don't run pydocstyle on this target's code. diff --git a/versioned_docs/version-2.18/reference/targets/python_test_utils.mdx b/versioned_docs/version-2.18/reference/targets/python_test_utils.mdx index a96e783af..1bc6981c6 100644 --- a/versioned_docs/version-2.18/reference/targets/python_test_utils.mdx +++ b/versioned_docs/version-2.18/reference/targets/python_test_utils.mdx @@ -26,7 +26,7 @@ Backend: `pants.backend.python` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -39,7 +39,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -87,135 +87,147 @@ You can specify the same file name in multiple keys, so long as you don't o -## `skip_pylint` +## `skip_mypy` -If true, don't run Pylint on this target's code. +If true, don't run MyPy on this target's code. -## `skip_pytype` +## `skip_isort` -If true, don't run pytype on this target's code. +If true, don't run isort on this target's code. -## `skip_autoflake` +## `skip_pyupgrade` -If true, don't run Autoflake on this target's code. +If true, don't run pyupgrade on this target's code. -## `skip_docformatter` +## `skip_ruff` -If true, don't run Docformatter on this target's code. +If true, don't run ruff on this target's code. -## `skip_mypy` +## `skip_pyright` -If true, don't run MyPy on this target's code. +If true, don't run Pyright on this target's code. -## `skip_isort` +## `skip_flake8` -If true, don't run isort on this target's code. +If true, don't run Flake8 on this target's code. -## `skip_pydocstyle` +## `skip_bandit` -If true, don't run pydocstyle on this target's code. +If true, don't run Bandit on this target's code. -## `skip_bandit` +## `skip_pytype` -If true, don't run Bandit on this target's code. +If true, don't run pytype on this target's code. -## `skip_ruff` +## `skip_autoflake` -If true, don't run ruff on this target's code. +If true, don't run Autoflake on this target's code. -## `skip_flake8` +## `skip_add_trailing_comma` -If true, don't run Flake8 on this target's code. +If true, don't run add-trailing-comma on this target's code. -## `skip_add_trailing_comma` +## `skip_black` -If true, don't run add-trailing-comma on this target's code. +If true, don't run Black on this target's code. + + + +## `skip_pylint` + + + +If true, don't run Pylint on this target's code. @@ -231,27 +243,27 @@ If true, don't run yapf on this target's code. -## `skip_pyupgrade` +## `skip_docformatter` -If true, don't run pyupgrade on this target's code. +If true, don't run Docformatter on this target's code. -## `skip_black` +## `skip_pydocstyle` -If true, don't run Black on this target's code. +If true, don't run pydocstyle on this target's code. @@ -300,9 +312,9 @@ The latter mode is similar to creating, activating, and using a virtual environm Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/python_tests.mdx b/versioned_docs/version-2.18/reference/targets/python_tests.mdx index 972bbfaef..7a00e13ba 100644 --- a/versioned_docs/version-2.18/reference/targets/python_tests.mdx +++ b/versioned_docs/version-2.18/reference/targets/python_tests.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.python` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -85,155 +85,147 @@ You can specify the same file name in multiple keys, so long as you don't o -## `skip_pylint` +## `skip_mypy` -If true, don't run Pylint on this target's code. +If true, don't run MyPy on this target's code. -## `skip_pytype` +## `skip_isort` -If true, don't run pytype on this target's code. +If true, don't run isort on this target's code. -## `skip_autoflake` +## `skip_pyupgrade` -If true, don't run Autoflake on this target's code. +If true, don't run pyupgrade on this target's code. -## `skip_docformatter` +## `skip_ruff` -If true, don't run Docformatter on this target's code. +If true, don't run ruff on this target's code. -## `skip_mypy` +## `skip_pyright` -If true, don't run MyPy on this target's code. +If true, don't run Pyright on this target's code. -## `skip_isort` +## `skip_flake8` -If true, don't run isort on this target's code. +If true, don't run Flake8 on this target's code. -## `skip_pydocstyle` +## `skip_bandit` -If true, don't run pydocstyle on this target's code. +If true, don't run Bandit on this target's code. -## `skip_bandit` +## `skip_pytype` -If true, don't run Bandit on this target's code. +If true, don't run pytype on this target's code. -## `skip_ruff` +## `skip_add_trailing_comma` -If true, don't run ruff on this target's code. +If true, don't run add-trailing-comma on this target's code. -## `stevedore_namespaces` +## `skip_autoflake` -List the stevedore namespaces required by this target. - -Code for all `entry_points` on `python_distribution` targets with these namespaces will be added as dependencies so that they are available on PYTHONPATH during tests. Note that this is only a subset of the `python_distribution`s dependencies, so the `entry_points` only need to be defined on one `python_distribution` even if the test only needs some of the `entry_points` namespaces on it. - -Plus, an `entry_points.txt` file will be generated in the sandbox so that each of the `python_distribution`s appear to be "installed". The `entry_points.txt` file will only include the namespaces requested on this field. Without this, stevedore would not be able to look up plugins in the setuptools `entry_points` metadata. - -NOTE: Each `python_distribution` must opt-in to being included in this repo-wide inference by tagging the namespaces with `stevedore_namespace("my.stevedore.extension")`. - -The stevedore namespace format (`my.stevedore.extension`) is similar to a Python namespace. +If true, don't run Autoflake on this target's code. -## `skip_flake8` +## `skip_black` -If true, don't run Flake8 on this target's code. +If true, don't run Black on this target's code. -## `skip_add_trailing_comma` +## `skip_pylint` -If true, don't run add-trailing-comma on this target's code. +If true, don't run Pylint on this target's code. @@ -249,27 +241,47 @@ If true, don't run yapf on this target's code. -## `skip_pyupgrade` +## `stevedore_namespaces` + + + +List the stevedore namespaces required by this target. + +Code for all `entry_points` on `python_distribution` targets with these namespaces will be added as dependencies so that they are available on PYTHONPATH during tests. Note that this is only a subset of the `python_distribution`s dependencies, so the `entry_points` only need to be defined on one `python_distribution` even if the test only needs some of the `entry_points` namespaces on it. + +Plus, an `entry_points.txt` file will be generated in the sandbox so that each of the `python_distribution`s appear to be "installed". The `entry_points.txt` file will only include the namespaces requested on this field. Without this, stevedore would not be able to look up plugins in the setuptools `entry_points` metadata. + +NOTE: Each `python_distribution` must opt-in to being included in this repo-wide inference by tagging the namespaces with `stevedore_namespace("my.stevedore.extension")`. + +The stevedore namespace format (`my.stevedore.extension`) is similar to a Python namespace. + + + +## `skip_docformatter` -If true, don't run pyupgrade on this target's code. +If true, don't run Docformatter on this target's code. -## `skip_black` +## `skip_pydocstyle` -If true, don't run Black on this target's code. +If true, don't run pydocstyle on this target's code. @@ -282,9 +294,9 @@ If true, don't run Black on this target's code. Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. @@ -389,11 +401,11 @@ When tests with the same `batch_compatibility_tag` have incompatibilities in som default_repr={`None`} > -Addresses to targets that can be built with the `scie-pants-linux-x86_64 package` goal and whose resulting artifacts should be included in the test run. +Addresses to targets that can be built with the `pants package` goal and whose resulting artifacts should be included in the test run. -Pants will build the artifacts as if you had run `scie-pants-linux-x86_64 package`. It will include the results in your test's chroot, using the same name they would normally have, but without the `--distdir` prefix (e.g. `dist/`). +Pants will build the artifacts as if you had run `pants package`. It will include the results in your test's chroot, using the same name they would normally have, but without the `--distdir` prefix (e.g. `dist/`). -You can include anything that can be built by `scie-pants-linux-x86_64 package`, e.g. a `pex_binary`, `python_aws_lambda_function`, or an `archive`. +You can include anything that can be built by `pants package`, e.g. a `pex_binary`, `python_aws_lambda_function`, or an `archive`. diff --git a/versioned_docs/version-2.18/reference/targets/relocated_files.mdx b/versioned_docs/version-2.18/reference/targets/relocated_files.mdx index 62f3ec4e4..346339e69 100644 --- a/versioned_docs/version-2.18/reference/targets/relocated_files.mdx +++ b/versioned_docs/version-2.18/reference/targets/relocated_files.mdx @@ -61,7 +61,7 @@ Backend: `pants.core` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -74,7 +74,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. diff --git a/versioned_docs/version-2.18/reference/targets/remote_environment.mdx b/versioned_docs/version-2.18/reference/targets/remote_environment.mdx index 3fd9a40fe..23337bc11 100644 --- a/versioned_docs/version-2.18/reference/targets/remote_environment.mdx +++ b/versioned_docs/version-2.18/reference/targets/remote_environment.mdx @@ -32,7 +32,7 @@ Backend: `pants.core` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -45,7 +45,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -105,27 +105,39 @@ However, it is only safe to set this to `True` if the remote execution environme -## `apache_thrift_thrift_search_paths` +## `golang_cgo_c_flags` -Overrides the default value from the option `[apache-thrift].thrift_search_paths` when this environment target is active. +Overrides the default value from the option `[golang].cgo_c_flags` when this environment target is active. -## `nodejs_executable_search_paths` +## `go_generate_env_vars` -Overrides the default value from the option `[nodejs].executable_search_paths` when this environment target is active. +Overrides the default value from the option `[go-generate].env_vars` when this environment target is active. + + + +## `docker_executable_search_paths` + + + +Overrides the default value from the option `[docker].executable_search_paths` when this environment target is active. @@ -141,67 +153,67 @@ Overrides the default value from the option `[golang].cgo_fortran_binary_name` w -## `python_native_code_ld_flags` +## `golang_go_search_paths` -Overrides the default value from the option `[python-native-code].ld_flags` when this environment target is active. +Overrides the default value from the option `[golang].go_search_paths` when this environment target is active. -## `docker_env_vars` +## `pex_executable_search_paths` -Overrides the default value from the option `[docker].env_vars` when this environment target is active. +Overrides the default value from the option `[pex].executable_search_paths` when this environment target is active. -## `golang_cgo_gcc_binary_name` +## `golang_subprocess_env_vars` -Overrides the default value from the option `[golang].cgo_gcc_binary_name` when this environment target is active. +Overrides the default value from the option `[golang].subprocess_env_vars` when this environment target is active. -## `test_extra_env_vars` +## `nodejs_search_path` -Overrides the default value from the option `[test].extra_env_vars` when this environment target is active. +Overrides the default value from the option `[nodejs].search_path` when this environment target is active. -## `python_bootstrap_search_path` +## `golang_cgo_fortran_flags` -Overrides the default value from the option `[python-bootstrap].search_path` when this environment target is active. +Overrides the default value from the option `[golang].cgo_fortran_flags` when this environment target is active. -## `golang_go_search_paths` +## `golang_cgo_tool_search_paths` -Overrides the default value from the option `[golang].go_search_paths` when this environment target is active. +Overrides the default value from the option `[golang].cgo_tool_search_paths` when this environment target is active. -## `golang_cgo_fortran_flags` +## `golang_cgo_gcc_binary_name` -Overrides the default value from the option `[golang].cgo_fortran_flags` when this environment target is active. +Overrides the default value from the option `[golang].cgo_gcc_binary_name` when this environment target is active. -## `python_native_code_cpp_flags` +## `apache_thrift_thrift_search_paths` -Overrides the default value from the option `[python-native-code].cpp_flags` when this environment target is active. +Overrides the default value from the option `[apache-thrift].thrift_search_paths` when this environment target is active. -## `go_generate_env_vars` +## `python_native_code_ld_flags` -Overrides the default value from the option `[go-generate].env_vars` when this environment target is active. +Overrides the default value from the option `[python-native-code].ld_flags` when this environment target is active. -## `golang_cgo_c_flags` +## `shell_setup_executable_search_paths` -Overrides the default value from the option `[golang].cgo_c_flags` when this environment target is active. +Overrides the default value from the option `[shell-setup].executable_search_paths` when this environment target is active. -## `jvm_global_options` +## `test_extra_env_vars` -Overrides the default value from the option `[jvm].global_options` when this environment target is active. +Overrides the default value from the option `[test].extra_env_vars` when this environment target is active. -## `pex_executable_search_paths` +## `golang_external_linker_binary_name` -Overrides the default value from the option `[pex].executable_search_paths` when this environment target is active. +Overrides the default value from the option `[golang].external_linker_binary_name` when this environment target is active. -## `golang_cgo_gxx_binary_name` +## `docker_env_vars` -Overrides the default value from the option `[golang].cgo_gxx_binary_name` when this environment target is active. +Overrides the default value from the option `[docker].env_vars` when this environment target is active. -## `golang_subprocess_env_vars` +## `golang_cgo_gxx_binary_name` -Overrides the default value from the option `[golang].subprocess_env_vars` when this environment target is active. +Overrides the default value from the option `[golang].cgo_gxx_binary_name` when this environment target is active. -## `nodejs_search_path` +## `jvm_global_options` -Overrides the default value from the option `[nodejs].search_path` when this environment target is active. +Overrides the default value from the option `[jvm].global_options` when this environment target is active. -## `golang_cgo_tool_search_paths` +## `python_native_code_cpp_flags` -Overrides the default value from the option `[golang].cgo_tool_search_paths` when this environment target is active. +Overrides the default value from the option `[python-native-code].cpp_flags` when this environment target is active. -## `docker_executable_search_paths` +## `nodejs_corepack_env_vars` -Overrides the default value from the option `[docker].executable_search_paths` when this environment target is active. +Overrides the default value from the option `[nodejs].corepack_env_vars` when this environment target is active. -## `python_bootstrap_names` +## `golang_cgo_linker_flags` -Overrides the default value from the option `[python-bootstrap].names` when this environment target is active. +Overrides the default value from the option `[golang].cgo_linker_flags` when this environment target is active. -## `subprocess_environment_env_vars` +## `python_bootstrap_search_path` -Overrides the default value from the option `[subprocess-environment].env_vars` when this environment target is active. +Overrides the default value from the option `[python-bootstrap].search_path` when this environment target is active. -## `nodejs_corepack_env_vars` +## `pyenv_python_provider_installation_extra_env_vars` -Overrides the default value from the option `[nodejs].corepack_env_vars` when this environment target is active. +Overrides the default value from the option `[pyenv-python-provider].installation_extra_env_vars` when this environment target is active. -## `golang_cgo_linker_flags` +## `golang_cgo_cxx_flags` -Overrides the default value from the option `[golang].cgo_linker_flags` when this environment target is active. +Overrides the default value from the option `[golang].cgo_cxx_flags` when this environment target is active. -## `shell_setup_executable_search_paths` +## `nodejs_executable_search_paths` -Overrides the default value from the option `[shell-setup].executable_search_paths` when this environment target is active. +Overrides the default value from the option `[nodejs].executable_search_paths` when this environment target is active. -## `golang_cgo_cxx_flags` +## `python_bootstrap_names` -Overrides the default value from the option `[golang].cgo_cxx_flags` when this environment target is active. +Overrides the default value from the option `[python-bootstrap].names` when this environment target is active. -## `golang_external_linker_binary_name` +## `subprocess_environment_env_vars` -Overrides the default value from the option `[golang].external_linker_binary_name` when this environment target is active. +Overrides the default value from the option `[subprocess-environment].env_vars` when this environment target is active. diff --git a/versioned_docs/version-2.18/reference/targets/resource.mdx b/versioned_docs/version-2.18/reference/targets/resource.mdx index c63ec5c2c..8573949b0 100644 --- a/versioned_docs/version-2.18/reference/targets/resource.mdx +++ b/versioned_docs/version-2.18/reference/targets/resource.mdx @@ -26,7 +26,7 @@ Backend: `pants.core` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -39,7 +39,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -52,9 +52,9 @@ Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descr Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/resources.mdx b/versioned_docs/version-2.18/reference/targets/resources.mdx index 531e7126f..4bab2b636 100644 --- a/versioned_docs/version-2.18/reference/targets/resources.mdx +++ b/versioned_docs/version-2.18/reference/targets/resources.mdx @@ -24,7 +24,7 @@ Backend: `pants.core` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -94,9 +94,9 @@ You can specify the same file name in multiple keys, so long as you don't o Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/run_shell_command.mdx b/versioned_docs/version-2.18/reference/targets/run_shell_command.mdx index 96824cfac..bf8dfe79c 100644 --- a/versioned_docs/version-2.18/reference/targets/run_shell_command.mdx +++ b/versioned_docs/version-2.18/reference/targets/run_shell_command.mdx @@ -37,7 +37,7 @@ Backend: `pants.backend.shell` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -50,7 +50,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. diff --git a/versioned_docs/version-2.18/reference/targets/rust_package.mdx b/versioned_docs/version-2.18/reference/targets/rust_package.mdx new file mode 100644 index 000000000..38d768924 --- /dev/null +++ b/versioned_docs/version-2.18/reference/targets/rust_package.mdx @@ -0,0 +1,73 @@ +--- +title: rust_package +--- + +import Field from "@site/src/components/reference/Field"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +A Rust package as defined in https://doc.rust-lang.org/book/ch07-01-packages-and-crates.html. + +Expects that there is a `Cargo.toml` target in its root directory + +Backend: `pants.backend.experimental.rust` + +--- + + + +## `tags` + + + +Arbitrary strings to describe a target. + +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. + + + +## `description` + + + +A human-readable description of the target. + +Use `pants list --documented ::` to see all targets with descriptions. + + + +## `sources` + + + +A list of files and globs that belong to this target. + +Paths are relative to the BUILD file's directory. You can ignore files/globs by prefixing them with `!`. + +Example: `sources=['src/main.rs', 'src/new_*.rs', '!src/old_ignore.py']` + + + +## `skip_rustfmt` + + + +If true, don't run rustfmt on this crate. + + + + diff --git a/versioned_docs/version-2.18/reference/targets/scala_artifact.mdx b/versioned_docs/version-2.18/reference/targets/scala_artifact.mdx index bff81afed..308740263 100644 --- a/versioned_docs/version-2.18/reference/targets/scala_artifact.mdx +++ b/versioned_docs/version-2.18/reference/targets/scala_artifact.mdx @@ -30,7 +30,7 @@ Backend: `pants.backend.experimental.scala` @@ -43,7 +43,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -97,7 +97,7 @@ The JVM packages this artifact provides for the purposes of dependency inference For example, the JVM artifact `junit:junit` might provide `["org.junit.**"]`. -Usually you can leave this field off. If unspecified, Pants will fall back to the `[java-infer].third_party_import_mapping`, then to a built in mapping (https://github.com/pantsbuild/pants/blob/release_2.18.0rc5/src/python/pants/jvm/dependency_inference/jvm_artifact_mappings.py), and then finally it will default to the normalized `group` of the artifact. For example, in the absence of any other mapping the artifact `io.confluent:common-config` would default to providing `["io.confluent.**"]`. +Usually you can leave this field off. If unspecified, Pants will fall back to the `[java-infer].third_party_import_mapping`, then to a built in mapping (https://github.com/pantsbuild/pants/blob/release_2.18.1/src/python/pants/jvm/dependency_inference/jvm_artifact_mappings.py), and then finally it will default to the normalized `group` of the artifact. For example, in the absence of any other mapping the artifact `io.confluent:common-config` would default to providing `["io.confluent.**"]`. The package path may be made recursive to match symbols in subpackages by adding `.**` to the end of the package path. For example, specify `["org.junit.**"]` to infer a dependency on the artifact for any file importing a symbol from `org.junit` or its subpackages. diff --git a/versioned_docs/version-2.18/reference/targets/scala_junit_test.mdx b/versioned_docs/version-2.18/reference/targets/scala_junit_test.mdx index 5d58ce5ca..4435e1f2c 100644 --- a/versioned_docs/version-2.18/reference/targets/scala_junit_test.mdx +++ b/versioned_docs/version-2.18/reference/targets/scala_junit_test.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.experimental.scala` @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -50,9 +50,9 @@ Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descr Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/scala_junit_tests.mdx b/versioned_docs/version-2.18/reference/targets/scala_junit_tests.mdx index 1a65b3282..e0a6b8fa3 100644 --- a/versioned_docs/version-2.18/reference/targets/scala_junit_tests.mdx +++ b/versioned_docs/version-2.18/reference/targets/scala_junit_tests.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.experimental.scala` @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -107,9 +107,9 @@ If unset, will default to `[test].timeout_default`; if that option is also unset Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/scala_source.mdx b/versioned_docs/version-2.18/reference/targets/scala_source.mdx index 6ea5d9236..9a1c6e5c6 100644 --- a/versioned_docs/version-2.18/reference/targets/scala_source.mdx +++ b/versioned_docs/version-2.18/reference/targets/scala_source.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.experimental.scala` @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -50,9 +50,9 @@ Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descr Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/scala_sources.mdx b/versioned_docs/version-2.18/reference/targets/scala_sources.mdx index 56d04e3f5..d61b675d0 100644 --- a/versioned_docs/version-2.18/reference/targets/scala_sources.mdx +++ b/versioned_docs/version-2.18/reference/targets/scala_sources.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.experimental.scala` @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -106,9 +106,9 @@ If true, don't run `scalafmt` on this target's code. Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/scalac_plugin.mdx b/versioned_docs/version-2.18/reference/targets/scalac_plugin.mdx index 2e9c51213..5debfdf3a 100644 --- a/versioned_docs/version-2.18/reference/targets/scalac_plugin.mdx +++ b/versioned_docs/version-2.18/reference/targets/scalac_plugin.mdx @@ -28,7 +28,7 @@ Backend: `pants.backend.experimental.scala` @@ -41,7 +41,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. diff --git a/versioned_docs/version-2.18/reference/targets/scalatest_test.mdx b/versioned_docs/version-2.18/reference/targets/scalatest_test.mdx index 54e9a6d9e..d16770489 100644 --- a/versioned_docs/version-2.18/reference/targets/scalatest_test.mdx +++ b/versioned_docs/version-2.18/reference/targets/scalatest_test.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.experimental.scala` @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -50,9 +50,9 @@ Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descr Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/scalatest_tests.mdx b/versioned_docs/version-2.18/reference/targets/scalatest_tests.mdx index 6b798054b..d9f116bcd 100644 --- a/versioned_docs/version-2.18/reference/targets/scalatest_tests.mdx +++ b/versioned_docs/version-2.18/reference/targets/scalatest_tests.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.experimental.scala` @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -94,9 +94,9 @@ You can specify the same file name in multiple keys, so long as you don't o Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/shell_command.mdx b/versioned_docs/version-2.18/reference/targets/shell_command.mdx index f7dc848c2..507f27c3c 100644 --- a/versioned_docs/version-2.18/reference/targets/shell_command.mdx +++ b/versioned_docs/version-2.18/reference/targets/shell_command.mdx @@ -42,7 +42,7 @@ Backend: `pants.backend.shell` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -55,7 +55,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. diff --git a/versioned_docs/version-2.18/reference/targets/shell_source.mdx b/versioned_docs/version-2.18/reference/targets/shell_source.mdx index 92ae90112..908245105 100644 --- a/versioned_docs/version-2.18/reference/targets/shell_source.mdx +++ b/versioned_docs/version-2.18/reference/targets/shell_source.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.shell` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -50,9 +50,9 @@ Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descr Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. @@ -73,27 +73,27 @@ Path is relative to the BUILD file's directory, e.g. `source='example.ext'` -## `skip_shellcheck` +## `skip_shfmt` -If true, don't run Shellcheck on this target's code. +If true, don't run shfmt on this target's code. -## `skip_shfmt` +## `skip_shellcheck` -If true, don't run shfmt on this target's code. +If true, don't run Shellcheck on this target's code. diff --git a/versioned_docs/version-2.18/reference/targets/shell_sources.mdx b/versioned_docs/version-2.18/reference/targets/shell_sources.mdx index 419f97b62..1ec787c9d 100644 --- a/versioned_docs/version-2.18/reference/targets/shell_sources.mdx +++ b/versioned_docs/version-2.18/reference/targets/shell_sources.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.shell` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -85,27 +85,27 @@ You can specify the same file name in multiple keys, so long as you don't o -## `skip_shellcheck` +## `skip_shfmt` -If true, don't run Shellcheck on this target's code. +If true, don't run shfmt on this target's code. -## `skip_shfmt` +## `skip_shellcheck` -If true, don't run shfmt on this target's code. +If true, don't run Shellcheck on this target's code. @@ -118,9 +118,9 @@ If true, don't run shfmt on this target's code. Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/shunit2_test.mdx b/versioned_docs/version-2.18/reference/targets/shunit2_test.mdx index b9cfd5533..c0eb5c506 100644 --- a/versioned_docs/version-2.18/reference/targets/shunit2_test.mdx +++ b/versioned_docs/version-2.18/reference/targets/shunit2_test.mdx @@ -28,7 +28,7 @@ Backend: `pants.backend.shell` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -41,7 +41,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -67,9 +67,9 @@ Path is relative to the BUILD file's directory, e.g. `source='example.ext'` Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. @@ -119,35 +119,35 @@ Which shell to run the tests with. If unspecified, Pants will look for a shebang default_repr={`None`} > -Addresses to targets that can be built with the `scie-pants-linux-x86_64 package` goal and whose resulting artifacts should be included in the test run. +Addresses to targets that can be built with the `pants package` goal and whose resulting artifacts should be included in the test run. -Pants will build the artifacts as if you had run `scie-pants-linux-x86_64 package`. It will include the results in your test's chroot, using the same name they would normally have, but without the `--distdir` prefix (e.g. `dist/`). +Pants will build the artifacts as if you had run `pants package`. It will include the results in your test's chroot, using the same name they would normally have, but without the `--distdir` prefix (e.g. `dist/`). -You can include anything that can be built by `scie-pants-linux-x86_64 package`, e.g. a `pex_binary`, `python_aws_lambda_function`, or an `archive`. +You can include anything that can be built by `pants package`, e.g. a `pex_binary`, `python_aws_lambda_function`, or an `archive`. -## `skip_shellcheck` +## `skip_shfmt` -If true, don't run Shellcheck on this target's code. +If true, don't run shfmt on this target's code. -## `skip_shfmt` +## `skip_shellcheck` -If true, don't run shfmt on this target's code. +If true, don't run Shellcheck on this target's code. diff --git a/versioned_docs/version-2.18/reference/targets/shunit2_tests.mdx b/versioned_docs/version-2.18/reference/targets/shunit2_tests.mdx index 72e092e2e..0256d8ef3 100644 --- a/versioned_docs/version-2.18/reference/targets/shunit2_tests.mdx +++ b/versioned_docs/version-2.18/reference/targets/shunit2_tests.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.shell` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -85,27 +85,27 @@ You can specify the same file name in multiple keys, so long as you don't o -## `skip_shellcheck` +## `skip_shfmt` -If true, don't run Shellcheck on this target's code. +If true, don't run shfmt on this target's code. -## `skip_shfmt` +## `skip_shellcheck` -If true, don't run shfmt on this target's code. +If true, don't run Shellcheck on this target's code. @@ -118,9 +118,9 @@ If true, don't run shfmt on this target's code. Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. @@ -170,11 +170,11 @@ Which shell to run the tests with. If unspecified, Pants will look for a shebang default_repr={`None`} > -Addresses to targets that can be built with the `scie-pants-linux-x86_64 package` goal and whose resulting artifacts should be included in the test run. +Addresses to targets that can be built with the `pants package` goal and whose resulting artifacts should be included in the test run. -Pants will build the artifacts as if you had run `scie-pants-linux-x86_64 package`. It will include the results in your test's chroot, using the same name they would normally have, but without the `--distdir` prefix (e.g. `dist/`). +Pants will build the artifacts as if you had run `pants package`. It will include the results in your test's chroot, using the same name they would normally have, but without the `--distdir` prefix (e.g. `dist/`). -You can include anything that can be built by `scie-pants-linux-x86_64 package`, e.g. a `pex_binary`, `python_aws_lambda_function`, or an `archive`. +You can include anything that can be built by `pants package`, e.g. a `pex_binary`, `python_aws_lambda_function`, or an `archive`. diff --git a/versioned_docs/version-2.18/reference/targets/swift_source.mdx b/versioned_docs/version-2.18/reference/targets/swift_source.mdx new file mode 100644 index 000000000..0ec2825ae --- /dev/null +++ b/versioned_docs/version-2.18/reference/targets/swift_source.mdx @@ -0,0 +1,76 @@ +--- +title: swift_source +--- + +import Field from "@site/src/components/reference/Field"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +A single Swift source file. + +Backend: `pants.backend.experimental.swift` + +--- + + + +## `tags` + + + +Arbitrary strings to describe a target. + +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. + + + +## `description` + + + +A human-readable description of the target. + +Use `pants list --documented ::` to see all targets with descriptions. + + + +## `dependencies` + + + +Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. + +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. + +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. + +If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. + +You may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file. + + + +## `source` + + + +A single file that belongs to this target. + +Path is relative to the BUILD file's directory, e.g. `source='example.ext'`. + + + + diff --git a/versioned_docs/version-2.18/reference/targets/swift_sources.mdx b/versioned_docs/version-2.18/reference/targets/swift_sources.mdx new file mode 100644 index 000000000..ad4150fcc --- /dev/null +++ b/versioned_docs/version-2.18/reference/targets/swift_sources.mdx @@ -0,0 +1,78 @@ +--- +title: swift_sources +--- + +import Field from "@site/src/components/reference/Field"; +import styles from "@site/src/components/reference/styles.module.css"; + +--- + +Generate a `swift_source` target for each file in the `sources` field. + +Backend: `pants.backend.experimental.swift` + +--- + + + +## `tags` + + + +Arbitrary strings to describe a target. + +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. + + + +## `description` + + + +A human-readable description of the target. + +Use `pants list --documented ::` to see all targets with descriptions. + + + +## `sources` + + + +A list of files and globs that belong to this target. + +Paths are relative to the BUILD file's directory. You can ignore files/globs by prefixing them with `!`. + +Example: `sources=['utils.swift', 'subdir/*.swift', '!ignore_me.swift']` + + + +## `dependencies` + + + +Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. + +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. + +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. + +If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. + +You may exclude dependencies by prefixing with `!`, e.g. `['!helloworld/subdir:lib', '!./sibling.txt']`. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file. + + + + diff --git a/versioned_docs/version-2.18/reference/targets/system_binary.mdx b/versioned_docs/version-2.18/reference/targets/system_binary.mdx index 9920f16b2..d7bd775a0 100644 --- a/versioned_docs/version-2.18/reference/targets/system_binary.mdx +++ b/versioned_docs/version-2.18/reference/targets/system_binary.mdx @@ -28,7 +28,7 @@ Backend: `pants.backend.experimental.adhoc` @@ -41,7 +41,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. diff --git a/versioned_docs/version-2.18/reference/targets/target.mdx b/versioned_docs/version-2.18/reference/targets/target.mdx index 54170a25b..0daebe015 100644 --- a/versioned_docs/version-2.18/reference/targets/target.mdx +++ b/versioned_docs/version-2.18/reference/targets/target.mdx @@ -26,7 +26,7 @@ Backend: `pants.core` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -39,7 +39,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -52,9 +52,9 @@ Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descr Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/terraform_deployment.mdx b/versioned_docs/version-2.18/reference/targets/terraform_deployment.mdx index 5cb4fb7b8..8a0324a13 100644 --- a/versioned_docs/version-2.18/reference/targets/terraform_deployment.mdx +++ b/versioned_docs/version-2.18/reference/targets/terraform_deployment.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.experimental.terraform` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -50,9 +50,9 @@ Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descr Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. diff --git a/versioned_docs/version-2.18/reference/targets/terraform_module.mdx b/versioned_docs/version-2.18/reference/targets/terraform_module.mdx index 14c55489f..42e0bedee 100644 --- a/versioned_docs/version-2.18/reference/targets/terraform_module.mdx +++ b/versioned_docs/version-2.18/reference/targets/terraform_module.mdx @@ -28,7 +28,7 @@ Backend: `pants.backend.experimental.terraform` Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -41,7 +41,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -54,9 +54,9 @@ Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descr Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. @@ -79,4 +79,16 @@ Example: `sources=['example.tf', 'new_*.tf', '!old_ignore.tf']` +## `skip_tfsec` + + + +If true, don't run tfsec on this target's Terraform files. + + + diff --git a/versioned_docs/version-2.18/reference/targets/thrift_source.mdx b/versioned_docs/version-2.18/reference/targets/thrift_source.mdx index 7264a94cf..a162c1759 100644 --- a/versioned_docs/version-2.18/reference/targets/thrift_source.mdx +++ b/versioned_docs/version-2.18/reference/targets/thrift_source.mdx @@ -27,7 +27,7 @@ Backend: `pants.backend.codegen.thrift.apache.p Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -40,7 +40,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -53,9 +53,9 @@ Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descr Addresses to other targets that this target depends on, e.g. `['helloworld/subdir:lib', 'helloworld/main.py:lib', '3rdparty:reqs#django']`. -This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `scie-pants-linux-x86_64 dependencies` or `scie-pants-linux-x86_64 peek` on this target to get the final result. +This augments any dependencies inferred by Pants, such as by analyzing your imports. Use `pants dependencies` or `pants peek` on this target to get the final result. -See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `scie-pants-linux-x86_64 list ::` to find all addresses in your project, or `scie-pants-linux-x86_64 list dir` to find all addresses defined in that directory. +See https://www.pantsbuild.org/v2.18/docs/targets for more about how addresses are formed, including for generated targets. You can also run `pants list ::` to find all addresses in your project, or `pants list dir` to find all addresses defined in that directory. If the target is in the same BUILD file, you can leave off the BUILD file path, e.g. `:tgt` instead of `helloworld/subdir:tgt`. For generated first-party addresses, use `./` for the file path, e.g. `./main.py:tgt`; for all other generated targets, use `:tgt#generated_name`. @@ -76,6 +76,18 @@ Path is relative to the BUILD file's directory, e.g. `source='example.ext'` +## `jvm_jdk` + + + +The major version of the JDK that this target should be built with. If not defined, will default to `[jvm].default_source_jdk`. + + + ## `python_resolve` +## `jvm_resolve` + + + +The resolve from `[jvm].resolves` to use when compiling this target. + +If not defined, will default to `[jvm].default_resolve`. + + + +## `finagle` + + + +If True, then also generate Finagle classes for services when using Scrooge as the Thrift generator. + + + diff --git a/versioned_docs/version-2.18/reference/targets/thrift_sources.mdx b/versioned_docs/version-2.18/reference/targets/thrift_sources.mdx index d20113976..338ffa1ef 100644 --- a/versioned_docs/version-2.18/reference/targets/thrift_sources.mdx +++ b/versioned_docs/version-2.18/reference/targets/thrift_sources.mdx @@ -24,7 +24,7 @@ Backend: `pants.backend.codegen.thrift.apache.p Arbitrary strings to describe a target. -For example, you may tag some test targets with 'integration_test' so that you could run `scie-pants-linux-x86_64 --tag='integration_test' test ::` to only run on targets with that tag. +For example, you may tag some test targets with 'integration_test' so that you could run `pants --tag='integration_test' test ::` to only run on targets with that tag. @@ -37,7 +37,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions. @@ -84,6 +84,18 @@ You can specify the same file name in multiple keys, so long as you don't o +## `jvm_jdk` + + + +The major version of the JDK that this target should be built with. If not defined, will default to `[jvm].default_source_jdk`. + + + ## `python_resolve` +## `jvm_resolve` + + + +The resolve from `[jvm].resolves` to use when compiling this target. + +If not defined, will default to `[jvm].default_resolve`. + + + +## `finagle` + + + +If True, then also generate Finagle classes for services when using Scrooge as the Thrift generator. + + + ## `dependencies` `pants.backend.experimental.python` @@ -43,7 +43,7 @@ For example, you may tag some test targets with 'integration_test' so A human-readable description of the target. -Use `scie-pants-linux-x86_64 list --documented ::` to see all targets with descriptions. +Use `pants list --documented ::` to see all targets with descriptions.