mbt icon indicating copy to clipboard operation
mbt copied to clipboard

.NET core project native support

Open buddhike opened this issue 5 years ago • 1 comments

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 called csproj 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.

buddhike avatar May 12 '19 01:05 buddhike

This would be amazing! (Is this project still active?)

Logrythmik avatar Jun 21 '21 19:06 Logrythmik