MonoRepo.DependencyManager
2023.12.80846
dotnet tool install --global MonoRepo.DependencyManager --version 2023.12.80846
dotnet new tool-manifest # if you are setting up this repo dotnet tool install --local MonoRepo.DependencyManager --version 2023.12.80846
#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 | Versions 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. |
This package has no dependencies.
Version | Downloads | Last updated |
---|---|---|
2023.12.80846 | 4,923 | 12/8/2023 |
2023.12.71255 | 1,515 | 12/7/2023 |
2023.11.121611 | 2,048 | 11/12/2023 |
2023.11.121534 | 1,473 | 11/12/2023 |
2023.11.121458 | 1,459 | 11/12/2023 |
2023.7.282039 | 2,829 | 7/28/2023 |
2023.7.282034 | 1,803 | 7/28/2023 |
2023.7.191121 | 1,975 | 7/19/2023 |
2023.7.190858 | 1,539 | 7/19/2023 |
2023.7.91836 | 1,753 | 7/9/2023 |
2023.7.91546 | 1,672 | 7/9/2023 |
2023.7.91214 | 1,645 | 7/9/2023 |
2023.7.91127 | 1,818 | 7/9/2023 |
2023.7.60915 | 1,601 | 7/6/2023 |
2023.7.40934 | 1,776 | 7/4/2023 |
2023.7.12153 | 1,872 | 7/1/2023 |
2023.6.301211 | 1,801 | 6/30/2023 |
2023.6.300837 | 1,681 | 6/30/2023 |
2023.6.300755 | 1,694 | 6/30/2023 |
2023.6.291208 | 1,729 | 6/29/2023 |
2023.6.281427 | 1,836 | 6/28/2023 |
2023.6.281424 | 1,546 | 6/28/2023 |
2023.6.281407 | 1,841 | 6/28/2023 |
2023.6.281406 | 1,835 | 6/28/2023 |
2023.6.281354 | 1,791 | 6/28/2023 |
2023.6.281345 | 1,710 | 6/28/2023 |
2023.6.281005 | 1,641 | 6/28/2023 |
2023.6.280957 | 1,742 | 6/28/2023 |
2023.6.280954 | 1,753 | 6/28/2023 |
2023.6.280916 | 1,660 | 6/28/2023 |
2023.6.280911 | 1,745 | 6/28/2023 |
2023.6.280907 | 1,719 | 6/28/2023 |
2023.6.280853 | 1,534 | 6/28/2023 |
2023.6.280844 | 1,773 | 6/28/2023 |
2023.6.280833 | 1,748 | 6/28/2023 |
2023.6.280749 | 1,822 | 6/28/2023 |
2023.6.280739 | 1,866 | 6/28/2023 |
2023.6.280737 | 1,956 | 6/28/2023 |
2023.6.280656 | 1,708 | 6/28/2023 |
2023.6.280640 | 2,734 | 6/28/2023 |
2023.6.280625 | 2,636 | 6/28/2023 |
2023.6.280612 | 2,699 | 6/28/2023 |
2023.6.280555 | 2,949 | 6/28/2023 |
2023.6.212204 | 3,038 | 6/21/2023 |