Open lbussell opened 2 weeks 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 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.
As a side note to this - I took a look at other .NET projects. The .NET SDK Containers feature uses the Microsoft.NET.Build.Containers
namespace. .NET CLI uses the Microsoft.DotNet.Cli
namespace. There is a mix of Microsoft.NET.*
and Microsoft.DotNet.*
everywhere from what I can see - so there's no reason to change that part of our namespaces IMO.
I have a small proposal to the docker-tools namespace: Microsoft.DotNet.Docker.Tools.FilePusher
. To me DockerTools
should be one pascal cased word. Is it the source repo. It is a single concept much like FilePusher. There aren't other "things" under Microsoft.DotNet.Docker
.
Summary
We are approaching the point where it would make sense to share code between some of the .NET Docker projects. For example, sharing code to create pull requests between FilePusher and ImageBuilder, or sharing code for reading the manifest.versions.json file between the update-dependencies tool and dotnet-docker tests. Straightening out our namespaces between projects is a prerequisite to that. Even if we didn't decide to do those things, our repos and projects are inconsistent with each other. This is a proposal to make everything more consistent.
Current
Repo: dotnet-docker
eng/update-dependencies/update-dependencies.sln
update-dependencies.csproj
Dotnet.Docker
[sic]tests/Microsoft.DotNet.Docker.Tests/Microsoft.DotNet.Docker.Tests.sln
Microsoft.DotNet.Docker.Tests.csproj
Microsoft.DotNet.Docker.Tests
Repo: docker-tools
eng/src/tools.sln
file-pusher/file-pusher.csproj
FilePusher
yaml-updater/yaml-updater.csproj
YamlUpdater
src/Microsoft.DotNet.ImageBuilder/Microsoft.DotNet.ImageBuilder.sln
src/Microsoft.DotNet.ImageBuilder.csproj
Microsoft.DotNet.ImageBuilder
tests/Microsoft.DotNet.ImageBuilder.Tests.csproj
Microsoft.DotNet.ImageBuilder.Tests
Proposal
One solution per repo for our projects (samples notwithstanding). Namespaces should roughly match up with project paths. Give update-dependencies, file-pusher, and yaml-updater more consistent project names and namespaces.
Repo: dotnet-docker
Microsoft.DotNet.Docker.sln
eng/update-dependencies/Microsoft.DotNet.Docker.UpdateDependencies.csproj
Microsoft.DotNet.Docker.UpdateDependencies
eng/Microsoft.DotNet.Docker.Tests.csproj
Microsoft.DotNet.Docker.Tests
Repo: docker-tools
Microsoft.DotNet.Docker.Tools.sln
src/Microsoft.DotNet.Docker.Tools/FilePusher/FilePusher.csproj
Microsoft.DotNet.Docker.Tools.FilePusher
src/Microsoft.DotNet.Docker.Tools/YamlUpdater/YamlUpdater.csproj
Microsoft.DotNet.Docker.Tools.YamlUpdater
src/Microsoft.DotNet.Docker.Tools/ImageBuilder/ImageBuilder.csproj
Microsoft.DotNet.Docker.Tools.ImageBuilder
src/Microsoft.DotNet.Docker.Tools/ImageBuilder.Tests/ImageBuilder.Tests.csproj
Microsoft.DotNet.Docker.Tools.ImageBuilder.Tests