From 283de50cae0fbdd11eeaf0955e919202a6027911 Mon Sep 17 00:00:00 2001
From: Jonathan Pryor <jonpryor@vt.edu>
Date: Tue, 23 Aug 2022 15:14:13 -0400
Subject: [PATCH] [ci] Use Microsoft.SourceLink.GitHub
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Context: https://github.com/xamarin/xamarin-android/commit/7b4d4b8c235b22b688db13e59771722da89f37cb
Context: https://github.com/dotnet/sourcelink#githubcom-and-github-enterprise
Context: https://www.hanselman.com/blog/exploring-net-cores-sourcelink-stepping-into-the-source-code-of-nuget-packages-you-dont-own

Changes: http://github.com/xamarin/xamarin-android-tools/compare/fc3c2ac191a47715bc58e110ef28f38009158416...29f11f2a304376bfa96de999a78083fe5a8174c6

  * xamarin/xamarin-android-tools@29f11f2: Bump to mono/mono.posix@d8994ca, xamarin/LibZipSharp@98e9173 (#193)
  * xamarin/xamarin-android-tools@7cfe683: [ci] Use Microsoft.SourceLink.GitHub (#192)
  * xamarin/xamarin-android-tools@01a0dde: [Localization] Import translated resx files (#189)
  * xamarin/xamarin-android-tools@cc715d9: [Xamarin.Android.Tools.AndroidSdk] Permit NDK r25 (#190)
  * xamarin/xamarin-android-tools@3c55e9a: Avoid `Environment.SpecialFolder.ApplicationData` (#188)
  * xamarin/xamarin-android-tools@0d55472: LEGO: Merge pull request 187
  * xamarin/xamarin-android-tools@6946512: Juno: check in to juno/hb_befb220e-87ce-47e9-a9e6-10ea592b2337_20220729154833425. (#186)
  * xamarin/xamarin-android-tools@6e3433a: Juno: check in to juno/hb_befb220e-87ce-47e9-a9e6-10ea592b2337_20220729025332507. (#185)
  * xamarin/xamarin-android-tools@73c4388: [Xamarin.Android.Tools.AndroidSdk] Update SDK component for API-33 (#184)
  * xamarin/xamarin-android-tools@da3653e: [Xamarin.Android.Tools.AndroidSdk] Add API-33 to KnownVersions
  * xamarin/xamarin-android-tools@327d433: [ci] Run OneLocBuild on a schedule (#180)
  * xamarin/xamarin-android-tools@8ab60e4: [ci] Use latest macOS and Windows images (#181)
  * xamarin/xamarin-android-tools@4dd3292: LEGO: Merge pull request 182
  * xamarin/xamarin-android-tools@56b61f1: [Localization] Add OneLocBuild job (#175)
  * xamarin/xamarin-android-tools@14076a6: [Xamarin.Android.Tools.AndroidSdk] Add API-32 to KnownVersions
  * xamarin/xamarin-android-tools@9c641b3: [Xamarin.Android.Tools.AndroidSdk] Update SDK component for API-32 (#169)
  * xamarin/xamarin-android-tools@ec346d0: [Xamarin.Android.Tools.AndroidSdk] Permit NDK r24 (#171)
  * xamarin/xamarin-android-tools@47832f1: [Xamarin.Android.Tools.AndroidSdk] AndroidSdkInfo validation locator (#170)
  * xamarin/xamarin-android-tools@20f6112: Bump LibZipSharp to 2.0.4 (#166)
  * xamarin/xamarin-android-tools@e4f0d59: Add support for writing android:roundIcon to Android manifest (#162)

Add a reference to the [Microsoft.SourceLink.GitHub NuGet package][0]
to `src/*/*.csproj` and `tools/*/*.csproj` so that `*.pdb` such as
`Java.Interop.pdb` contain URLs to facilitate debugging into their
corresponding assemblies without needing to checkout and build the
`Java.Interop` repo locally:

	% dotnet tool install --global SourceLink --version 3.1.1

	% $HOME/.dotnet/tools/sourcelink print-urls bin/Debug-net7.0/Java.Interop.pdb
	c1eaa3b7ef9a7354080ca02e56f5052a7b04fcf78298210fb69a1c05c5827c3d sha256 csharp /Volumes/Xamarin-Work/src/xamarin/Java.Interop/src/Java.Interop/GlobalSuppressions.cs
	https://raw.githubusercontent.com/jonpryor/Java.Interop/6d1ae4ee1076341f8af36dbdd306dce0e6266999/src/Java.Interop/GlobalSuppressions.cs
	…

	% $HOME/.dotnet/tools/sourcelink test bin/Debug-net7.0/Java.Interop.pdb
	3 Documents with errors:
	983b6f609d1a601d57df96467aafe6a0cc6173a23d261f98ad582d16983259a9 sha256 csharp /Volumes/Xamarin-Work/src/xamarin/Java.Interop/src/Java.Interop/obj/Debug/net7.0/JniEnvironment.g.cs
	https://raw.githubusercontent.com/jonpryor/Java.Interop/6d1ae4ee1076341f8af36dbdd306dce0e6266999/src/Java.Interop/obj/Debug/net7.0/JniEnvironment.g.cs
	error: url failed NotFound: Not Found
	9596da901062cf5add81d66c23696ca92bbfa59c82fe10f4f06d45292e2cb0ff sha256 csharp /Volumes/Xamarin-Work/src/xamarin/Java.Interop/src/Java.Interop/obj/Debug/net7.0/.NETCoreApp,Version=v7.0.AssemblyAttributes.cs
	https://raw.githubusercontent.com/jonpryor/Java.Interop/6d1ae4ee1076341f8af36dbdd306dce0e6266999/src/Java.Interop/obj/Debug/net7.0/.NETCoreApp,Version=v7.0.AssemblyAttributes.cs
	error: url failed NotFound: Not Found
	508b170eae1ea8b281b2a892293c0b1f2b1ee67db1bd8ce89036541d3f121643 sha256 csharp /Volumes/Xamarin-Work/src/xamarin/Java.Interop/src/Java.Interop/obj/Debug/net7.0/Java.Interop.AssemblyInfo.cs
	https://raw.githubusercontent.com/jonpryor/Java.Interop/6d1ae4ee1076341f8af36dbdd306dce0e6266999/src/Java.Interop/obj/Debug/net7.0/Java.Interop.AssemblyInfo.cs
	error: url failed NotFound: Not Found
	sourcelink test failed

These errors are expected, as they are generated files.

[0]: https://www.nuget.org/packages/Microsoft.SourceLink.GitHub
---
 Directory.Build.targets                                       | 1 +
 external/xamarin-android-tools                                | 2 +-
 src/Java.Base/Java.Base.csproj                                | 4 ++++
 src/Java.Interop.Dynamic/Java.Interop.Dynamic.csproj          | 3 +++
 src/Java.Interop.Export/Java.Interop.Export.csproj            | 3 +++
 .../Java.Interop.GenericMarshaler.csproj                      | 3 +++
 .../Java.Interop.Localization.csproj                          | 4 ++++
 src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil.csproj  | 4 ++++
 .../Java.Interop.Tools.Diagnostics.csproj                     | 4 ++++
 .../Java.Interop.Tools.Generator.csproj                       | 4 ++++
 .../Java.Interop.Tools.JavaCallableWrappers.csproj            | 4 ++++
 .../Java.Interop.Tools.JavaSource.csproj                      | 3 +++
 .../Java.Interop.Tools.JavaTypeSystem.csproj                  | 4 ++++
 src/Java.Interop/Java.Interop-MonoAndroid.csproj              | 3 +++
 src/Java.Interop/Java.Interop.csproj                          | 3 +++
 src/Java.Runtime.Environment/Java.Runtime.Environment.csproj  | 4 ++++
 .../Xamarin.Android.Tools.AnnotationSupport.Cecil.csproj      | 4 ++++
 .../Xamarin.Android.Tools.AnnotationSupport.csproj            | 1 +
 .../Xamarin.Android.Tools.ApiXmlAdjuster.csproj               | 4 ++++
 .../Xamarin.Android.Tools.Bytecode.csproj                     | 1 +
 src/Xamarin.SourceWriter/Xamarin.SourceWriter.csproj          | 4 ++++
 src/java-interop/java-interop.csproj                          | 1 +
 tools/class-parse/class-parse.csproj                          | 1 +
 tools/generator/generator.csproj                              | 1 +
 tools/jcw-gen/jcw-gen.csproj                                  | 1 +
 .../Xamarin.Android.Tools.JniMarshalMethodGenerator.csproj    | 1 +
 tools/logcat-parse/logcat-parse.csproj                        | 1 +
 tools/param-name-importer/param-name-importer.csproj          | 1 +
 28 files changed, 73 insertions(+), 1 deletion(-)

diff --git a/Directory.Build.targets b/Directory.Build.targets
index c4dcddd2f..961c349a4 100644
--- a/Directory.Build.targets
+++ b/Directory.Build.targets
@@ -21,6 +21,7 @@
     <PackageReference Update="Microsoft.DotNet.GenAPI"                      Version="7.0.0-beta.22103.1" />
     <PackageReference Update="Microsoft.NET.Test.Sdk"                       Version="16.11.0" />
     <PackageReference Update="Microsoft.NETFramework.ReferenceAssemblies"   Version="1.0.2" />
+    <PackageReference Update="Microsoft.SourceLink.GitHub"                  Version="1.1.1" />
     <PackageReference Update="Mono.CSharp"                                  Version="4.0.0.143" />
     <PackageReference Update="Mono.Linq.Expressions"                        Version="2.0.0" />
     <PackageReference Update="Mono.Options"                                 Version="6.12.0.148" />
diff --git a/external/xamarin-android-tools b/external/xamarin-android-tools
index fc3c2ac19..29f11f2a3 160000
--- a/external/xamarin-android-tools
+++ b/external/xamarin-android-tools
@@ -1 +1 @@
-Subproject commit fc3c2ac191a47715bc58e110ef28f38009158416
+Subproject commit 29f11f2a304376bfa96de999a78083fe5a8174c6
diff --git a/src/Java.Base/Java.Base.csproj b/src/Java.Base/Java.Base.csproj
index 95534c848..15a118a6f 100644
--- a/src/Java.Base/Java.Base.csproj
+++ b/src/Java.Base/Java.Base.csproj
@@ -19,6 +19,10 @@
     <ProjectReference Include="..\..\tools\generator\generator.csproj"      ReferenceOutputAssembly="False" />
   </ItemGroup>
 
+  <ItemGroup>
+    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
+  </ItemGroup>
+
   <Import Project="Java.Base.targets" />
 
 </Project>
diff --git a/src/Java.Interop.Dynamic/Java.Interop.Dynamic.csproj b/src/Java.Interop.Dynamic/Java.Interop.Dynamic.csproj
index ff0eea7a4..d1b6900e8 100644
--- a/src/Java.Interop.Dynamic/Java.Interop.Dynamic.csproj
+++ b/src/Java.Interop.Dynamic/Java.Interop.Dynamic.csproj
@@ -21,4 +21,7 @@
       <Name>Java.Interop</Name>
     </ProjectReference>
   </ItemGroup>
+  <ItemGroup>
+    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
+  </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/src/Java.Interop.Export/Java.Interop.Export.csproj b/src/Java.Interop.Export/Java.Interop.Export.csproj
index b6130ead2..4e797ba0b 100644
--- a/src/Java.Interop.Export/Java.Interop.Export.csproj
+++ b/src/Java.Interop.Export/Java.Interop.Export.csproj
@@ -20,4 +20,7 @@
       <Name>Java.Interop</Name>
     </ProjectReference>
   </ItemGroup>
+  <ItemGroup>
+    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
+  </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/src/Java.Interop.GenericMarshaler/Java.Interop.GenericMarshaler.csproj b/src/Java.Interop.GenericMarshaler/Java.Interop.GenericMarshaler.csproj
index b55823e6d..e7e2b6fe5 100644
--- a/src/Java.Interop.GenericMarshaler/Java.Interop.GenericMarshaler.csproj
+++ b/src/Java.Interop.GenericMarshaler/Java.Interop.GenericMarshaler.csproj
@@ -27,4 +27,7 @@
       <AdditionalProperties>TargetFramework=netstandard2.0</AdditionalProperties>
     </ProjectReference>
   </ItemGroup>
+  <ItemGroup>
+    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
+  </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/src/Java.Interop.Localization/Java.Interop.Localization.csproj b/src/Java.Interop.Localization/Java.Interop.Localization.csproj
index a98c34ef6..c6d6936fa 100644
--- a/src/Java.Interop.Localization/Java.Interop.Localization.csproj
+++ b/src/Java.Interop.Localization/Java.Interop.Localization.csproj
@@ -31,4 +31,8 @@
     </EmbeddedResource>
   </ItemGroup>
 
+  <ItemGroup>
+    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
+  </ItemGroup>
+
 </Project>
diff --git a/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil.csproj b/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil.csproj
index 2a842c826..1c9e56d07 100644
--- a/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil.csproj
+++ b/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil.csproj
@@ -25,4 +25,8 @@
     <ProjectReference Include="..\Java.Interop.Localization\Java.Interop.Localization.csproj" />
     <ProjectReference Include="..\Java.Interop.Tools.Diagnostics\Java.Interop.Tools.Diagnostics.csproj" />
   </ItemGroup>
+
+  <ItemGroup>
+    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
+  </ItemGroup>
 </Project>
diff --git a/src/Java.Interop.Tools.Diagnostics/Java.Interop.Tools.Diagnostics.csproj b/src/Java.Interop.Tools.Diagnostics/Java.Interop.Tools.Diagnostics.csproj
index c3936e52f..7f420d9e4 100644
--- a/src/Java.Interop.Tools.Diagnostics/Java.Interop.Tools.Diagnostics.csproj
+++ b/src/Java.Interop.Tools.Diagnostics/Java.Interop.Tools.Diagnostics.csproj
@@ -21,4 +21,8 @@
     <Compile Include="..\utils\NullableAttributes.cs" />
   </ItemGroup>
 
+  <ItemGroup>
+    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
+  </ItemGroup>
+
 </Project>
diff --git a/src/Java.Interop.Tools.Generator/Java.Interop.Tools.Generator.csproj b/src/Java.Interop.Tools.Generator/Java.Interop.Tools.Generator.csproj
index eae42b8d6..e2b8d1d64 100644
--- a/src/Java.Interop.Tools.Generator/Java.Interop.Tools.Generator.csproj
+++ b/src/Java.Interop.Tools.Generator/Java.Interop.Tools.Generator.csproj
@@ -21,4 +21,8 @@
     <ProjectReference Include="..\Java.Interop.Localization\Java.Interop.Localization.csproj" />
   </ItemGroup>
 
+  <ItemGroup>
+    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
+  </ItemGroup>
+
 </Project>
diff --git a/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers.csproj b/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers.csproj
index 9d85e7344..d8d7e8128 100644
--- a/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers.csproj
+++ b/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers.csproj
@@ -41,6 +41,10 @@
     <ProjectReference Include="..\Java.Interop.Tools.Diagnostics\Java.Interop.Tools.Diagnostics.csproj" />
   </ItemGroup>
 
+  <ItemGroup>
+    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
+  </ItemGroup>
+
   <Import Project="..\Java.Interop.NamingCustomAttributes\Java.Interop.NamingCustomAttributes.projitems" Label="Shared" Condition="Exists('..\Java.Interop.NamingCustomAttributes\Java.Interop.NamingCustomAttributes.projitems')" />
 
 </Project>
diff --git a/src/Java.Interop.Tools.JavaSource/Java.Interop.Tools.JavaSource.csproj b/src/Java.Interop.Tools.JavaSource/Java.Interop.Tools.JavaSource.csproj
index 5f84e236a..a7ab19d49 100644
--- a/src/Java.Interop.Tools.JavaSource/Java.Interop.Tools.JavaSource.csproj
+++ b/src/Java.Interop.Tools.JavaSource/Java.Interop.Tools.JavaSource.csproj
@@ -21,4 +21,7 @@
   <ItemGroup>
     <ProjectReference Include="..\Xamarin.Android.Tools.ApiXmlAdjuster\Xamarin.Android.Tools.ApiXmlAdjuster.csproj" />
   </ItemGroup>
+  <ItemGroup>
+    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
+  </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/src/Java.Interop.Tools.JavaTypeSystem/Java.Interop.Tools.JavaTypeSystem.csproj b/src/Java.Interop.Tools.JavaTypeSystem/Java.Interop.Tools.JavaTypeSystem.csproj
index e61605e93..e6fe5a30e 100644
--- a/src/Java.Interop.Tools.JavaTypeSystem/Java.Interop.Tools.JavaTypeSystem.csproj
+++ b/src/Java.Interop.Tools.JavaTypeSystem/Java.Interop.Tools.JavaTypeSystem.csproj
@@ -22,4 +22,8 @@
   <ItemGroup>
     <ProjectReference Include="..\..\src\Java.Interop.Tools.Cecil\Java.Interop.Tools.Cecil.csproj" />
   </ItemGroup>
+
+  <ItemGroup>
+    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
+  </ItemGroup>
 </Project>
diff --git a/src/Java.Interop/Java.Interop-MonoAndroid.csproj b/src/Java.Interop/Java.Interop-MonoAndroid.csproj
index 3cae2eb9f..3a6d3e802 100644
--- a/src/Java.Interop/Java.Interop-MonoAndroid.csproj
+++ b/src/Java.Interop/Java.Interop-MonoAndroid.csproj
@@ -127,4 +127,7 @@
         AdditionalProperties="TargetFramework=net472"
     />
   </ItemGroup>
+  <ItemGroup>
+    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
+  </ItemGroup>
 </Project>
diff --git a/src/Java.Interop/Java.Interop.csproj b/src/Java.Interop/Java.Interop.csproj
index 31f08e8a0..4829f60bd 100644
--- a/src/Java.Interop/Java.Interop.csproj
+++ b/src/Java.Interop/Java.Interop.csproj
@@ -101,5 +101,8 @@
       </Properties>
     </MonoDevelop>
   </ProjectExtensions>
+  <ItemGroup>
+    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
+  </ItemGroup>
   <Import Project="Java.Interop.targets" />
 </Project>
diff --git a/src/Java.Runtime.Environment/Java.Runtime.Environment.csproj b/src/Java.Runtime.Environment/Java.Runtime.Environment.csproj
index 72add3fe4..ae071741a 100644
--- a/src/Java.Runtime.Environment/Java.Runtime.Environment.csproj
+++ b/src/Java.Runtime.Environment/Java.Runtime.Environment.csproj
@@ -31,4 +31,8 @@
     </Content>
   </ItemGroup>
 
+  <ItemGroup>
+    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
+  </ItemGroup>
+
 </Project>
diff --git a/src/Xamarin.Android.Tools.AnnotationSupport.Cecil/Xamarin.Android.Tools.AnnotationSupport.Cecil.csproj b/src/Xamarin.Android.Tools.AnnotationSupport.Cecil/Xamarin.Android.Tools.AnnotationSupport.Cecil.csproj
index 1424d7713..96844fce6 100644
--- a/src/Xamarin.Android.Tools.AnnotationSupport.Cecil/Xamarin.Android.Tools.AnnotationSupport.Cecil.csproj
+++ b/src/Xamarin.Android.Tools.AnnotationSupport.Cecil/Xamarin.Android.Tools.AnnotationSupport.Cecil.csproj
@@ -17,4 +17,8 @@
     <ProjectReference Include="..\Xamarin.Android.Tools.ApiXmlAdjuster\Xamarin.Android.Tools.ApiXmlAdjuster.csproj" />
   </ItemGroup>
 
+  <ItemGroup>
+    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
+  </ItemGroup>
+
 </Project>
diff --git a/src/Xamarin.Android.Tools.AnnotationSupport/Xamarin.Android.Tools.AnnotationSupport.csproj b/src/Xamarin.Android.Tools.AnnotationSupport/Xamarin.Android.Tools.AnnotationSupport.csproj
index 8ee418807..c12ad0713 100644
--- a/src/Xamarin.Android.Tools.AnnotationSupport/Xamarin.Android.Tools.AnnotationSupport.csproj
+++ b/src/Xamarin.Android.Tools.AnnotationSupport/Xamarin.Android.Tools.AnnotationSupport.csproj
@@ -12,6 +12,7 @@
 
   <ItemGroup>
     <PackageReference Include="HtmlAgilityPack" />
+    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
   </ItemGroup>
 
 </Project>
diff --git a/src/Xamarin.Android.Tools.ApiXmlAdjuster/Xamarin.Android.Tools.ApiXmlAdjuster.csproj b/src/Xamarin.Android.Tools.ApiXmlAdjuster/Xamarin.Android.Tools.ApiXmlAdjuster.csproj
index 40eb2a533..cb7eb5a0a 100644
--- a/src/Xamarin.Android.Tools.ApiXmlAdjuster/Xamarin.Android.Tools.ApiXmlAdjuster.csproj
+++ b/src/Xamarin.Android.Tools.ApiXmlAdjuster/Xamarin.Android.Tools.ApiXmlAdjuster.csproj
@@ -17,4 +17,8 @@
     <Compile Include="..\utils\NullableAttributes.cs" />
   </ItemGroup>
 
+  <ItemGroup>
+    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
+  </ItemGroup>
+
 </Project>
diff --git a/src/Xamarin.Android.Tools.Bytecode/Xamarin.Android.Tools.Bytecode.csproj b/src/Xamarin.Android.Tools.Bytecode/Xamarin.Android.Tools.Bytecode.csproj
index 95db41669..becbe89fb 100644
--- a/src/Xamarin.Android.Tools.Bytecode/Xamarin.Android.Tools.Bytecode.csproj
+++ b/src/Xamarin.Android.Tools.Bytecode/Xamarin.Android.Tools.Bytecode.csproj
@@ -22,6 +22,7 @@
   <ItemGroup>
     <!-- Always reference the netstandard2.0 version of protobuf-net as it is a shared dependency. -->
     <PackageReference Include="protobuf-net" ExcludeAssets="Compile" GeneratePathProperty="true" />
+    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
     <Reference Include="protobuf-net">
       <HintPath>$(PkgProtobuf-net)\lib\netstandard2.0\protobuf-net.dll</HintPath>
     </Reference>
diff --git a/src/Xamarin.SourceWriter/Xamarin.SourceWriter.csproj b/src/Xamarin.SourceWriter/Xamarin.SourceWriter.csproj
index 155145daa..caed97606 100644
--- a/src/Xamarin.SourceWriter/Xamarin.SourceWriter.csproj
+++ b/src/Xamarin.SourceWriter/Xamarin.SourceWriter.csproj
@@ -6,4 +6,8 @@
 
   <Import Project="..\..\TargetFrameworkDependentValues.props" />
 
+  <ItemGroup>
+    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
+  </ItemGroup>
+
 </Project>
diff --git a/src/java-interop/java-interop.csproj b/src/java-interop/java-interop.csproj
index 0c0181b03..c506b678e 100644
--- a/src/java-interop/java-interop.csproj
+++ b/src/java-interop/java-interop.csproj
@@ -23,6 +23,7 @@
 
   <ItemGroup>
     <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" PrivateAssets="All" />
+    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
   </ItemGroup>
 
   <ItemGroup>
diff --git a/tools/class-parse/class-parse.csproj b/tools/class-parse/class-parse.csproj
index 8ac43c5af..a1eb43cc4 100644
--- a/tools/class-parse/class-parse.csproj
+++ b/tools/class-parse/class-parse.csproj
@@ -14,6 +14,7 @@
   <ItemGroup>
     <PackageReference Include="Mono.Options" />
     <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" PrivateAssets="All" />
+    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
   </ItemGroup>
 
   <ItemGroup>
diff --git a/tools/generator/generator.csproj b/tools/generator/generator.csproj
index c0db3c164..cfc678859 100644
--- a/tools/generator/generator.csproj
+++ b/tools/generator/generator.csproj
@@ -41,6 +41,7 @@
         <HintPath>$(PkgHtmlAgilityPack)\lib\netstandard2.0\HtmlAgilityPack.dll</HintPath>
     </Reference>
     <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" PrivateAssets="All" />
+    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
   </ItemGroup>
 
   <ItemGroup>
diff --git a/tools/jcw-gen/jcw-gen.csproj b/tools/jcw-gen/jcw-gen.csproj
index f45cbb0bb..819811fda 100644
--- a/tools/jcw-gen/jcw-gen.csproj
+++ b/tools/jcw-gen/jcw-gen.csproj
@@ -14,6 +14,7 @@
   <ItemGroup>
     <PackageReference Include="Mono.Options" />
     <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" PrivateAssets="All" />
+    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
   </ItemGroup>
 
   <Import Project="..\..\build-tools\scripts\cecil.projitems" />
diff --git a/tools/jnimarshalmethod-gen/Xamarin.Android.Tools.JniMarshalMethodGenerator.csproj b/tools/jnimarshalmethod-gen/Xamarin.Android.Tools.JniMarshalMethodGenerator.csproj
index 0d7b26b7d..c540acb30 100644
--- a/tools/jnimarshalmethod-gen/Xamarin.Android.Tools.JniMarshalMethodGenerator.csproj
+++ b/tools/jnimarshalmethod-gen/Xamarin.Android.Tools.JniMarshalMethodGenerator.csproj
@@ -22,6 +22,7 @@
   <ItemGroup>
     <PackageReference Include="Mono.Options" />
     <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" PrivateAssets="All" />
+    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
   </ItemGroup>
 
   <ItemGroup Condition=" '$(_DumpRegisterNativeMembers)' == 'True' ">
diff --git a/tools/logcat-parse/logcat-parse.csproj b/tools/logcat-parse/logcat-parse.csproj
index e63067cc0..76b46520e 100644
--- a/tools/logcat-parse/logcat-parse.csproj
+++ b/tools/logcat-parse/logcat-parse.csproj
@@ -16,6 +16,7 @@
     <PackageReference Include="Mono.Terminal" GeneratePathProperty="True" />
     <PackageReference Include="Mono.CSharp" NoWarn="NU1701" />
     <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" PrivateAssets="All" />
+    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
   </ItemGroup>
 
   <ItemGroup>
diff --git a/tools/param-name-importer/param-name-importer.csproj b/tools/param-name-importer/param-name-importer.csproj
index 5f6e7d7e8..bd799ce88 100644
--- a/tools/param-name-importer/param-name-importer.csproj
+++ b/tools/param-name-importer/param-name-importer.csproj
@@ -22,6 +22,7 @@
     </Reference>
     <PackageReference Include="Mono.Options" />
     <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" PrivateAssets="All" />
+    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\..\src\Java.Interop.Tools.JavaSource\Java.Interop.Tools.JavaSource.csproj" />
