Open ViktorHofer opened 6 months ago
I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.
I question why tools
is being treated distinctly here. I'm guessing the reasoning for moving tools
and not other things is because tools
consists of C# sources. But the scripts that exist in eng
could be considered tools as well. They're all just source files, just in different languages. The point is they're all related to engineering infrastructure which I feel eng
is the proper location for such things.
The original intent of the "eng" folder was to have a home for Arcade extension points: Build.props
, Publishing.props
, the shared eng/common
folder and others. Many repos then re-used that directory to also put scripts and YML in there. I don't think that managed code that is being compiled belongs there.
Browsing though our stack, repos that have locals tools often put them either in the repo root or under the src directory. Here are a few examples:
src/
: https://github.com/dotnet/runtime/tree/main/src/With a recent clean-up that I did in windowsdesktop and deployment-tools, I was able to remove their local tasks and tools: https://github.com/dotnet/deployment-tools/commit/8351133dec5f12efbad7fe14381ac7e9fd94cb32. Before that, they also had their tools and tasks under the repo root in a tools-local
folder.
I don't have a strong opinion here but I feel that devs expect managed code to not be located under /eng
. The eng folder grew to a big umbrella in runtime without a clear separation of what belong in there and what not. I want to avoid that in the VMR orchestrator.
[Triage] It would be good to get some more input/consensus on this. @premun, @akoeplinger, @mmitche do you have any input on this?
I tend to agree with moving the tools out of eng but I don't feel strongly.
I have no opinion on this
I don't feel strongly, but I think keeping a cleaner eng/ folder seems reasonable.
The eng folder was originally supposed to only include Arcade extension points. Since then, many repos put more stuff into eng, i.e. YML and msbuild files. All that makes sense. What I think could be improved in the current VMR layout is the location of tools and tasks. Those currently reside under eng/tools and I think it would be clearer if they would be under the repo root in a
tools
directory, next to thesrc
andtest
directories.Here are the proposed changes: https://github.com/dotnet/installer/compare/MoveToolsUnderRoot?expand=1