From bac96b2002a110d65360717465b1541468ed3e29 Mon Sep 17 00:00:00 2001 From: Chidozie Ononiwu Date: Tue, 27 Aug 2019 11:33:03 -0700 Subject: [PATCH] Update Contributing Doc --- CONTRIBUTING.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 528634bfc11b3..b8c09acc7d849 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,12 +10,17 @@ - Install VS 2019 (Community or higher) and make sure you have the latest updates (https://www.visualstudio.com/). - Install the **.NET Core cross-platform development** workloads in VisualStudio - Install **.NET Core 3 preview 7** or higher for your specific platform. (https://dotnet.microsoft.com/download/dotnet-core/3.0) +- Install the latest version of git (https://git-scm.com/downloads) -> **Client Libraries** are sdks used to interact with azure resources at application run time while **Management Libraries** are those used to manage (create/modify/delete) Azure resources. -
-To build all Client and Management libraries together. Invoke `dotnet build build.proj` from the root of the repo.
-To scope to a single service supply a scope property e.g. `dotnet build build.proj /p:Scope=servicebus`. This will build both client and management projects in the specified service. If using msbuild you must run restore first.
-See below for how to build the libraries independently. +## GENERAL THINGS TO KNOW: + +**Client Libraries** are sdks used to interact with azure resources at application run time while **Management Libraries** are those used to manage (create/modify/delete) Azure resources. + +**Build Repo :** To build all Client and Management libraries together. Invoke `dotnet build build.proj` from the root of the repo.
To scope to a single service supply a scope property e.g. `dotnet build build.proj /p:Scope=servicebus`. This will build both client and management projects in the specified service. If using msbuild you must run restore first. See below for how to build the [client](#client-libraries) or [management](#management-libraries) libraries independently. + +**Path Length :** To account for the **260 characters Path Length Limit** encountered on windows OS, file paths within the repo is keep below 210 characters. This gives you a runway of 49 characters as clone path for your repo. Paths longer that 260 characters will cause the build to break on windows OS and on CI. Assuming you clone to the default VisualStudio location such that the root of your clone is `C:\Users\\**USERNAME**\Source\Repos\azure-sdk-for-net` your username will have to be 9 characters long to avoid build errors caused by long paths. Consider using `C:\git` as you clone path. + +**Dependencies :** To ensure that the same versions of dependencies are used for all projects in the repo, package versions are managed from a central location in `eng\Packages.Data.props`. When adding package references you should first ensure that an **Update** reference of the package with the version exist in the **Packages.Data.props** then **Include** the reference without the version in your .csproj. Contact [azuresdkengsysteam@microsoft.com](mailto:azuresdkengsysteam@microsoft.com) if you need to change versions for packages already present in **Packages.Data.props** # Management Libraries