happy-kitchen-89482
09/19/2025, 2:07 PMhappy-kitchen-89482
09/19/2025, 2:08 PMfast-school-44220
09/19/2025, 3:09 PMhappy-kitchen-89482
09/19/2025, 4:38 PMpants migrate-call-by-name <paths>). The next step is for me to write that documentation…happy-kitchen-89482
09/19/2025, 4:38 PMfast-school-44220
09/19/2025, 4:40 PMwide-midnight-78598
09/19/2025, 9:02 PMwide-midnight-78598
09/19/2025, 9:06 PMGet(Process) case when you have to manually move implicitly around, but there are the cases where even the rule graph transformer thing that Stu wrote won’t see the Gets - e.g. in rule_helpers and whatnot.
I’d wager that the overwhelming majority of plugins should be super straight-forward by comparisonwide-midnight-78598
09/19/2025, 9:08 PMfast-school-44220
09/20/2025, 1:38 AMhappy-kitchen-89482
09/20/2025, 1:19 PMhappy-kitchen-89482
09/20/2025, 1:19 PMwide-midnight-78598
09/20/2025, 9:39 PMfast-school-44220
09/22/2025, 2:34 PMMutliGet()?wide-midnight-78598
09/22/2025, 2:35 PMwide-midnight-78598
09/22/2025, 2:35 PMfast-school-44220
09/22/2025, 2:36 PMwide-midnight-78598
09/22/2025, 2:38 PMis:pr “call-by-name” author:sureshjoshifast-school-44220
09/22/2025, 2:39 PMwide-midnight-78598
09/22/2025, 2:41 PMfast-school-44220
09/22/2025, 2:41 PMImportError: cannot import name 'Concurrently' from 'pants.engine.rules'wide-midnight-78598
09/22/2025, 2:41 PMfast-school-44220
09/22/2025, 2:42 PMfast-school-44220
09/22/2025, 2:42 PMwide-midnight-78598
09/22/2025, 2:42 PMconcurrently- my iPad thinks it knows best with my capitalizationwide-midnight-78598
09/22/2025, 2:44 PMmigrate-call-by-name call works. I haven’t tried in quite some time, and was going to look into it later this week.
pants migrate-call-by-name pants-plugins/something:: or wherever. The code that the rule engine processes might give grief if it’s out of the pants main repository. It definitely did that when I was trying to work on the goal from mainline, to an out-of-source pluginwide-midnight-78598
09/22/2025, 2:44 PMwide-midnight-78598
09/22/2025, 2:45 PMwide-midnight-78598
09/22/2025, 2:45 PMfast-school-44220
09/22/2025, 2:48 PMwide-midnight-78598
09/22/2025, 2:50 PMwide-midnight-78598
09/22/2025, 2:50 PMfast-school-44220
09/22/2025, 2:51 PMwide-midnight-78598
09/22/2025, 2:51 PMwide-midnight-78598
09/22/2025, 6:34 PMvenvs/2.29.0rc0/lib/python3.11/site-packages/pants/backend/python/util_rules/entry_points.py' is not in the subpath of 'oss/pants-plugins' OR one path is relative and the other is absolute.
I need to finally dig into this, and see why the rule graph was all janky with external plugins.fast-school-44220
09/24/2025, 5:58 PMwide-midnight-78598
09/24/2025, 6:03 PMfast-school-44220
09/24/2025, 6:29 PMwide-midnight-78598
09/24/2025, 7:19 PMPANTS_SOURCE=../pants-from-github pants migrate-call-by-name pants-plugins/experimental/scie::wide-midnight-78598
09/24/2025, 7:22 PMwide-midnight-78598
09/24/2025, 8:43 PMPANTS_SOURCE=../pants-from-github pants migrate-call-by-name pants-plugins/experimental/scie:: which involved cloning the main pants repo, building it, and then this.
That worked, with only a couple of hiccups:
• Updated the repo to a recent release
• Updated my plugin resolve to use Python 3.11
• pants generate-lockfiles --resolve=pants-plugins
• pants export :: - to use ./dist/export/python/virtualenvs/pants-plugins/3.11.13/ as my virtualenv in VSCode to detect certain problems ahead of time
The only migration problem I had, was that result = await Get(ProcessResult, Process, process) this somehow got migrated into result = await fallible_to_exec_result_or_raise(**implicitly(process)) which call-by-name can't type correctly. It needed to be result = await fallible_to_exec_result_or_raise(**implicitly({ process: Process }))
or, what I eventually did (and what we do a lot in-repo)
result = await fallible_to_exec_result_or_raise(
**implicitly(
Process(
argv=argv,
input_digest=input_digest,
description="Run science on the input digests",
output_files=output_files,
level=LogLevel.DEBUG,
)
)
)
Eventually, we'd also add an update from fallible_to_exec_result_or_raise to execute_process_or_raise which is an alias in the same module.
I was hoping the method I tried wouldn't work, as that would make it easy to debug so that we can run that command on the release itselffast-school-44220
09/24/2025, 8:45 PMwide-midnight-78598
09/24/2025, 8:49 PMwide-midnight-78598
09/25/2025, 3:19 AMfast-school-44220
09/29/2025, 7:18 PMfast-school-44220
09/29/2025, 7:18 PMfast-school-44220
09/29/2025, 7:21 PMfast-school-44220
09/29/2025, 7:23 PMpants fix fmt lint check test src/python/pants/backend/WHATEVER:: to clean up the `implicity`s?wide-midnight-78598
09/29/2025, 8:17 PMmostly worked, but I got one "failed to find dependencies" warning twice.Yeah, it's not 100% fool-proof, more like 80% and requires manual cleanup. Some of the items are actually just that the rule graph can't find a handful of items, depending on how they're ordered and whether they're nested, etc. Sometimes it's a cause of the AST work, which was targeting the bulk of the 5000 or so changes Pants had to make, but not all of them
fast-school-44220
09/29/2025, 8:22 PMwide-midnight-78598
09/29/2025, 8:23 PMfast-school-44220
09/29/2025, 9:00 PM**implicitly() is actually doing. 🙂wide-midnight-78598
09/29/2025, 9:01 PMNow I just need a document to explain whatDon't we all 😆 Hang on, Benjy did a big document re-write for the docsis actually doing**implicitly()
wide-midnight-78598
09/29/2025, 9:03 PMwide-midnight-78598
09/29/2025, 9:04 PMGet mechanism, but now it's more... ummm "explicily implicit"fast-school-44220
09/30/2025, 12:44 AM