Revert sourcelink patch, will need to flow in latest version
This commit is contained in:
parent
23f565e535
commit
8adfab91ad
1 changed files with 0 additions and 276 deletions
|
@ -1,276 +0,0 @@
|
||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Matou=C5=A1ek?=
|
|
||||||
<tmat@users.noreply.github.com>
|
|
||||||
Date: Mon, 10 Apr 2023 14:25:53 -0700
|
|
||||||
Subject: [PATCH] Fix FileWrites (#995)
|
|
||||||
|
|
||||||
Backport: https://github.com/dotnet/sourcelink/issues/993
|
|
||||||
---
|
|
||||||
.../GenerateSourceLinkFileTests.cs | 4 --
|
|
||||||
.../GenerateSourceLinkFile.cs | 16 +----
|
|
||||||
.../build/Microsoft.SourceLink.Common.targets | 11 +++-
|
|
||||||
.../CloudHostedProvidersTests.cs | 61 ++++++++++++++-----
|
|
||||||
4 files changed, 56 insertions(+), 36 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/SourceLink.Common.UnitTests/GenerateSourceLinkFileTests.cs b/src/SourceLink.Common.UnitTests/GenerateSourceLinkFileTests.cs
|
|
||||||
index 50ecb7c..9234421 100644
|
|
||||||
--- a/src/SourceLink.Common.UnitTests/GenerateSourceLinkFileTests.cs
|
|
||||||
+++ b/src/SourceLink.Common.UnitTests/GenerateSourceLinkFileTests.cs
|
|
||||||
@@ -40,7 +40,6 @@ public void Empty(bool noWarning)
|
|
||||||
AssertEx.AssertEqualToleratingWhitespaceDifferences(expectedOutput, engine.Log);
|
|
||||||
|
|
||||||
Assert.Null(task.SourceLink);
|
|
||||||
- Assert.Null(task.FileWrite);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Theory]
|
|
||||||
@@ -73,7 +72,6 @@ public void NoRepositoryUrl(bool noWarning)
|
|
||||||
AssertEx.AssertEqualToleratingWhitespaceDifferences(expectedOutput, engine.Log);
|
|
||||||
|
|
||||||
Assert.Null(task.SourceLink);
|
|
||||||
- Assert.Null(task.FileWrite);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
@@ -100,7 +98,6 @@ public void Empty_DeleteExistingFile()
|
|
||||||
string.Format(Resources.SourceLinkEmptyDeletingExistingFile, sourceLinkFile.Path), engine.Log);
|
|
||||||
|
|
||||||
Assert.Null(task.SourceLink);
|
|
||||||
- Assert.Equal(sourceLinkFile.Path, task.FileWrite);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
@@ -235,7 +232,6 @@ public void DoesNotRewriteContentIfFileContentIsSame()
|
|
||||||
|
|
||||||
Assert.Equal(@"{""documents"":{""/_\""_/*"":""https://raw.githubusercontent.com/repo/*""}}", File.ReadAllText(tempFile.Path, Encoding.UTF8));
|
|
||||||
Assert.Equal(tempFile.Path, task.SourceLink);
|
|
||||||
- Assert.Equal(tempFile.Path, task.FileWrite);
|
|
||||||
|
|
||||||
result = task.Execute();
|
|
||||||
|
|
||||||
diff --git a/src/SourceLink.Common/GenerateSourceLinkFile.cs b/src/SourceLink.Common/GenerateSourceLinkFile.cs
|
|
||||||
index 8a07616..859cf0d 100644
|
|
||||||
--- a/src/SourceLink.Common/GenerateSourceLinkFile.cs
|
|
||||||
+++ b/src/SourceLink.Common/GenerateSourceLinkFile.cs
|
|
||||||
@@ -21,12 +21,6 @@ public sealed class GenerateSourceLinkFile : Task
|
|
||||||
[Required, NotNull]
|
|
||||||
public string? OutputFile { get; set; }
|
|
||||||
|
|
||||||
- /// <summary>
|
|
||||||
- /// Set to <see cref="OutputFile"/> if the output file was written to, null otherwise.
|
|
||||||
- /// </summary>
|
|
||||||
- [Output]
|
|
||||||
- public string? FileWrite { get; set; }
|
|
||||||
-
|
|
||||||
/// <summary>
|
|
||||||
/// Set to <see cref="OutputFile"/> if the output Source Link file should be passed to the compiler.
|
|
||||||
/// </summary>
|
|
||||||
@@ -60,14 +54,14 @@ static string jsonEscape(string str)
|
|
||||||
|
|
||||||
if (!localPath.EndsWithSeparator())
|
|
||||||
{
|
|
||||||
- Log.LogError(Resources.MustEndWithDirectorySeparator, (isMapped ? Names.SourceRoot.MappedPathFullName : Names.SourceRoot.Name), localPath);
|
|
||||||
+ Log.LogError(Resources.MustEndWithDirectorySeparator, isMapped ? Names.SourceRoot.MappedPathFullName : Names.SourceRoot.Name, localPath);
|
|
||||||
success = false;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (localPath.Contains('*'))
|
|
||||||
{
|
|
||||||
- Log.LogError(Resources.MustNotContainWildcard, (isMapped ? Names.SourceRoot.MappedPathFullName : Names.SourceRoot.Name), localPath);
|
|
||||||
+ Log.LogError(Resources.MustNotContainWildcard, isMapped ? Names.SourceRoot.MappedPathFullName : Names.SourceRoot.Name, localPath);
|
|
||||||
success = false;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
@@ -127,7 +121,6 @@ private void WriteSourceLinkFile(string? content)
|
|
||||||
Log.LogMessage(Resources.SourceLinkEmptyDeletingExistingFile, OutputFile);
|
|
||||||
|
|
||||||
File.Delete(OutputFile);
|
|
||||||
- FileWrite = OutputFile;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -151,14 +144,11 @@ private void WriteSourceLinkFile(string? content)
|
|
||||||
|
|
||||||
Log.LogMessage(Resources.SourceLinkFileUpdated, OutputFile);
|
|
||||||
File.WriteAllText(OutputFile, content);
|
|
||||||
- FileWrite = SourceLink = OutputFile;
|
|
||||||
+ SourceLink = OutputFile;
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
Log.LogError(Resources.ErrorWritingToSourceLinkFile, OutputFile, e.Message);
|
|
||||||
-
|
|
||||||
- // Part of the file might have been written.
|
|
||||||
- FileWrite = OutputFile;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
diff --git a/src/SourceLink.Common/build/Microsoft.SourceLink.Common.targets b/src/SourceLink.Common/build/Microsoft.SourceLink.Common.targets
|
|
||||||
index ea05b19..0f9a861 100644
|
|
||||||
--- a/src/SourceLink.Common/build/Microsoft.SourceLink.Common.targets
|
|
||||||
+++ b/src/SourceLink.Common/build/Microsoft.SourceLink.Common.targets
|
|
||||||
@@ -58,11 +58,16 @@
|
|
||||||
|
|
||||||
<!-- Set SourceLink property passed to compilers -->
|
|
||||||
<Output TaskParameter="SourceLink" PropertyName="SourceLink" />
|
|
||||||
-
|
|
||||||
- <!-- Log file write if the content of the file has been updated -->
|
|
||||||
- <Output TaskParameter="FileWrite" ItemName="FileWrites" />
|
|
||||||
</Microsoft.SourceLink.Common.GenerateSourceLinkFile>
|
|
||||||
|
|
||||||
+ <!--
|
|
||||||
+ Include the output file whenever it exists, even if it hasn't been written to (it was up-to-date).
|
|
||||||
+ This is needed so that incremental clean doesn't delete the file.
|
|
||||||
+ -->
|
|
||||||
+ <ItemGroup Condition="'$(SourceLink)' != ''">
|
|
||||||
+ <FileWrites Include="$(SourceLink)" />
|
|
||||||
+ </ItemGroup>
|
|
||||||
+
|
|
||||||
<!-- C++ Link task currently doesn't recognize SourceLink property -->
|
|
||||||
<ItemGroup Condition="'$(Language)' == 'C++' and '$(SourceLink)' != ''">
|
|
||||||
<Link Update="@(Link)">
|
|
||||||
diff --git a/src/SourceLink.Git.IntegrationTests/CloudHostedProvidersTests.cs b/src/SourceLink.Git.IntegrationTests/CloudHostedProvidersTests.cs
|
|
||||||
index 8a91a9a..58129d0 100644
|
|
||||||
--- a/src/SourceLink.Git.IntegrationTests/CloudHostedProvidersTests.cs
|
|
||||||
+++ b/src/SourceLink.Git.IntegrationTests/CloudHostedProvidersTests.cs
|
|
||||||
@@ -131,6 +131,11 @@ public void NoCommit_NoRemote_NoWarnings()
|
|
||||||
<PkgMicrosoft_Build_Tasks_Git></PkgMicrosoft_Build_Tasks_Git>
|
|
||||||
<PkgMicrosoft_SourceLink_Common></PkgMicrosoft_SourceLink_Common>
|
|
||||||
</PropertyGroup>
|
|
||||||
+ <Target Name="_CaptureFileWrites" DependsOnTargets="GenerateSourceLinkFile" BeforeTargets="AfterBuild">
|
|
||||||
+ <ItemGroup>
|
|
||||||
+ <_SourceLinkFileWrites Include="@(FileWrites)" Condition="$([MSBuild]::ValueOrDefault('%(Identity)', '').EndsWith('sourcelink.json'))"/>
|
|
||||||
+ </ItemGroup>
|
|
||||||
+ </Target>
|
|
||||||
""",
|
|
||||||
customTargets: "",
|
|
||||||
targets: new[]
|
|
||||||
@@ -141,11 +146,13 @@ public void NoCommit_NoRemote_NoWarnings()
|
|
||||||
{
|
|
||||||
"@(SourceRoot)",
|
|
||||||
"$(SourceLink)",
|
|
||||||
+ "@(_SourceLinkFileWrites)",
|
|
||||||
},
|
|
||||||
expectedResults: new[]
|
|
||||||
{
|
|
||||||
NuGetPackageFolders,
|
|
||||||
"",
|
|
||||||
+ "",
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -160,6 +167,11 @@ public void Commit_NoRemote_NoWarnings()
|
|
||||||
<PkgMicrosoft_Build_Tasks_Git></PkgMicrosoft_Build_Tasks_Git>
|
|
||||||
<PkgMicrosoft_SourceLink_Common></PkgMicrosoft_SourceLink_Common>
|
|
||||||
</PropertyGroup>
|
|
||||||
+ <Target Name="_CaptureFileWrites" DependsOnTargets="GenerateSourceLinkFile" BeforeTargets="AfterBuild">
|
|
||||||
+ <ItemGroup>
|
|
||||||
+ <_SourceLinkFileWrites Include="@(FileWrites)" Condition="$([MSBuild]::ValueOrDefault('%(Identity)', '').EndsWith('sourcelink.json'))"/>
|
|
||||||
+ </ItemGroup>
|
|
||||||
+ </Target>
|
|
||||||
""",
|
|
||||||
customTargets: "",
|
|
||||||
targets: new[]
|
|
||||||
@@ -170,12 +182,14 @@ public void Commit_NoRemote_NoWarnings()
|
|
||||||
{
|
|
||||||
"@(SourceRoot)",
|
|
||||||
"$(SourceLink)",
|
|
||||||
+ "@(_SourceLinkFileWrites)",
|
|
||||||
},
|
|
||||||
expectedResults: new[]
|
|
||||||
{
|
|
||||||
NuGetPackageFolders,
|
|
||||||
ProjectSourceRoot,
|
|
||||||
"",
|
|
||||||
+ "",
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -190,6 +204,11 @@ public void NoCommit_Remote_NoWarnings()
|
|
||||||
<PkgMicrosoft_Build_Tasks_Git></PkgMicrosoft_Build_Tasks_Git>
|
|
||||||
<PkgMicrosoft_SourceLink_Common></PkgMicrosoft_SourceLink_Common>
|
|
||||||
</PropertyGroup>
|
|
||||||
+ <Target Name="_CaptureFileWrites" DependsOnTargets="GenerateSourceLinkFile" BeforeTargets="AfterBuild">
|
|
||||||
+ <ItemGroup>
|
|
||||||
+ <_SourceLinkFileWrites Include="@(FileWrites)" Condition="$([MSBuild]::ValueOrDefault('%(Identity)', '').EndsWith('sourcelink.json'))"/>
|
|
||||||
+ </ItemGroup>
|
|
||||||
+ </Target>
|
|
||||||
""",
|
|
||||||
customTargets: "",
|
|
||||||
targets: new[]
|
|
||||||
@@ -200,11 +219,13 @@ public void NoCommit_Remote_NoWarnings()
|
|
||||||
{
|
|
||||||
"@(SourceRoot)",
|
|
||||||
"$(SourceLink)",
|
|
||||||
+ "@(_SourceLinkFileWrites)",
|
|
||||||
},
|
|
||||||
expectedResults: new[]
|
|
||||||
{
|
|
||||||
NuGetPackageFolders,
|
|
||||||
"",
|
|
||||||
+ "",
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -230,21 +251,27 @@ public void CustomTranslation()
|
|
||||||
DependsOnTargets=""$(SourceControlManagerUrlTranslationTargets)""
|
|
||||||
BeforeTargets=""SourceControlManagerPublishTranslatedUrls"">
|
|
||||||
|
|
||||||
- <PropertyGroup>
|
|
||||||
- <_Pattern>https://([^.]+)[.]visualstudio.com/([^/]+)/_git/([^/]+)</_Pattern>
|
|
||||||
- <_Replacement>https://github.com/$2/$3</_Replacement>
|
|
||||||
- </PropertyGroup>
|
|
||||||
-
|
|
||||||
- <PropertyGroup>
|
|
||||||
- <ScmRepositoryUrl>$([System.Text.RegularExpressions.Regex]::Replace($(ScmRepositoryUrl), $(_Pattern), $(_Replacement)))</ScmRepositoryUrl>
|
|
||||||
- </PropertyGroup>
|
|
||||||
-
|
|
||||||
- <ItemGroup>
|
|
||||||
- <SourceRoot Update=""@(SourceRoot)"">
|
|
||||||
- <ScmRepositoryUrl>$([System.Text.RegularExpressions.Regex]::Replace(%(SourceRoot.ScmRepositoryUrl), $(_Pattern), $(_Replacement)))</ScmRepositoryUrl>
|
|
||||||
- </SourceRoot>
|
|
||||||
- </ItemGroup>
|
|
||||||
- </Target>
|
|
||||||
+ <PropertyGroup>
|
|
||||||
+ <_Pattern>https://([^.]+)[.]visualstudio.com/([^/]+)/_git/([^/]+)</_Pattern>
|
|
||||||
+ <_Replacement>https://github.com/$2/$3</_Replacement>
|
|
||||||
+ </PropertyGroup>
|
|
||||||
+
|
|
||||||
+ <PropertyGroup>
|
|
||||||
+ <ScmRepositoryUrl>$([System.Text.RegularExpressions.Regex]::Replace($(ScmRepositoryUrl), $(_Pattern), $(_Replacement)))</ScmRepositoryUrl>
|
|
||||||
+ </PropertyGroup>
|
|
||||||
+
|
|
||||||
+ <ItemGroup>
|
|
||||||
+ <SourceRoot Update=""@(SourceRoot)"">
|
|
||||||
+ <ScmRepositoryUrl>$([System.Text.RegularExpressions.Regex]::Replace(%(SourceRoot.ScmRepositoryUrl), $(_Pattern), $(_Replacement)))</ScmRepositoryUrl>
|
|
||||||
+ </SourceRoot>
|
|
||||||
+ </ItemGroup>
|
|
||||||
+</Target>
|
|
||||||
+
|
|
||||||
+<Target Name=""_CaptureFileWrites"" DependsOnTargets=""GenerateSourceLinkFile"" BeforeTargets=""AfterBuild"">
|
|
||||||
+ <ItemGroup>
|
|
||||||
+ <_SourceLinkFileWrites Include=""@(FileWrites)"" Condition=""$([MSBuild]::ValueOrDefault('%(Identity)', '').EndsWith('sourcelink.json'))""/>
|
|
||||||
+ </ItemGroup>
|
|
||||||
+</Target>
|
|
||||||
",
|
|
||||||
targets: new[]
|
|
||||||
{
|
|
||||||
@@ -256,7 +283,8 @@ public void CustomTranslation()
|
|
||||||
"@(SourceRoot->'%(SourceLinkUrl)')",
|
|
||||||
"$(SourceLink)",
|
|
||||||
"$(PrivateRepositoryUrl)",
|
|
||||||
- "$(RepositoryUrl)"
|
|
||||||
+ "$(RepositoryUrl)",
|
|
||||||
+ "@(_SourceLinkFileWrites)",
|
|
||||||
},
|
|
||||||
expectedResults: new[]
|
|
||||||
{
|
|
||||||
@@ -266,6 +294,7 @@ public void CustomTranslation()
|
|
||||||
s_relativeSourceLinkJsonPath,
|
|
||||||
$"https://github.com/test-org/{repoName}",
|
|
||||||
$"https://github.com/test-org/{repoName}",
|
|
||||||
+ s_relativeSourceLinkJsonPath
|
|
||||||
});
|
|
||||||
|
|
||||||
AssertEx.AreEqual(
|
|
Loading…
Reference in a new issue