migrate-call-by-name
pants migrate-call-by-name [args]
Migrate from Get
syntax to call-by-name syntax (#19730). This is a destructive operation, so only run this on source controlled files that you are prepared to revert if necessary.
This goal will attempt to migrate the set of paths/targets specified at the command line if they are part of the "migration plan". This migration does not add any new files, but instead modifies existing files in-place without any formatting. The resulting changes should be reviewed, tested, and formatted/linted before committing.
The migration plan is a JSON representation of the rule graph, which is generated by the engine based on the active backends/rules in the project.
Each item in the migration plan is a rule that contains the old Get
syntax, the associated input/output types, and the new function to directly call. The migration plan can be dumped as JSON using the --json
flag, which can be useful for debugging. For example:
{ "filepath": "src/python/pants/source/source_root.py", "function": "get_source_roots", "gets": [{ "input_types": [{ "module": "pants.source.source_root", "name": "SourceRootsRequest" }], "output_type": { "module": "pants.source.source_root", "name": "OptionalSourceRootsResult" }, "rule_dep": { "function": "get_optional_source_roots", "module": "pants.source.source_root" } }], "module": "pants.source.source_root" }
Backend: pants.goal
Config section: [migrate-call-by-name]