diff --git a/docs/ReferenceResolution.md b/docs/ReferenceResolution.md index e34b90a072..4acb23b2b8 100644 --- a/docs/ReferenceResolution.md +++ b/docs/ReferenceResolution.md @@ -33,3 +33,37 @@ The requirements that led to this system are: * [eng/PatchConfig.props](/eng/PatchConfig.props) - lists which assemblies or packages are patching in the current build. * [eng/ProjectReferences.props](/eng/ProjectReferences.props) - lists which assemblies or packages might be available to be referenced as a local project * [eng/Versions.props](/eng/Versions.props) - contains a list of versions which may be updated by automation. + +## Example: adding a new project + +Steps for adding a new project to this repo. + +1. Create the .csproj +2. Run `eng/scripts/GenerateProjectList.ps1` +3. Add it to Extensions.sln + +## Example: adding a new dependency + +Steps for adding a new package dependency to an existing project. Let's say I'm adding a dependency on System.Banana. + +1. Add the package to the .csproj file using `` +2. Add an entry to [eng/Dependencies.props](/eng/Dependencies.props), `` +3. If this package comes from another dotnet team and should be updated automatically by our bot... + 1. Change the LatestPackageReference entry to `Version="$(SystemBananaPackageVersion)"`. + 2. Add an entry to [eng/Versions.props](/eng/Versions.props) like this `0.0.1-beta-1`. + 3. Add an entry to [eng/Version.Details.xml](/eng/Version.Details.xml) like this: + + ```xml + + + + + https://github.com/dotnet/corefx + 000000 + + + + ``` + + If you don't know the commit hash of the source code used to produce "0.0.1-beta-1", you can use `000000` as a placeholder for `Sha` + as its value is unimportant and will be updated the next time the bot runs. diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c33702611f..8e21fb764f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,4 +1,12 @@ + @@ -9,10 +17,6 @@ https://github.com/aspnet/AspNetCore-Tooling ef2f8975dbe30752fe3a7c4e04efcd798eac3b64 - - https://github.com/dotnet/corefx - 9e074e4a3f3626fa953f36ab79e3cd3e6db1c9de - https://github.com/aspnet/AspNetCore-Tooling ef2f8975dbe30752fe3a7c4e04efcd798eac3b64 @@ -49,331 +53,335 @@ https://github.com/aspnet/EntityFrameworkCore df4350283ae7ff0c67e08af16c0f00fdbd5e22ac - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/dotnet/corefx - 9e074e4a3f3626fa953f36ab79e3cd3e6db1c9de + 000 - + https://github.com/dotnet/corefx - 9e074e4a3f3626fa953f36ab79e3cd3e6db1c9de + 000 - + https://github.com/dotnet/corefx - 9e074e4a3f3626fa953f36ab79e3cd3e6db1c9de + 000 - + https://github.com/dotnet/corefx - 9e074e4a3f3626fa953f36ab79e3cd3e6db1c9de + 000 - + https://github.com/dotnet/corefx - 9e074e4a3f3626fa953f36ab79e3cd3e6db1c9de + 000 - + https://github.com/dotnet/corefx - 9e074e4a3f3626fa953f36ab79e3cd3e6db1c9de + 000 - + https://github.com/dotnet/corefx - 9e074e4a3f3626fa953f36ab79e3cd3e6db1c9de + 000 - + https://github.com/dotnet/corefx - 9e074e4a3f3626fa953f36ab79e3cd3e6db1c9de + 000 - + https://github.com/dotnet/corefx - 9e074e4a3f3626fa953f36ab79e3cd3e6db1c9de + 000 - + https://github.com/dotnet/corefx - 9e074e4a3f3626fa953f36ab79e3cd3e6db1c9de + 000 - + https://github.com/dotnet/corefx - 9e074e4a3f3626fa953f36ab79e3cd3e6db1c9de + 000 - + https://github.com/dotnet/corefx - 9e074e4a3f3626fa953f36ab79e3cd3e6db1c9de + 000 - + https://github.com/dotnet/corefx - 9e074e4a3f3626fa953f36ab79e3cd3e6db1c9de + 000 - + https://github.com/dotnet/corefx - 9e074e4a3f3626fa953f36ab79e3cd3e6db1c9de + 000 - + https://github.com/dotnet/corefx - 9e074e4a3f3626fa953f36ab79e3cd3e6db1c9de + 000 - + https://github.com/dotnet/corefx - 9e074e4a3f3626fa953f36ab79e3cd3e6db1c9de + 000 - + https://github.com/dotnet/corefx - 9e074e4a3f3626fa953f36ab79e3cd3e6db1c9de + 000 - + https://github.com/dotnet/corefx - 9e074e4a3f3626fa953f36ab79e3cd3e6db1c9de + 000 - + https://github.com/dotnet/corefx - 9e074e4a3f3626fa953f36ab79e3cd3e6db1c9de + 000 - + https://github.com/dotnet/corefx - 9e074e4a3f3626fa953f36ab79e3cd3e6db1c9de + 000 - + + https://github.com/dotnet/corefx + 000 + + https://github.com/dotnet/core-setup - 5ff1240bef06a9a0a6544fcef93808ac26028e43 + 000 - + https://github.com/dotnet/core-setup - 5ff1240bef06a9a0a6544fcef93808ac26028e43 + 000 - + https://github.com/dotnet/core-setup - 5ff1240bef06a9a0a6544fcef93808ac26028e43 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 - + https://github.com/aspnet/Extensions - 9750bf67ab22d8d28255c6222be282f4c8e49383 + 000 diff --git a/eng/Versions.props b/eng/Versions.props index 44d7036b3f..90a9e8794b 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -6,7 +6,16 @@ --> - + 3.0.0-preview-27405-2 @@ -107,14 +116,21 @@ 3.0.0-preview-19104-04 3.0.0-preview-19104-04 - + + + $(KoreBuildVersion) 3.0.0-build-20190130.1 1.0.0-alpha-004 15.9.0 - - - 4.5.0 4.4.0 diff --git a/eng/scripts/CodeCheck.ps1 b/eng/scripts/CodeCheck.ps1 index 0292192844..7ccf9a3bac 100644 --- a/eng/scripts/CodeCheck.ps1 +++ b/eng/scripts/CodeCheck.ps1 @@ -11,7 +11,7 @@ $ErrorActionPreference = 'Stop' Set-StrictMode -Version 1 Import-Module -Scope Local -Force "$PSScriptRoot/common.psm1" -$repoRoot = Resolve-Path "$PSScriptRoot/../../" +$repoRoot = Resolve-Path "$PSScriptRoot/../.." [string[]] $errors = @() @@ -29,6 +29,28 @@ try { & $repoRoot/build.ps1 -ci /t:InstallDotNet } + Write-Host "Checking that Versions.props and Version.Details.xml match" + [xml] $versionProps = Get-Content "$repoRoot/eng/Versions.props" + [xml] $versionDetails = Get-Content "$repoRoot/eng/Version.Details.xml" + foreach ($dep in $versionDetails.SelectNodes('//ProductDependencies/Dependency')) { + Write-Verbose "Found $dep" + $varName = $dep.Name -replace '\.','' + $varName = $varName -replace '\-','' + $varName = "${varName}PackageVersion" + $versionVar = $versionProps.SelectSingleNode("//PropertyGroup[`@Label=`"Automated`"]/$varName") + if (-not $versionVar) { + LogError "Missing version variable '$varName' in the 'Automated' property group in $repoRoot/eng/Versions.props" + continue + } + + $expectedVersion = $dep.Version + $actualVersion = $versionVar.InnerText + + if ($expectedVersion -ne $actualVersion) { + LogError "Version variable '$varName' does not match the value in Version.Details.xml. Expected '$expectedVersion', actual '$actualVersion'" + } + } + Write-Host "Checking that solutions are up to date" Get-ChildItem "$repoRoot/*.sln" -Recurse `