Make bundled Playwright discoverable by Dependabot via PackageDownload#9449
Make bundled Playwright discoverable by Dependabot via PackageDownload#9449Evangelink wants to merge 3 commits into
Conversation
The orphan `PackageVersion` for `Microsoft.Playwright.MSTest.v4` in Directory.Packages.props was never enough for Dependabot to discover and bump it: Dependabot only proposes updates for packages that have a real consuming reference (PackageReference / PackageDownload). Aspire.Hosting.Testing sits in the same orphan-CPM ItemGroup but was kept up to date only because it already had a PackageDownload in the acceptance-test project (see #9446, which bumped Aspire but left Playwright stuck at 1.60.0). Add a matching PackageDownload for Microsoft.Playwright.MSTest.v4 and update the surrounding comments so future bundled SDK feature packages follow the same pattern. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
This PR addresses Dependabot “discoverability” for bundled MSTest SDK feature packages by adding a real consuming reference for Microsoft.Playwright.MSTest.v4 (via PackageDownload) and clarifying CPM/Dependabot guidance in comments.
Changes:
- Add
PackageDownloadforMicrosoft.Playwright.MSTest.v4inMSTest.Acceptance.IntegrationTests.csprojto give Dependabot a concrete reference to track. - Update
Directory.Packages.propscomments to document that orphan CPMPackageVersionentries are not sufficient for Dependabot without a real reference.
Show a summary per file
| File | Description |
|---|---|
| test/IntegrationTests/MSTest.Acceptance.IntegrationTests/MSTest.Acceptance.IntegrationTests.csproj | Adds a Playwright PackageDownload and expands comments explaining why it’s needed for Dependabot discoverability. |
| Directory.Packages.props | Updates the “bundled but not directly referenced” section comments to document Dependabot behavior and the need for a matching consuming reference. |
Review details
- Files reviewed: 2/2 changed files
- Comments generated: 3
- Review effort level: Low
| These PackageDownload items also give Dependabot a real consuming reference for the | ||
| bundled MSTest.Sdk feature packages (Aspire/Playwright), which is what makes it discover | ||
| and bump them. A lone orphan PackageVersion in Directory.Packages.props is NOT enough: |
There was a problem hiding this comment.
Resolved by reverting this code. While this PR was open, main independently landed the same fix for #9362 using inert PackageReference ... ExcludeAssets="all" anchors for both Playwright and Aspire. After merging main, I reverted this branch's PackageDownload approach (and these comments) to match main exactly, so the wording flagged here no longer exists. This PR is now a no-op and will be closed as superseded.
| <ItemGroup> | ||
| <PackageReference Include="Microsoft.Playwright.MSTest.v4" ExcludeAssets="all" /> | ||
| <PackageReference Include="Aspire.Hosting.Testing" ExcludeAssets="all" /> | ||
| <PackageDownload Include="Microsoft.Playwright.MSTest.v4" Version="[$(MicrosoftPlaywrightVersion)]" /> |
There was a problem hiding this comment.
Good catch, but moot now. main already fixed #9362 with an inert PackageReference ... ExcludeAssets="all" anchor for Playwright rather than a PackageDownload. That anchor is purely a Dependabot reference and excludes all assets, so there's no test-asset staging to keep consistent (the Playwright acceptance test restores Microsoft.Playwright.MSTest.v4 from the normal feeds, not from the local-tmp-packages feed). This branch has been reverted to match main, so the misplaced PackageDownload is gone.
| MSTest.Acceptance.IntegrationTests.csproj which is what actually triggers the update; Dependabot | ||
| then bumps both the *Version property and the literal PackageVersion below. If you add another | ||
| bundled-but-unreferenced SDK feature package here, add a matching PackageDownload too, otherwise | ||
| it will silently never be updated. |
There was a problem hiding this comment.
Resolved by reverting to main's wording. main's comment already states the _ValidateBundledSdkFeatureVersions target enforces synchronization between the property and the literal PackageVersion, so the contradiction flagged here no longer exists on this branch.
main independently fixed #9362 via inert PackageReference ExcludeAssets=\"all\" anchors for both Playwright and Aspire. Revert this branch's PackageDownload-based approach and the contradictory comments to match main exactly. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
🧪 Test quality grade — PR #9449No new or modified test methods were identified in the changed regions Re-run with
|
|
Closing as superseded. While this PR was open, |
Problem
Dependabot keeps
Aspire.Hosting.Testingup to date but has never bumpedMicrosoft.Playwright.MSTest.v4(still stuck at1.60.0, while1.61.0has been available on the feeds since 2026-06-24). See #9362.PR #9446 is the smoking gun: Aspire and Playwright sit in the identical orphan-CPM
PackageVersionItemGroup inDirectory.Packages.props, yet that PR bumped only Aspire and left Playwright behind.Root cause
The earlier "discoverability" workaround (#9365) assumed a literal
PackageVersioninDirectory.Packages.propswas enough for Dependabot to track the package. It is not. Dependabot only proposes updates for packages that have a real consuming reference (PackageReference/PackageDownload). A lone orphan CPMPackageVersionwith no consumer is invisible to it.Aspire was only ever updated because it already had a
PackageDownloadinMSTest.Acceptance.IntegrationTests.csproj(used to stage the package for test assets). Playwright had no equivalent reference anywhere, so it was never discovered.Fix
PackageDownloadforMicrosoft.Playwright.MSTest.v4next to the existing Aspire one inMSTest.Acceptance.IntegrationTests.csproj. This gives Dependabot a real reference to track; it will then bump both theMicrosoftPlaywrightVersionproperty and the literalPackageVersion, with the existing_ValidateBundledSdkFeatureVersionstarget keeping them in sync.Directory.Packages.propsso they no longer credit the orphanPackageVersionalone, and document that any future bundled-but-unreferenced SDK feature package needs a matchingPackageDownload.Validation
MSTest.Acceptance.IntegrationTestsrestores and builds cleanly (0 warnings, 0 errors) with the newPackageDownload.Closes #9362.
Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com