hundreds-father-404
01/20/2022, 12:45 AM./pants help ApiType
is such a game changer for plugin development. I've been trying to figure out how a Java API works, and realized I could run ./pants help CoursierResolvedLockfile
. Amazing! Thank you again 🙌busy-vase-39202
01/20/2022, 12:51 AMhundreds-father-404
01/20/2022, 12:53 AMbitter-ability-32190
01/20/2022, 1:16 AMbitter-ability-32190
01/20/2022, 1:17 AMhappy-kitchen-89482
01/20/2022, 1:19 AMhundreds-father-404
01/20/2022, 1:30 AMcurved-television-6568
01/20/2022, 6:20 AMcurved-television-6568
01/20/2022, 6:21 AM./pants help-advanced ..
for even more details ;)flat-zoo-31952
01/20/2022, 2:29 PMcurved-television-6568
01/20/2022, 2:32 PMcurved-television-6568
01/20/2022, 2:32 PMflat-zoo-31952
01/20/2022, 2:32 PMcurved-television-6568
01/20/2022, 2:34 PMhundreds-father-404
01/20/2022, 6:04 PM./pants help pants.engine.process.Process
? Rather than ./pants help Process
.
2. If we have ambiguity, print all matching types.
3. If we have ambiguity, fail eagerly and require plugins rename things
4. If we have ambiguity, choose 1 type to output and ignore the othershundreds-father-404
01/20/2022, 6:05 PM./pants help black python_source
workscurved-television-6568
01/20/2022, 6:06 PMPluginAPITypeInfo
as a first class thing in the AllHelpInfo
structure..)curved-television-6568
01/20/2022, 6:07 PMcurved-television-6568
01/20/2022, 6:07 PMcurved-television-6568
01/20/2022, 6:08 PMhundreds-father-404
01/20/2022, 6:09 PMI think we could present the options as a “did you mean …”I was considering that too, but it would require adding support for
./pants help
being interactive which is a big undertaking and I'm not convinced we want to make it interactive
Which led me to the second proposal, just output it allhundreds-father-404
01/20/2022, 6:09 PMProcess
are definedcurved-television-6568
01/20/2022, 6:18 PM… it would require adding support forHow so? No more interactive than:being interactive./pants help
$ ./pants testa ::
Unknown goal: testa
Did you mean test?
hundreds-father-404
01/20/2022, 6:22 PM./pants help Process
or ./pants help pants.engine.process.Process
?curved-television-6568
01/20/2022, 6:42 PMcurved-television-6568
01/20/2022, 6:43 PMhundreds-father-404
01/20/2022, 6:43 PMcurved-television-6568
01/20/2022, 6:43 PMcurved-television-6568
01/20/2022, 6:45 PM$ jq '.name_to_api_type_info["TestFieldSet"]' all.json
{
"consumed_by_rules": [],
"dependees": [
"pants.backend.experimental.go",
"pants.backend.experimental.java",
"pants.backend.experimental.scala",
"pants.backend.python",
"pants.backend.shell"
],
"dependencies": [],
"documentation": "The fields necessary to run tests on a target.",
"is_union": true,
"module": "pants.core.goals.test",
"name": "TestFieldSet",
"provider": "pants.core",
"returned_by_rules": [],
"union_members": [
"GoTestFieldSet",
"JunitTestFieldSet",
"PythonTestFieldSet",
"ScalatestTestFieldSet",
"Shunit2FieldSet"
],
"union_type": null,
"used_in_rules": [
"pants.core.goals.test.run_tests"
]
}
~/src/github/kaos/pants (api_types_docsite *)
$ jq '.name_to_api_type_info["BuiltPackage"]' all.json
{
"consumed_by_rules": [],
"dependees": [
"pants.backend.experimental.docker",
"pants.backend.experimental.go",
"pants.backend.python",
"pants.backend.shell",
"pants.core"
],
"dependencies": [
"builtins",
"pants.engine.process",
"pants.engine.target",
"pants.engine.unions",
"pants.option.global_options"
],
"documentation": "BuiltPackage(digest: 'Digest', artifacts: 'tuple[BuiltPackageArtifact, ...]')",
"is_union": false,
"module": "pants.core.goals.package",
"name": "BuiltPackage",
"provider": "pants.backend.experimental.docker, pants.backend.experimental.go, pants.backend.experimental.java, pants.backend.python, pants.core",
"returned_by_rules": [
"pants.backend.docker.goals.package_image.build_docker_image",
"pants.backend.go.goals.package_binary.package_go_binary",
"pants.backend.java.package.deploy_jar.package_deploy_jar",
"pants.backend.python.goals.package_pex_binary.package_pex_binary",
"pants.backend.python.goals.setup_py.package_python_dist",
"pants.core.target_types.package_archive_target"
],
"union_members": [],
"union_type": null,
"used_in_rules": [
"pants.backend.docker.goals.run_image.docker_image_run_request",
"pants.backend.docker.util_rules.docker_build_context.create_docker_build_context",
"pants.backend.go.goals.run_binary.create_go_binary_run_request",
"pants.backend.python.util_rules.local_dists.build_local_dists",
"pants.backend.shell.shell_command.prepare_shell_command_process",
"pants.core.goals.package.package_asset",
"pants.core.goals.publish.package_for_publish",
"pants.core.goals.test.build_runtime_package_dependencies",
"pants.core.target_types.package_archive_target"
]
}
curved-television-6568
01/21/2022, 2:28 PM