Repository navigation
[Breaking change]: Source Link is included in the .NET SDK #37674
Description
Activity
- addedbreaking-changeIndicates a .NET Core breaking changeIndicates a .NET Core breaking change
on Oct 23, 2023 @baronfel isn't this "source incompatible" rather than "behavior change"? Existing binaries don't change behavior but updating the SDK and rebuilding can change a version string.
Reacted by Chet Husk- added🗺️ reQUESTTriggers an issue to be imported into Quest.Triggers an issue to be imported into Quest.
on Oct 31, 2023 - addedsource incompatibleSource code may encounter a breaking change in behavior when targeting the new version.Source code may encounter a breaking change in behavior when targeting the new version.
on Oct 31, 2023 - added📌 seQUESTeredIdentifies that an issue has been imported into Quest.Identifies that an issue has been imported into Quest.and removed🗺️ reQUESTTriggers an issue to be imported into Quest.Triggers an issue to be imported into Quest.
on Nov 1, 2023 - added🏁 Release: .NET 8Work items for the .NET 8 releaseWork items for the .NET 8 release
on Nov 2, 2023 4 remaining items
- added 6 commits that reference this issue
on Nov 6, 2023 - ghost addedin-prThis issue will be closed (fixed) by an active pull request.This issue will be closed (fixed) by an active pull request.
on Nov 8, 2023 - moved this from 👀 In review to ✅ Done in dotnet/docs November 2023 sprint
on Nov 8, 2023 - ghost removedin-prThis issue will be closed (fixed) by an active pull request.This issue will be closed (fixed) by an active pull request.
on Nov 8, 2023 It would help to also document the
SuppressImplicitGitSourceLinkproperty. As it is now, in a repo with no mention of SourceLink, after you execute git commands that should leave up-to-dateness unchanged, net8.0 considers all projects to be marked for rebuilding.Imagine your CI/CD relies on Product Version. Suddenly whole CI/CD operations fail because the
ProductVersioncannot be parsed anymore withSystem.Version. Well done.Reacted by Benny TordrupThis also affects calls to these methods (possibly others) since they are using the ProductVersion as part of the path ("Base Path\CompanyName\ProductName\ProductVersion"):
System.Windows.Forms.Application.UserAppDataPath
System.Windows.Forms.Application.LocalUserAppDataPath
System.Windows.Forms.Application.UserAppDataRegistryHaving the data paths change after every commit instead of when the version was changed was unexpected behavior and disruptive during active development. I don't imagine a typical developer will expect to "lose" their user data on next application launch/debug just by committing a code change.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fields✅ Done
- StatusShow more project fields✅ Done
Description
The Source Link build tooling is included in the .NET SDK as of .NET SDK 8.0.100-preview.4, which enables packages and applications to embed information about the source control information of the built artifacts. As a side effect, by default commit information will be included in the InformationalVersion of build libraries and applications.
Version
.NET 8 Preview 6
Previous behavior
Prior to this change, the default
InformationalVersionof a library or application would be theVersionproperty.New behavior
After this change, the default
InformationalVersionof a library or application would be theVersionproperty as well as theSourceRevisionIdproperty.Type of breaking change
Reason for change
Source Link enables very rich editor tooling, like go-to-definition support for non-local source files. We think this benefit is worth including by default for all artifacts.
Recommended action
If your build process or code is not expecting Source Revision information in the InformationalVersion, you can disable this behavior by setting the
IncludeSourceRevisionInInformationalVersionproperty tofalse.Feature area
SDK
Affected APIs
No response
Associated WorkItem - 177280