mbt
mbt copied to clipboard
.NET core project native support
Scenario
User has a git repository with multiple .NET core applications. Same repository also contains shared libraries used by those applications.
- lib/foo
- lib/bar
- web-app
- console-app
Typically, in a setup like this, each application directory is marked as an mbt module by placing a .mbt.yml
file. However, if user wants to rebuild/re-version applications when their dependencies change, all library directories must also be marked as mbt modules and correct dependencies must be established in .mbt.yml
files.
This feature intends to simplify this process by being able to understand the dependencies defined within .csproj
files.
Specification
- A directory with a
.csproj
file is recognised as an mbt module (conveniently calledcsproj module
). - Module name is
.csproj
file name without extension. - All project references in
.csproj
becomes dependencies of that module. - When a directory contains both
.mbt.yml
and.csproj
files, module is generated based on.mbt.yml
and augmented with dependencies found in.csproj
. - If a particular directory contains more than one
.csproj
files, behaviour of this feature is not specified (this can be re-visited in a future version)
Design Notes
-
Modify
discover.go
to with an extensible model that can be used to support other types of projects (e.g. maven pom files, sbt projects) in the future. -
In order to make sure backward compatibility, this feature is activated via
--detect-csproj
switch.
This would be amazing! (Is this project still active?)