MonoRepo.DependencyManager 2023.12.80846

dotnet tool install --global MonoRepo.DependencyManager --version 2023.12.80846                
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local MonoRepo.DependencyManager --version 2023.12.80846                
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=MonoRepo.DependencyManager&version=2023.12.80846                
nuke :add-package MonoRepo.DependencyManager --version 2023.12.80846                

Monorepo-DependencyManager

This tool was created to allow dotnet projects to use a monorepo structure on azure devops. It tries to solve the problem of having shared code betweeen solutions and knowing when to run pipelines to check if the users of shared code do not break when shared code is changed.

It has a few features that can be enabled trough configuration. But the update command of the application functions like this:

  • Find all Solutions (.sln) in the git repository
  • Per solution find all the Projects (that do not end in Test.csproj)
  • For every project build a dependency tree of other projects
  • For all the projects in the tree:
    • [Feature]: Find docker files and refer all projects for caching
    • For Azure Devops pipeline yml files.
      • [Feature]: Update the trigger paths acccording to the dependency tree
      • [Feature]: Import the pipeline into Azure Devops
      • [Feature]: Create branch policies for specific branches

Installation

The tool can be easily installed using dotnet tool since it is hosted on Nuget

Command: dotnet tool install --global MonoRepo.DependencyManager

How to use?

The depenency manager will only function when run inside a folder that is (part of) a git repository. It will automatically inspect the current branch and the root of the current repoository.

To use Azure Devops

Help

Command: MonoRepo --help

Displays the list of commands and a short description of that they do.

Init

Command: MonoRepo init [--overwrite]

Starts the MonoRepo initialization process. The tool will help you configure itself to do excactly what you need. It will create a .monorepo-config file in the root of the repository to store its configuration. These configurations do not contain any sensitive data.

Options

--overwrite Will allow you to overwrite an existing configuration to make changes.

Check Permissions

Command: MonoRepo check-permissions

Runs a small diagnostics run to see if the neccesary tools are installed to use Azure DevOps functionalities:

  • Azure Cli
  • Azure DevOps Cli Extension
  • Check if an acces token can be retrieved

Update

Command: MonoRepo update [--pat <Devops Personal Access Token>] [-v]

Starts depencency update flow:

  • Find all Solutions (.sln) in the git repository
  • Per solution find all the Projects (that do not end in Test.csproj)
  • For every project build a dependency tree of other projects
  • For all the projects in the tree:
    • [Feature]: Find docker files and refer all projects for caching
    • For Azure Devops pipeline yml files.
      • [Feature]: Update the trigger paths acccording to the dependency tree
      • [Feature]: Import the pipeline into Azure Devops
      • [Feature]: Create branch policies for specific branches
Options

--pat Use an Azure Devops PAT instead of Azure Cli login

-v Verbose

Tree

Command: MonoRepo update [--pat <Devops Personal Access Token>]

Options

--pat Use an Azure Devops PAT instead of Azure Cli login

Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last updated
2023.12.80846 4,963 12/8/2023
2023.12.71255 1,517 12/7/2023
2023.11.121611 2,050 11/12/2023
2023.11.121534 1,475 11/12/2023
2023.11.121458 1,461 11/12/2023
2023.7.282039 2,831 7/28/2023
2023.7.282034 1,805 7/28/2023
2023.7.191121 1,977 7/19/2023
2023.7.190858 1,541 7/19/2023
2023.7.91836 1,755 7/9/2023
2023.7.91546 1,674 7/9/2023
2023.7.91214 1,647 7/9/2023
2023.7.91127 1,820 7/9/2023
2023.7.60915 1,603 7/6/2023
2023.7.40934 1,778 7/4/2023
2023.7.12153 1,874 7/1/2023
2023.6.301211 1,803 6/30/2023
2023.6.300837 1,683 6/30/2023
2023.6.300755 1,696 6/30/2023
2023.6.291208 1,731 6/29/2023
2023.6.281427 1,838 6/28/2023
2023.6.281424 1,548 6/28/2023
2023.6.281407 1,843 6/28/2023
2023.6.281406 1,837 6/28/2023
2023.6.281354 1,793 6/28/2023
2023.6.281345 1,712 6/28/2023
2023.6.281005 1,643 6/28/2023
2023.6.280957 1,744 6/28/2023
2023.6.280954 1,755 6/28/2023
2023.6.280916 1,662 6/28/2023
2023.6.280911 1,747 6/28/2023
2023.6.280907 1,721 6/28/2023
2023.6.280853 1,536 6/28/2023
2023.6.280844 1,775 6/28/2023
2023.6.280833 1,750 6/28/2023
2023.6.280749 1,824 6/28/2023
2023.6.280739 1,868 6/28/2023
2023.6.280737 1,958 6/28/2023
2023.6.280656 1,710 6/28/2023
2023.6.280640 2,736 6/28/2023
2023.6.280625 2,638 6/28/2023
2023.6.280612 2,701 6/28/2023
2023.6.280555 2,951 6/28/2023
2023.6.212204 3,040 6/21/2023