Closed jeremyfowers closed 3 months ago
@danielholanda @ramkrishna2910 @vgodsoe please discuss this decision
I find that most of the confusion comes from our initial attempts to it a stage and a few puns around it. What it we instead use some terminology that is common in compiler flows (e.g. passes
instead of stages
)?
The main thing that I'm not a big fan in the above proposal is the name "ToolChain" as it is not as clear as "Sequence" in a phrase.
"You can run a sequence of stages" is much easier to understand than "You can combine multiple build tools into a tool chain".
"You can run a sequence of stages" is much easier to understand than "You can combine multiple build tools into a tool chain".
Agree.
What it we instead use some terminology that is common in compiler flows (e.g. passes instead of stages)?
The nice thing about Tool
is that it applies equally well to both the build tools (e.g., export tool
) and the management tools (e.g., report tool
).
Some more brainstorming:
I've been trying out Tool
and I think it's good.
We have Stages and ManagementTools, which are quite similar but also different in meaningful ways (e.g., Stages have State but ManagementTools don't; Stages are meant to be sequenced but ManagementTools are not, etc.).
Should they both be called Stage or Tool?
IMO, everything should be a Tool. People automatically know what "Tool" and "Toolchain" mean in context, while "Stage" and "Sequence" require explanation like "a Stage is a tool that you can chain into a Sequence..."
Under this change, the classes would be:
Example
BuildTool
s:discover
,export-pytorch
,benchmark
ExampleManagementTool
s:report
,cache
,version