diff --git a/.gitignore b/.gitignore index 5e36a0b23c..75392f570d 100644 --- a/.gitignore +++ b/.gitignore @@ -16,7 +16,6 @@ StyleCop.Cache node_modules *.snk .nuget -.r .deps global.json *.binlog diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000000..ff191b1b02 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,180 @@ +[submodule "modules/Antiforgery"] + path = modules/Antiforgery + url = https://github.com/aspnet/Antiforgery.git + branch = dev +[submodule "modules/AzureIntegration"] + path = modules/AzureIntegration + url = https://github.com/aspnet/AzureIntegration.git + branch = dev +[submodule "modules/BasicMiddleware"] + path = modules/BasicMiddleware + url = https://github.com/aspnet/BasicMiddleware.git + branch = dev +[submodule "modules/BrowserLink"] + path = modules/BrowserLink + url = https://github.com/aspnet/BrowserLink.git + branch = dev +[submodule "modules/Caching"] + path = modules/Caching + url = https://github.com/aspnet/Caching.git + branch = dev +[submodule "modules/Common"] + path = modules/Common + url = https://github.com/aspnet/Common.git + branch = dev +[submodule "modules/Configuration"] + path = modules/Configuration + url = https://github.com/aspnet/Configuration.git + branch = dev +[submodule "modules/CORS"] + path = modules/CORS + url = https://github.com/aspnet/CORS.git + branch = dev +[submodule "modules/DataProtection"] + path = modules/DataProtection + url = https://github.com/aspnet/DataProtection.git + branch = dev +[submodule "modules/DependencyInjection"] + path = modules/DependencyInjection + url = https://github.com/aspnet/DependencyInjection.git + branch = dev +[submodule "modules/Diagnostics"] + path = modules/Diagnostics + url = https://github.com/aspnet/Diagnostics.git + branch = dev +[submodule "modules/DotNetTools"] + path = modules/DotNetTools + url = https://github.com/aspnet/DotNetTools.git + branch = dev +[submodule "modules/EntityFrameworkCore"] + path = modules/EntityFrameworkCore + url = https://github.com/aspnet/EntityFrameworkCore.git + branch = dev +[submodule "modules/EventNotification"] + path = modules/EventNotification + url = https://github.com/aspnet/EventNotification.git + branch = dev +[submodule "modules/FileSystem"] + path = modules/FileSystem + url = https://github.com/aspnet/FileSystem.git + branch = dev +[submodule "modules/Hosting"] + path = modules/Hosting + url = https://github.com/aspnet/Hosting.git + branch = dev +[submodule "modules/HtmlAbstractions"] + path = modules/HtmlAbstractions + url = https://github.com/aspnet/HtmlAbstractions.git + branch = dev +[submodule "modules/HttpAbstractions"] + path = modules/HttpAbstractions + url = https://github.com/aspnet/HttpAbstractions.git + branch = dev +[submodule "modules/HttpClientFactory"] + path = modules/HttpClientFactory + url = https://github.com/aspnet/HttpClientFactory.git + branch = dev +[submodule "modules/HttpSysServer"] + path = modules/HttpSysServer + url = https://github.com/aspnet/HttpSysServer.git + branch = dev +[submodule "modules/Identity"] + path = modules/Identity + url = https://github.com/aspnet/Identity.git + branch = dev +[submodule "modules/IISIntegration"] + path = modules/IISIntegration + url = https://github.com/aspnet/IISIntegration.git + branch = dev +[submodule "modules/JavaScriptServices"] + path = modules/JavaScriptServices + url = https://github.com/aspnet/JavaScriptServices.git + branch = dev +[submodule "modules/JsonPatch"] + path = modules/JsonPatch + url = https://github.com/aspnet/JsonPatch.git + branch = dev +[submodule "modules/KestrelHttpServer"] + path = modules/KestrelHttpServer + url = https://github.com/aspnet/KestrelHttpServer.git + branch = dev +[submodule "modules/Localization"] + path = modules/Localization + url = https://github.com/aspnet/Localization.git + branch = dev +[submodule "modules/Logging"] + path = modules/Logging + url = https://github.com/aspnet/Logging.git + branch = dev +[submodule "modules/MetaPackages"] + path = modules/MetaPackages + url = https://github.com/aspnet/MetaPackages.git + branch = dev +[submodule "modules/Microsoft.Data.Sqlite"] + path = modules/Microsoft.Data.Sqlite + url = https://github.com/aspnet/Microsoft.Data.Sqlite.git + branch = dev +[submodule "modules/MusicStore"] + path = modules/MusicStore + url = https://github.com/aspnet/MusicStore.git + branch = dev +[submodule "modules/Mvc"] + path = modules/Mvc + url = https://github.com/aspnet/Mvc.git + branch = dev +[submodule "modules/MvcPrecompilation"] + path = modules/MvcPrecompilation + url = https://github.com/aspnet/MvcPrecompilation.git + branch = dev +[submodule "modules/Options"] + path = modules/Options + url = https://github.com/aspnet/Options.git + branch = dev +[submodule "modules/Proxy"] + path = modules/Proxy + url = https://github.com/aspnet/Proxy.git + branch = dev +[submodule "modules/Razor"] + path = modules/Razor + url = https://github.com/aspnet/Razor.git + branch = dev +[submodule "modules/ResponseCaching"] + path = modules/ResponseCaching + url = https://github.com/aspnet/ResponseCaching.git + branch = dev +[submodule "modules/Routing"] + path = modules/Routing + url = https://github.com/aspnet/Routing.git + branch = dev +[submodule "modules/Scaffolding"] + path = modules/Scaffolding + url = https://github.com/aspnet/Scaffolding.git + branch = dev +[submodule "modules/Security"] + path = modules/Security + url = https://github.com/aspnet/Security.git + branch = dev +[submodule "modules/ServerTests"] + path = modules/ServerTests + url = https://github.com/aspnet/ServerTests.git + branch = dev +[submodule "modules/Session"] + path = modules/Session + url = https://github.com/aspnet/Session.git + branch = dev +[submodule "modules/SignalR"] + path = modules/SignalR + url = https://github.com/aspnet/SignalR.git + branch = dev +[submodule "modules/StaticFiles"] + path = modules/StaticFiles + url = https://github.com/aspnet/StaticFiles.git + branch = dev +[submodule "modules/Testing"] + path = modules/Testing + url = https://github.com/aspnet/Testing.git + branch = dev +[submodule "modules/WebSockets"] + path = modules/WebSockets + url = https://github.com/aspnet/WebSockets.git + branch = dev diff --git a/README.md b/README.md index 1b049850fa..0a1bc63329 100644 --- a/README.md +++ b/README.md @@ -1,51 +1,16 @@ Universe -========= +======== -This repo is to build the whole ASP.NET Core stack. +Build infrastructure used to produce the whole ASP.NET Core stack. ## Getting started - git clone git@github.com:aspnet/Universe.git - cd Universe - build +``` +git clone --recursive https://github.com/aspnet/Universe.git +cd Universe +./build.cmd +``` -The default build will clone all known repos as subfolders. The clone will be the dev branch. +## More info -If the build is run subsequently it will `git pull` the dev branch rather than clone. Note! This will cause a -merge if you have local changes. We may tweak how this is done if it causes problems. - -After folders are up to date, `build.cmd compile` is executed in each of the enlisted subfolders. - -If there are errors the build will continue with the next repo. - -The last output is a list of which repos succeeded or failed. - -## build targets - -`build pull` will only clone or pull all repos. - -`build compile` this is the default target, described above. - -`build install` works like build compile, but will run `build.cmd install` in each subfolder. This means -any nupkg produced by the repo are copied into the local `.nuget` folder to be picked up by subsequent -repositories. The subfolders are built in dependency order. - - -## Verifying cross repo changes -You can use the Universe repo to preemptively verify and prepare follow ups for your breaking changes: -- Clone the Universe repo https://github.com/aspnet/Universe -- Add a branch attribute to the `build\Repositories.props` file to point to your branch in the repo you’re trying to verify. For instance, - `` - becomes - `` - **Note**: This branch should have been pushed to the server already. -- Run from the root of Universe - `build.cmd /p:CompileOnly=true /p:ShallowClone=true /p:BuildGraphOf=HtmlAbstractions` - - This should clone and compile all the repos against your breaking changes branch. If you’d like to additionally run tests in all your dependencies (this will take a while and also you could hit some flaky tests), remove the first parameter: - `build.cmd /p:ShallowClone=true /p:BuildGraphOf=HtmlAbstractions` - - The ShallowClone property speeds up git clone and is optional in both cases. - - -This project is part of ASP.NET Core. You can find samples, documentation and getting started instructions for ASP.NET Core at the [Home](https://github.com/aspnet/home) repo. +This project is part of ASP.NET Core. You can find samples, documentation and getting started instructions for ASP.NET Core at the [Home](https://github.com/aspnet/home) repo. \ No newline at end of file diff --git a/build/Repositories.props b/build/Repositories.props deleted file mode 100644 index 165c37c611..0000000000 --- a/build/Repositories.props +++ /dev/null @@ -1,56 +0,0 @@ - - - - dev - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build/RepositoryBuild.targets b/build/RepositoryBuild.targets index 119cc5b8b1..13b2d979b0 100644 --- a/build/RepositoryBuild.targets +++ b/build/RepositoryBuild.targets @@ -6,8 +6,7 @@ %(RepositoryToBuildInOrder.Identity) RepositoryToBuild=%(RepositoryToBuildInOrder.Identity); - BuildRepositoryRoot=%(RepositoryToBuildInOrder.RepositoryPath)\; - CommitHash=%(RepositoryToBuildInOrder.Commit) + BuildRepositoryRoot=$([MSBuild]::NormalizeDirectory(%(RepositoryToBuildInOrder.RootPath))) @@ -35,7 +34,7 @@ $(RepositoryBuildArguments) '/p:DotNetPackageVersionPropsPath=$(GeneratedPackageVersionPropsPath)' $(RepositoryBuildArguments) '/p:CustomBeforeKoreBuildProps=$(MSBuildThisFileDirectory)repobuild\BeforeKoreBuild.props' $(RepositoryBuildArguments) '/p:CustomAfterKoreBuildTargets=$(MSBuildThisFileDirectory)repobuild\AfterKoreBuild.targets' - $(RepositoryBuildArguments) /p:BuildNumber=$(BuildNumber) /p:Configuration=$(Configuration) /p:CommitHash=$(CommitHash) + $(RepositoryBuildArguments) /p:BuildNumber=$(BuildNumber) /p:Configuration=$(Configuration) $(RepositoryBuildArguments) /noconsolelogger '/l:RepoTasks.FlowLogger,$(MSBuildThisFileDirectory)tasks\bin\publish\RepoTasks.dll;Summary;FlowId=$(RepositoryToBuild)' $(_RepositoryBuildTargets) $(RepositoryBuildArguments) diff --git a/build/repo.props b/build/repo.props index 40b83474b9..3c0277344d 100644 --- a/build/repo.props +++ b/build/repo.props @@ -1,6 +1,7 @@ + diff --git a/build/repo.targets b/build/repo.targets index 856c87bdd7..d907ee1eaf 100644 --- a/build/repo.targets +++ b/build/repo.targets @@ -3,20 +3,13 @@ + $(RepositoryRoot)modules\ $(ArtifactsDir)lineups\ - false - <_CloneRepositoryRoot>$(RepositoryRoot).r\ <_DependencyBuildDirectory>$(RepositoryRoot).deps\build\ <_DependencyLineupDir>$(RepositoryRoot).deps\lineups\ <_DependencyPackagesDirectory>$(_DependencyBuildDirectory) <_RestoreGraphSpecsDirectory>$(IntermediateDir)package-specs\ - <_RepositoryListFileName>Repositories.props - <_DefaultRepositoryList>$(MSBuildThisFileDirectory)$(_RepositoryListFileName) - <_DependencyRepositoryList>$(_DependencyBuildDirectory)$(_RepositoryListFileName) - <_RepositoryListToImport Condition="Exists('$(_DependencyRepositoryList)')">$(_DependencyRepositoryList) - <_RepositoryListToImport Condition="!Exists('$(_DependencyRepositoryList)')">$(_DefaultRepositoryList) - <_RepositoryBuildTargets Condition="'$(_RepositoryBuildTargets)'=='' AND '$(CompileOnly)'=='true'">/t:Package /t:VerifyPackages <_RepositoryBuildTargets Condition="'$(_RepositoryBuildTargets)'==''">/t:Build @@ -26,20 +19,16 @@ $(IntermediateDir)ext\ $(IntermediateDir)dependencies.props - $(PrepareDependsOn);VerifyPackageArtifactConfig;CleanArtifacts;CleanUniverseArtifacts + $(PrepareDependsOn);VerifyPackageArtifactConfig;CleanArtifacts;PrepareOutputPaths $(RestoreDependsOn);RestoreExternalDependencies - $(CleanDependsOn);CleanArtifacts;CleanUniverseArtifacts - $(CompileDependsOn);CloneRepositories;BuildRepositories + $(CleanDependsOn);CleanArtifacts + $(CompileDependsOn);BuildRepositories $(PackageDependsOn);CopyPackagesByCategory $(VerifyDependsOn);VerifyCoherentVersions - - - - - - + + @@ -49,21 +38,24 @@ + + + - + @@ -113,104 +105,24 @@ - - - - - - - <_CloneOverHttps>true - <_CloneOverHttps Condition="'$(UniverseCloneUrl)' != '' AND !$(UniverseCloneUrl.StartsWith('https'))">false - - - - - + - - - <_CloneRepository Include="$(MSBuildProjectFullPath)"> - - CloneRepository=%(Repository.Identity); - CloneUrl=%(Repository.CloneUrl); - CloneBranch=%(Repository.Branch); - CloneRepositoryCommit=%(Repository.Commit); - UseGateBranch=$(UseGateBranch) - - - - - - - - - - - - - - - false - <_CloneArguments>git clone --quiet $(CloneUrl) $(CloneRepository) - <_CloneArguments Condition="'$(ShallowClone)'=='true'">$(_CloneArguments) --depth 1 - - - - - - - - - - - - - - - + DependsOnTargets="_PrepareRepositories;_UpdateNuGetConfig;_GenerateBuildGraph;_BuildRepositories" /> - + @@ -219,8 +131,8 @@ + $(SubmoduleRoot)**\*.csproj; + $(SubmoduleRoot)**\dependencies.props" /> @@ -246,7 +158,7 @@ @@ -254,7 +166,7 @@ @@ -289,57 +201,4 @@ ExternalDependencies="@(ExternalDependency)" /> - - - $(BuildDir)$(_RepositoryListFileName) - - - - - - - - - - - - - <_RepositoryName>$([System.String]::new('%(Repository.Identity)').Replace('.', '_')) - <_CloneUrl>$([System.Environment]::GetEnvironmentVariable("BUILD_VCS_URL_$(_RepositoryName)")) - <_CommitHash>$([System.Environment]::GetEnvironmentVariable("BUILD_VCS_NUMBER_$(_RepositoryName)")) - - - - - - - - - - - - - - - - <_CommitHash> - <_CloneUrl> - - - diff --git a/build/submodules.props b/build/submodules.props new file mode 100644 index 0000000000..2b15369e0c --- /dev/null +++ b/build/submodules.props @@ -0,0 +1,55 @@ + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/tasks/BuildGraph/Repository.cs b/build/tasks/BuildGraph/Repository.cs index c1e3e5c619..a72137739e 100644 --- a/build/tasks/BuildGraph/Repository.cs +++ b/build/tasks/BuildGraph/Repository.cs @@ -35,7 +35,7 @@ namespace RepoTools.BuildGraph Parallel.For(0, repositoryPaths.Count, new ParallelOptions { MaxDegreeOfParallelism = 6 }, i => { var repositoryPath = repositoryPaths[i]; - var repositoryName = Path.GetFileName(repositoryPath); + var repositoryName = Path.GetFileName(repositoryPath.TrimEnd(new [] { '\\', '/' })); var repository = Read(provider, repositoryName, repositoryPath); repositories[i] = repository; }); diff --git a/build/tasks/CalculateBuildGraph.cs b/build/tasks/CalculateBuildGraph.cs index 0c574f41dd..5d922f7d39 100644 --- a/build/tasks/CalculateBuildGraph.cs +++ b/build/tasks/CalculateBuildGraph.cs @@ -39,7 +39,7 @@ namespace RepoTasks { var graphSpecProvider = new DependencyGraphSpecProvider(PackageSpecsDirectory.Trim()); - var repositoryPaths = Repositories.Select(r => r.GetMetadata("RepositoryPath")).ToList(); + var repositoryPaths = Repositories.Select(r => r.GetMetadata("RootPath")).ToList(); var repositories = Repository.ReadAllRepositories(repositoryPaths, graphSpecProvider); var graph = GraphBuilder.Generate(repositories, StartGraphAt, Log); diff --git a/modules/Antiforgery b/modules/Antiforgery new file mode 160000 index 0000000000..e188458677 --- /dev/null +++ b/modules/Antiforgery @@ -0,0 +1 @@ +Subproject commit e1884586775c85e27f1b5f2dcad80ba1d84b2f21 diff --git a/modules/AzureIntegration b/modules/AzureIntegration new file mode 160000 index 0000000000..c998d74e1d --- /dev/null +++ b/modules/AzureIntegration @@ -0,0 +1 @@ +Subproject commit c998d74e1de26897dddaf3c2df7165341a4c0dbd diff --git a/modules/BasicMiddleware b/modules/BasicMiddleware new file mode 160000 index 0000000000..9f3ed006a1 --- /dev/null +++ b/modules/BasicMiddleware @@ -0,0 +1 @@ +Subproject commit 9f3ed006a12fdaddf2f5134cdc647433a0548946 diff --git a/modules/BrowserLink b/modules/BrowserLink new file mode 160000 index 0000000000..7e2ff85a76 --- /dev/null +++ b/modules/BrowserLink @@ -0,0 +1 @@ +Subproject commit 7e2ff85a7622e20d697ed64936f8e4affb0865f7 diff --git a/modules/CORS b/modules/CORS new file mode 160000 index 0000000000..8fd36866f9 --- /dev/null +++ b/modules/CORS @@ -0,0 +1 @@ +Subproject commit 8fd36866f9427b8a09cecdd6520ba54b064424c6 diff --git a/modules/Caching b/modules/Caching new file mode 160000 index 0000000000..c6a9cbbe45 --- /dev/null +++ b/modules/Caching @@ -0,0 +1 @@ +Subproject commit c6a9cbbe4566d1d757b27d74a1aad5da8d12aed1 diff --git a/modules/Common b/modules/Common new file mode 160000 index 0000000000..062ad3e7ca --- /dev/null +++ b/modules/Common @@ -0,0 +1 @@ +Subproject commit 062ad3e7ca8fb86a471333864b6202926ea20aa5 diff --git a/modules/Configuration b/modules/Configuration new file mode 160000 index 0000000000..94a5f9e3d1 --- /dev/null +++ b/modules/Configuration @@ -0,0 +1 @@ +Subproject commit 94a5f9e3d122cf1b01c3621130f70739efec1fb2 diff --git a/modules/DataProtection b/modules/DataProtection new file mode 160000 index 0000000000..49b2e22ab3 --- /dev/null +++ b/modules/DataProtection @@ -0,0 +1 @@ +Subproject commit 49b2e22ab30239ed63d3f3b9478e7563e9a93ed9 diff --git a/modules/DependencyInjection b/modules/DependencyInjection new file mode 160000 index 0000000000..88297e3c11 --- /dev/null +++ b/modules/DependencyInjection @@ -0,0 +1 @@ +Subproject commit 88297e3c1116f952aa22013172ef2f9396f716e0 diff --git a/modules/Diagnostics b/modules/Diagnostics new file mode 160000 index 0000000000..7ac0e06abf --- /dev/null +++ b/modules/Diagnostics @@ -0,0 +1 @@ +Subproject commit 7ac0e06abf822738437dba3bfc5b3b01325045f7 diff --git a/modules/DotNetTools b/modules/DotNetTools new file mode 160000 index 0000000000..1836201bee --- /dev/null +++ b/modules/DotNetTools @@ -0,0 +1 @@ +Subproject commit 1836201beecf81c3e2b4a50cc1666f5aa51f5786 diff --git a/modules/EntityFrameworkCore b/modules/EntityFrameworkCore new file mode 160000 index 0000000000..e70d7daef7 --- /dev/null +++ b/modules/EntityFrameworkCore @@ -0,0 +1 @@ +Subproject commit e70d7daef78b7ef76f989277c0b63bc6a666acf6 diff --git a/modules/EventNotification b/modules/EventNotification new file mode 160000 index 0000000000..3f881f18d8 --- /dev/null +++ b/modules/EventNotification @@ -0,0 +1 @@ +Subproject commit 3f881f18d811b65046c1df798d4d97c98aa39086 diff --git a/modules/FileSystem b/modules/FileSystem new file mode 160000 index 0000000000..51e14a624c --- /dev/null +++ b/modules/FileSystem @@ -0,0 +1 @@ +Subproject commit 51e14a624c5f32bd2df62adf06dbe558574b4b11 diff --git a/modules/Hosting b/modules/Hosting new file mode 160000 index 0000000000..82ccf4f06e --- /dev/null +++ b/modules/Hosting @@ -0,0 +1 @@ +Subproject commit 82ccf4f06e749d2044f3adb88e870b431341274f diff --git a/modules/HtmlAbstractions b/modules/HtmlAbstractions new file mode 160000 index 0000000000..d687617a35 --- /dev/null +++ b/modules/HtmlAbstractions @@ -0,0 +1 @@ +Subproject commit d687617a356b9a875ea5b09163ef9d443b4256bb diff --git a/modules/HttpAbstractions b/modules/HttpAbstractions new file mode 160000 index 0000000000..c0f937239a --- /dev/null +++ b/modules/HttpAbstractions @@ -0,0 +1 @@ +Subproject commit c0f937239a0a099b73c67c96ab9e1c875952f67f diff --git a/modules/HttpClientFactory b/modules/HttpClientFactory new file mode 160000 index 0000000000..8a64334608 --- /dev/null +++ b/modules/HttpClientFactory @@ -0,0 +1 @@ +Subproject commit 8a643346089ce2356ac4bcc07f217f256004a00d diff --git a/modules/HttpSysServer b/modules/HttpSysServer new file mode 160000 index 0000000000..02331040a1 --- /dev/null +++ b/modules/HttpSysServer @@ -0,0 +1 @@ +Subproject commit 02331040a127954eadaa859777379af77f419183 diff --git a/modules/IISIntegration b/modules/IISIntegration new file mode 160000 index 0000000000..94c895a1bd --- /dev/null +++ b/modules/IISIntegration @@ -0,0 +1 @@ +Subproject commit 94c895a1bd1b9bba48ce496200fd386322fb6a74 diff --git a/modules/Identity b/modules/Identity new file mode 160000 index 0000000000..52dfb02175 --- /dev/null +++ b/modules/Identity @@ -0,0 +1 @@ +Subproject commit 52dfb0217597ae18efd5958e380fe8e56cde3163 diff --git a/modules/JavaScriptServices b/modules/JavaScriptServices new file mode 160000 index 0000000000..e583a17ef8 --- /dev/null +++ b/modules/JavaScriptServices @@ -0,0 +1 @@ +Subproject commit e583a17ef8381a15ae9f59635dae7e0cfbdd2aac diff --git a/modules/JsonPatch b/modules/JsonPatch new file mode 160000 index 0000000000..e453fafad5 --- /dev/null +++ b/modules/JsonPatch @@ -0,0 +1 @@ +Subproject commit e453fafad52649daff689c24fa2374a143f43654 diff --git a/modules/KestrelHttpServer b/modules/KestrelHttpServer new file mode 160000 index 0000000000..0c34523e8b --- /dev/null +++ b/modules/KestrelHttpServer @@ -0,0 +1 @@ +Subproject commit 0c34523e8b36be0236106aa174ede6aab9acce85 diff --git a/modules/Localization b/modules/Localization new file mode 160000 index 0000000000..98484b8283 --- /dev/null +++ b/modules/Localization @@ -0,0 +1 @@ +Subproject commit 98484b828334f3914c3c2f723b4c98c7acb8f627 diff --git a/modules/Logging b/modules/Logging new file mode 160000 index 0000000000..e8e3e707f5 --- /dev/null +++ b/modules/Logging @@ -0,0 +1 @@ +Subproject commit e8e3e707f5131e22d7d27fce6bfcefdda1dbb817 diff --git a/modules/MetaPackages b/modules/MetaPackages new file mode 160000 index 0000000000..d63542ca31 --- /dev/null +++ b/modules/MetaPackages @@ -0,0 +1 @@ +Subproject commit d63542ca31614cff8a69c788d6fb1ebc8b0870f9 diff --git a/modules/Microsoft.Data.Sqlite b/modules/Microsoft.Data.Sqlite new file mode 160000 index 0000000000..791993269c --- /dev/null +++ b/modules/Microsoft.Data.Sqlite @@ -0,0 +1 @@ +Subproject commit 791993269cfbf97ec3fbdb5139d860ba61ef7396 diff --git a/modules/MusicStore b/modules/MusicStore new file mode 160000 index 0000000000..1c0aeb08bb --- /dev/null +++ b/modules/MusicStore @@ -0,0 +1 @@ +Subproject commit 1c0aeb08bb1ebd846726232226279bbe001782e1 diff --git a/modules/Mvc b/modules/Mvc new file mode 160000 index 0000000000..2e4bc548f5 --- /dev/null +++ b/modules/Mvc @@ -0,0 +1 @@ +Subproject commit 2e4bc548f5921d2f4250314373473e453f3ca95b diff --git a/modules/MvcPrecompilation b/modules/MvcPrecompilation new file mode 160000 index 0000000000..00dd638c4f --- /dev/null +++ b/modules/MvcPrecompilation @@ -0,0 +1 @@ +Subproject commit 00dd638c4ff35f53198ead9de7ccd40c26ec13c9 diff --git a/modules/Options b/modules/Options new file mode 160000 index 0000000000..7e46634d3f --- /dev/null +++ b/modules/Options @@ -0,0 +1 @@ +Subproject commit 7e46634d3fc19df60edadc00386034ccde8f54c9 diff --git a/modules/Proxy b/modules/Proxy new file mode 160000 index 0000000000..0d1e231947 --- /dev/null +++ b/modules/Proxy @@ -0,0 +1 @@ +Subproject commit 0d1e2319472707ceaae2dab5a044764f7686b28e diff --git a/modules/Razor b/modules/Razor new file mode 160000 index 0000000000..6c7551d9c7 --- /dev/null +++ b/modules/Razor @@ -0,0 +1 @@ +Subproject commit 6c7551d9c7fc7a9e60d29ae6a39d46924960e6e6 diff --git a/modules/ResponseCaching b/modules/ResponseCaching new file mode 160000 index 0000000000..85bd164189 --- /dev/null +++ b/modules/ResponseCaching @@ -0,0 +1 @@ +Subproject commit 85bd16418984058a4292f8071118d2794b8d8e07 diff --git a/modules/Routing b/modules/Routing new file mode 160000 index 0000000000..bb413c6ac3 --- /dev/null +++ b/modules/Routing @@ -0,0 +1 @@ +Subproject commit bb413c6ac33fbc5bd5459033cb29afb3b002cdf2 diff --git a/modules/Scaffolding b/modules/Scaffolding new file mode 160000 index 0000000000..d8f8670c7b --- /dev/null +++ b/modules/Scaffolding @@ -0,0 +1 @@ +Subproject commit d8f8670c7b9fe467f9b20456549b19bee26f0e7d diff --git a/modules/Security b/modules/Security new file mode 160000 index 0000000000..88cb3df0eb --- /dev/null +++ b/modules/Security @@ -0,0 +1 @@ +Subproject commit 88cb3df0ebdd524a8c56e74b740296941947fdff diff --git a/modules/ServerTests b/modules/ServerTests new file mode 160000 index 0000000000..f1e0205b9f --- /dev/null +++ b/modules/ServerTests @@ -0,0 +1 @@ +Subproject commit f1e0205b9fedb29f0ea4901caf41acda56bdc597 diff --git a/modules/Session b/modules/Session new file mode 160000 index 0000000000..a29e7cf687 --- /dev/null +++ b/modules/Session @@ -0,0 +1 @@ +Subproject commit a29e7cf687fef67e403f9909632e61fce4a7dbaa diff --git a/modules/SignalR b/modules/SignalR new file mode 160000 index 0000000000..2419867dfc --- /dev/null +++ b/modules/SignalR @@ -0,0 +1 @@ +Subproject commit 2419867dfcda3b11a83a30de6559f1c44b3da38c diff --git a/modules/StaticFiles b/modules/StaticFiles new file mode 160000 index 0000000000..5248d6057c --- /dev/null +++ b/modules/StaticFiles @@ -0,0 +1 @@ +Subproject commit 5248d6057c759e5944eb3d0a9088457081abb090 diff --git a/modules/Testing b/modules/Testing new file mode 160000 index 0000000000..94569378d4 --- /dev/null +++ b/modules/Testing @@ -0,0 +1 @@ +Subproject commit 94569378d4e4fafa054560bfdc5a86b20d41553b diff --git a/modules/WebSockets b/modules/WebSockets new file mode 160000 index 0000000000..f17facd329 --- /dev/null +++ b/modules/WebSockets @@ -0,0 +1 @@ +Subproject commit f17facd32960ff7e0a64eac863cf444b98ea16d9 diff --git a/scripts/UpdateBuildTools.ps1 b/scripts/UpdateBuildTools.ps1 index 0c16b148b2..0308041774 100755 --- a/scripts/UpdateBuildTools.ps1 +++ b/scripts/UpdateBuildTools.ps1 @@ -1,4 +1,4 @@ -#!/usr/bin/env powershell +#!/usr/bin/env pwsh <# .SYNOPSIS diff --git a/scripts/UpdateRepos.ps1 b/scripts/UpdateRepos.ps1 old mode 100644 new mode 100755 index 0530979e1b..9fe5ec896a --- a/scripts/UpdateRepos.ps1 +++ b/scripts/UpdateRepos.ps1 @@ -1,4 +1,4 @@ -#!/usr/bin/env powershell +#!/usr/bin/env pwsh <# .SYNOPSIS @@ -38,7 +38,7 @@ try { Invoke-Block { & git submodule update --init } $update_errors = @() - $submodules = Get-Submodules $ModuleDirectory + $submodules = Get-Submodules $RepoRoot $updated_submodules = @() foreach($submodule in $submodules) { diff --git a/scripts/UpdateSubmodules.ps1 b/scripts/UpdateSubmodules.ps1 index 2ccdc8cdb9..5a64ed2006 100755 --- a/scripts/UpdateSubmodules.ps1 +++ b/scripts/UpdateSubmodules.ps1 @@ -1,4 +1,4 @@ -#!/usr/bin/env powershell +#!/usr/bin/env pwsh <# .SYNOPSIS @@ -36,65 +36,71 @@ function Get-GitChanges([string]$Path) { return $LastExitCode -ne 0 } +Push-Location $RepoRoot | Out-Null try { Assert-Git + Write-Host "Checking that submodules are in a clean state first..." if (Get-GitChanges $ModuleDirectory) { Write-Error "$RepoRoot/modules is in an unclean state. Reset submodules first by running ``git submodule update``" exit 1 } - $submodules = Get-Submodules $ModuleDirectory + $submodules = Get-Submodules $RepoRoot -Verbose:$VerbosePreference - $changes = $submodules ` - | % { - Push-Location $_.path - try { - $vcs_name = "BUILD_VCS_NUMBER_" + $_.module - $newCommit = [environment]::GetEnvironmentVariable($vcs_name) + foreach ($submodule in $submodules) { + $submodulePath = $submodule.path + Write-Host "Updating $submodulePath" - if($newCommit -eq $null) - { - Write-Warning "TeamCity env variable '$vcs_name' not found." - Write-Warning "git submodule update --remote" - Invoke-Block { & git submodule update --remote } + $vcs_name = "BUILD_VCS_NUMBER_" + $submodule.module + $newCommit = [environment]::GetEnvironmentVariable($vcs_name) + + if (-not $newCommit) { + Write-Warning "TeamCity env variable '$vcs_name' not found. Pulling the latest submodule branch instead" + Invoke-Block { & git submodule update --remote $submodulePath } + Push-Location $submodulePath | Out-Null + try { $newCommit = $(git rev-parse HEAD) } - else - { + finally { + Pop-Location | Out-Null + } + } + else { + Push-Location $submodulePath | Out-Null + try { Invoke-Block { & git checkout $newCommit } } - - $_.newCommit = $newCommit - if ($newCommit -ne $_.commit) { - $_.changed = $true - Write-Verbose "$($_.module) updated to $($_.newCommit)" + finally { + Pop-Location | Out-Null } - else { - Write-Verbose "$($_.module) did not change" - } - return $_ } - finally { - Pop-Location - } - } ` - | ? { $_.changed } ` - | % { "$($_.module) to $($_.newCommit.Substring(0, 8))" } - $submodules ` + $submodule.newCommit = $newCommit + if ($newCommit -ne $submodule.commit) { + $submodule.changed = $true + Write-Host -ForegroundColor Cyan "`t=> $($submodule.module) updated to $($submodule.newCommit)" + } + else { + Write-Host -ForegroundColor Magenta "`t$($submodule.module) did not change" + } + } + + $changes = $submodules ` | ? { $_.changed } ` | % { Invoke-Block { & git add $_.path } + "$($_.module) => $($_.newCommit)" } if ($changes) { - $shortMessage = "Updating submodule(s) $( $changes -join ' ,' )" + $shortMessage = "Updating submodule(s) `n`n$( $changes -join "`n" )" # add this to the commit message to make it possible to filter commit triggers based on message $message = "$shortMessage`n`n[auto-updated: submodules]" if (-not $NoCommit -and ($Force -or ($PSCmdlet.ShouldContinue($shortMessage, 'Create a new commit with these changes?')))) { Invoke-Block { & git commit -m $message @GitCommitArgs } - } else { + } + else { # If composing this script with others, return the message that would have been used return @{ message = $message diff --git a/scripts/common.psm1 b/scripts/common.psm1 index 9c08953171..3c78631d60 100644 --- a/scripts/common.psm1 +++ b/scripts/common.psm1 @@ -6,6 +6,7 @@ function Assert-Git { } function Invoke-Block([scriptblock]$cmd) { + $cmd | Out-String | Write-Verbose & $cmd # Need to check both of these cases for errors as they represent different items @@ -16,15 +17,20 @@ function Invoke-Block([scriptblock]$cmd) { } } -function Get-Submodules([string]$ModuleDirectory) -{ - Invoke-Block { & git submodule update --init } +function Get-Submodules { + param( + [Parameter(Mandatory = $true)] + [string]$RepoRoot + ) - $gitModules = Join-Path $RepoRoot ".gitmodules" + Invoke-Block { & git submodule update --init } | Out-Null + + $moduleConfigFile = Join-Path $RepoRoot ".gitmodules" $submodules = @() - Get-ChildItem "$ModuleDirectory/*" -Directory | % { - Push-Location $_ + Get-ChildItem "$RepoRoot/modules/*" -Directory | % { + Push-Location $_ | Out-Null + Write-Verbose "Attempting to get submodule info for $_" try { $data = @{ path = $_ @@ -32,13 +38,13 @@ function Get-Submodules([string]$ModuleDirectory) commit = $(git rev-parse HEAD) newCommit = $null changed = $false - branch = $(git config -f $gitModules --get submodule.modules/$($_.Name).branch ) + branch = $(git config -f $moduleConfigFile --get submodule.modules/$($_.Name).branch ) } $submodules += $data } finally { - Pop-Location + Pop-Location | Out-Null } }