diff --git a/DEVELOPER_GUIDE.md b/DEVELOPER_GUIDE.md index 124036272a..ceb759f232 100644 --- a/DEVELOPER_GUIDE.md +++ b/DEVELOPER_GUIDE.md @@ -107,6 +107,8 @@ The repository root `nuget.config` is part of this supply-chain boundary. It cle CI (`.github/workflows/dotnet.yml`, `release.yml`, `codeql.yml`) restores the solution with `--locked-mode`, so any drift between the committed lock files and the resolution graph fails the build instead of slipping into artifacts. Local development restores normally; the lock file is only enforced in CI. +The `CodeIndex` package project opts into deterministic builds and publishes repository metadata for Source Link. On GitHub Actions it also sets `ContinuousIntegrationBuild=true` and embeds untracked source inputs so PDBs and `.snupkg` artifacts can map back to the repository without local machine paths. Build metadata uses the Git commit date when available instead of the wall-clock build date so repeated builds of the same commit do not drift by timestamp. `Microsoft.SourceLink.GitHub` is a build-only dependency (`PrivateAssets=All`), not a runtime dependency. + The normal build/test workflow also runs `dotnet list src/CodeIndex/CodeIndex.csproj package --vulnerable --include-transitive --no-restore` after locked restore and fails on any High or Critical NuGet advisory in direct or transitive runtime packages. Dependabot is configured for weekly NuGet and GitHub Actions update PRs in `.github/dependabot.yml`, so security fixes and routine dependency/action bumps are proposed before they become release surprises. The release `dotnet publish` (per-RID) and `dotnet pack` (NuGet packaging) steps intentionally do **not** set `RestoreLockedMode=true`. Those steps run runtime-specific restores that legitimately add lock entries that did not exist at solution-restore time (e.g. `net8.0/` runtime sections, `Microsoft.NET.ILLink.Tasks` for trimming). They still consume locked versions because `RestorePackagesWithLockFile=true` from `Directory.Build.props` forces every restore on the machine to resolve through the lock file. The supply-chain guarantee for `Microsoft.Data.Sqlite` and its `SQLitePCLRaw.*` graph is enforced by the solution-level locked restore that runs first. diff --git a/changelog.d/unreleased/1598.fixed.md b/changelog.d/unreleased/1598.fixed.md new file mode 100644 index 0000000000..100a31ff45 --- /dev/null +++ b/changelog.d/unreleased/1598.fixed.md @@ -0,0 +1,15 @@ +--- +category: fixed +issues: + - 1598 +affected: + - src/CodeIndex/CodeIndex.csproj +--- + +## English + +- **Trim and AOT analyzer warnings now surface during CodeIndex builds (#1598)** - the CLI project declares trim compatibility and enables trim/AOT analyzers with per-site trimmer warnings, so reflection-sensitive release issues are caught before publishing trimmed binaries. + +## 日本語 + +- **CodeIndex ビルドで trim / AOT analyzer 警告が表面化するようになりました (#1598)** - CLI プロジェクトが trim 互換性を宣言し、trim / AOT analyzer と箇所別の trimmer 警告を有効化したため、reflection に依存するリリース問題を trimmed バイナリ公開前に検出できます。 diff --git a/changelog.d/unreleased/1602.fixed.md b/changelog.d/unreleased/1602.fixed.md new file mode 100644 index 0000000000..6258654ac1 --- /dev/null +++ b/changelog.d/unreleased/1602.fixed.md @@ -0,0 +1,17 @@ +--- +category: fixed +issues: + - 1602 +affected: + - src/CodeIndex/CodeIndex.csproj + - src/CodeIndex/packages.lock.json + - DEVELOPER_GUIDE.md +--- + +## English + +- **CodeIndex package builds now opt into deterministic Source Link metadata (#1602)** - the CLI project enables deterministic builds, CI reproducibility flags, repository URL publishing, build-only GitHub Source Link, and commit-date build metadata so release symbols can map back to stable repository sources. + +## 日本語 + +- **CodeIndex パッケージビルドが deterministic な Source Link メタデータを有効化しました (#1602)** - CLI プロジェクトで deterministic build、CI 向け再現性フラグ、repository URL 公開、build-only の GitHub Source Link、commit date ベースのビルドメタデータを有効にし、リリースシンボルが安定したリポジトリ上のソースへ対応できるようにしました。 diff --git a/src/CodeIndex/CodeIndex.csproj b/src/CodeIndex/CodeIndex.csproj index dd1c07b45c..a834a8d54f 100644 --- a/src/CodeIndex/CodeIndex.csproj +++ b/src/CodeIndex/CodeIndex.csproj @@ -7,6 +7,14 @@ CodeIndex enable enable + true + true + true + false + true + true + true + true