Complete Source Link config: add deterministic build, CI build, and explicit SourceRoot
- Dominant language
- C#
- Stars
- 8
- Forks
- 4
- Avg merge
- 21h 1m
- Merged PRs (30d)
- 7
Description
### Summary
This repository already references `Microsoft.SourceLink.GitHub` and sets `PublishRepositoryUrl` / `EmbedUntrackedSources`, so basic Source Link works. However, it is missing several elements of the canonical Source Link + deterministic-build configuration now standardized across the AWS .NET libraries (see aws/integrations-on-dotnet-aspire-for-aws#245):
- **`true`** — explicit (not relying on the SDK default).
- **CI-gated ``** — currently absent, so CI builds are not path-normalized/fully reproducible and build-agent paths can leak into the PDB.
- **Explicit ``** — needed because the AWS release pipeline packs from a source archive **without a `.git` directory**; without it Source Link cannot derive the repository root and emits no commit-pinned document map.
### Requested change
Bring the build configuration up to the template. Prefer consolidating into a shared `Directory.Build.props` (and `Directory.Packages.props` if using central package management) rather than duplicating across each `.csproj`:
```xml
git
true
true
true
true
```
### Why
Reproducible builds and reliable commit-pinned Source Link for the shipped NuGet packages, consistent with the rest of the AWS .NET library set.
### References
- Canonical template: aws/integrations-on-dotnet-aspire-for-aws#245
- Pipeline build-script revision support: aws/aws-dotnet-devex-pipelines#197
Contributor guide
Research direction
Start by locating the repository's Directory.Build.props, Directory.Packages.props, project files, and CI build configuration, then compare them with the canonical template in aws/integrations-on-dotnet-aspire-for-aws#245. Confirm that deterministic builds, CI-gated ContinuousIntegrationBuild, the SourceLink package, and guarded SourceRoot are represented once in the shared configuration, and verify that the CI/package build produces commit-pinned Source Link data from a source archive.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, git, github
- Domain
- build-system, ci-cd
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100