Closed ctaggart closed 6 years ago
Some open questions:
cc @tmat
Will the Microsoft.Build.Tasks.Git be able to handle git submodule support?
Yes.
Would it be possible to provide a source control package that provided the source link info for paket github dependencies?
I'm not familiar with packet but it will support source nuget packages. Packet should probably work as well.
Re source packages:
See e.g. https://dotnet.myget.org/feed/roslyn/package/nuget/Microsoft.CodeAnalysis.Debugging/2.7.0-beta3-62506-01. The package includes build\Microsoft.CodeAnalysis.Debugging.props
file that adds a SourceRoot
like so:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<SourceRoot Include="$([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)..\contentFiles\cs\$(TargetFramework)\'))"
RawUrl="https://raw.githubusercontent.com/dotnet/roslyn/5fa5e066eb945b4c91a54ff29c01ca87f310e96b/src/Dependencies/CodeAnalysis.Debugging"
UniqueName="$(MSBuildThisFileName)"/>
</ItemGroup>
</Project>
This is not the final form, I need to update Roslyn a bit. It should be something like:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<SourceRoot Include="$([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)..\contentFiles\cs\$(TargetFramework)\'))"
SourceLinkUrl="https://raw.githubusercontent.com/dotnet/roslyn/5fa5e066eb945b4c91a54ff29c01ca87f310e96b/src/Dependencies/CodeAnalysis.Debugging/*"/>
</ItemGroup>
</Project>
As long as packet can add SourceRoot
it should work.
Cool, that should be easy enough to do.
Interesting! I don't see Microsoft.Build.Tasks.Git yet, does that mean it will be a new package eventually? Will it continue to function as SourceLink does in terms of what goes into the MSBuild target properties and such?
@borrrden Yes, it will be a new package. The properties will be different. Currently work in progress: https://github.com/tmat/repository-info/tree/master/docs
https://github.com/dotnet/sourcelink is now available with libraries published on NuGet.
Will Microsoft be providing the functionality in SourceLink.Embed.AllSourceFiles
That has been supported since VS 15.6. Specify <EmbedAllSources>true</EmbedAllSources>
in your project.
With SourceLink you can also specify <EmbedUntrackedSources>true</EmbedUntrackedSources>
.
See https://github.com/dotnet/sourcelink/tree/master/docs#embedallsources
The plan for 3.0 has been broken up into issues and attached to a milestone: https://github.com/ctaggart/SourceLink/milestone/30
Most functionality is to be replaced by https://github.com/dotnet/sourcelink Microsoft.SourceLink packages. Some utilities to fill in the gaps will remain here. Feedback welcome.
SourceLink exists to fill a gap in the .NET tooling. For version 2, much of the functionality was replaced by new .NET tooling that was developed along with .NET Core such as the Portable PDB format and the System.Reflection.Metadata that provides an API to it. For version 3, functionality found in version 2 will also move upstream into the .NET tooling. There will be three layers: