Design a unified target graph for projects and solutions#31
Design a unified target graph for projects and solutions#31
Conversation
Design and Target Graph not final — WIP
4acb747 to
3e0c041
Compare
e949db8 to
bfc790a
Compare
bfc790a to
9b983cd
Compare
9b983cd to
d1fe095
Compare
|
This is pretty neat, but I think it's less clear what the unified target graph means across various SDKs. I always thought the Maven way of thinking about this was a lot cleaner and better followed the principles of dependency inversion by declaring an interface in the form of a goal that the plug-in targets had to achieve. I think that also aligns closely with what the original "The Build Master" textbook on MSBuild advocated for. If you think broadly about "what do we really want that other ecosystems have" and "what we have today (via binlog replays)" you can see that the main gap is still in traceability of inputs, mostly around goal-directed values passed into black boxes for these targets vs the targets themselves. There's no way to "observe" what the black box does in generating outputs/task items. |
May be I should come up with better naming. That said, with the current MSBuild target graph, although extensible, they are not what I call a concept based or more accurately—action based graph. What I mean is, if you take a This is just one example of an action based target graph design, I'm experimenting with. Likewise, you'd have a similar pattern of thought for other concepts that exist in the Build System (
I personally don't like certain things about Maven, first is Java but that's subjective 😅. Then again, I have to say, when I was working on some java projects, Maven felt a lot cleaner, even though it was verbose, it had defined the language better. Once you know the language, the concepts, you can easily understand a
TRUE THAT. As you said
|
d1fe095 to
eeede52
Compare
eeede52 to
7c2adaf
Compare
Goals
Targets List:
RestoreBuildCleanRebuild(wrapper aroundClean + Build)TestRunPublishNOTE: Design of the Target Graph is not final!