Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal for unifying .NET Docker project namespaces #1430

Open
lbussell opened this issue Sep 10, 2024 · 5 comments
Open

Proposal for unifying .NET Docker project namespaces #1430

lbussell opened this issue Sep 10, 2024 · 5 comments

Comments

@lbussell
Copy link
Contributor

lbussell commented Sep 10, 2024

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

  • Solution: eng/update-dependencies/update-dependencies.sln
    • Project: update-dependencies.csproj
      • Namespace: Dotnet.Docker [sic]
  • Solution: tests/Microsoft.DotNet.Docker.Tests/Microsoft.DotNet.Docker.Tests.sln
    • Project: Microsoft.DotNet.Docker.Tests.csproj
      • Namespace: Microsoft.DotNet.Docker.Tests

Repo: docker-tools

  • Solution: eng/src/tools.sln
    • Project: file-pusher/file-pusher.csproj
      • Namespace: FilePusher
    • Project: yaml-updater/yaml-updater.csproj
      • Namespace: YamlUpdater
  • Solution: src/Microsoft.DotNet.ImageBuilder/Microsoft.DotNet.ImageBuilder.sln
    • Project: src/Microsoft.DotNet.ImageBuilder.csproj
      • Namespace: Microsoft.DotNet.ImageBuilder
    • Project: tests/Microsoft.DotNet.ImageBuilder.Tests.csproj
      • Namespace: 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

  • Solution: Microsoft.DotNet.Docker.sln
    • Project: eng/update-dependencies/Microsoft.DotNet.Docker.UpdateDependencies.csproj
      • Namespace: Microsoft.DotNet.Docker.UpdateDependencies
    • Project: eng/Microsoft.DotNet.Docker.Tests.csproj
      • Namespace: Microsoft.DotNet.Docker.Tests

Repo: docker-tools

  • Solution: Microsoft.DotNet.Docker.Tools.sln
    • Project: src/Microsoft.DotNet.Docker.Tools/FilePusher/FilePusher.csproj
      • Namespace: Microsoft.DotNet.Docker.Tools.FilePusher
    • Project: src/Microsoft.DotNet.Docker.Tools/YamlUpdater/YamlUpdater.csproj
      • Namespace: Microsoft.DotNet.Docker.Tools.YamlUpdater
    • Project: src/Microsoft.DotNet.Docker.Tools/ImageBuilder/ImageBuilder.csproj
      • Namespace: Microsoft.DotNet.Docker.Tools.ImageBuilder
    • Project: src/Microsoft.DotNet.Docker.Tools/ImageBuilder.Tests/ImageBuilder.Tests.csproj
      • Namespace: Microsoft.DotNet.Docker.Tools.ImageBuilder.Tests
Copy link

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.

1 similar comment
Copy link

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.

@mthalman
Copy link
Member

Related to #314

@lbussell
Copy link
Contributor Author

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.

@MichaelSimons
Copy link
Member

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Backlog
Development

No branches or pull requests

3 participants