playwright-dotnet-release
Skill3k starsChanged 11 days agoMITView on GitHub
Prepare a Playwright .NET release after the rolling PR has merged — mark the version, cut the release branch, add .NET-specific changes to the release notes, draft the GitHub release, and tick the .NET boxes in the internal checklist.
- Reads credentials
- Commits and pushes
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 0 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 6
Use this skill once the roll PR has merged into main and the upstream JS v1.X.0 is published.
- Very specific: line 60
Ask the user before adding anything.
- Very specific: line 62
Write the GitHub release body from the section as step 3 of the upstream skill describes, and save it as /tmp/v1.X.0-release-notes.md.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Use this skill once the roll PR has merged into main and the upstream JS v1.X.0 is published. The rolling work itself is covered by the [[playwright-roll]] skill.
Throughout this doc, replace X with the minor version (e.g. 64 for 1.64.0) and <user> with the fork owner (gh api user --jq .login).
The full release checklist lives in the private microsoft/playwright-internal repo as the v1.X release checklist issue. Find its number once:
unset GITHUB_TOKEN
ISSUE=$(gh search issues --repo microsoft/playwright-internal "v1.X release checklist" --json number --jq '.[0].number')Tick each .NET box incrementally (one PATCH per item) so the issue reflects accurate state if the flow is interrupted. The PR links in a new checklist are copied from the previous release, so replace them as you go:
gh api repos/microsoft/playwright-internal/issues/$ISSUE --jq '.body' > /tmp/body.md
# edit /tmp/body.md to flip "- [ ]" → "- [x]" on the relevant .NET item
gh api repos/microsoft/playwright-internal/issues/$ISSUE -X PATCH --field body=@/tmp/body.md1. Mark the version on main
Set AssemblyVersion in src/Common/Version.props to 1.X.0, dropping any suffix. PackageVersion stays $(AssemblyVersion). Then PR it to main:
git fetch upstream main
git checkout -b mark-v1.X.0 upstream/main
# edit src/Common/Version.props: <AssemblyVersion>1.X.0</AssemblyVersion>
git commit -am "chore: mark v1.X.0"
git push -u origin mark-v1.X.0
gh pr create --repo microsoft/playwright-dotnet --head <user>:mark-v1.X.0 --base main \
--title "chore: mark v1.X.0" \
--body "Updates \`AssemblyVersion\` to \`1.X.0\` for the v1.X release."The diff is exactly one line in Version.props (e.g. microsoft/playwright-dotnet#3382). Anything else is a red flag.
2. Cut the release branch
Once the mark PR has merged, push release-1.X from upstream/main, then confirm it carries the new version:
git fetch upstream main
git push upstream upstream/main:refs/heads/release-1.X
git show upstream/release-1.X:src/Common/Version.props | grep AssemblyVersion3. Release notes
The .NET notes in docs/src/release-notes-csharp.md are written upstream together with the Node.js notes, following the playwright-release-notes skill (../playwright/.claude/skills/playwright-release-notes/SKILL.md). Assume the ## Version 1.X section is already on release-1.X, and only add what's missing: significant changes that only the .NET port has, such as a new NUnit, MSTest or xUnit integration feature or a .NET-only API. Leave out minor bug fixes. To find candidates, list this repo's changes since the previous release branch was cut:
git log --oneline --no-merges $(git merge-base upstream/release-1.<X-1> upstream/main)..upstream/main | grep -E '^\w+ (feat|fix)'Ask the user before adding anything. Send the update upstream as docs: release notes for v1.X .NET, covering both upstream and .NET-specific changes, and cherry-pick it to release-1.X.
Write the GitHub release body from the section as step 3 of the upstream skill describes, and save it as /tmp/v1.X.0-release-notes.md. Create the draft directly against release-1.X. Drafting against main and retargeting later is fragile, because every gh release edit rotates the untagged-<hash> ID:
gh release create v1.X.0 --repo microsoft/playwright-dotnet --draft \
--title "v1.X.0" --notes-file /tmp/v1.X.0-release-notes.md --target release-1.X4. Publish
The user publishes the draft release manually. Publishing creates the v1.X.0 tag, which triggers the Azure DevOps pipelines:
.azure-pipelines/publish.ymlpushes the packages to NuGet..azure-pipelines/publish-docker.ymlpushes the Docker images.
The checklist links both pipelines. Tick its boxes once they succeed.
Trending
More talk lately.about the whole repository
Who's talking about microsoft/playwright-dotnet
- A Hacker News story“Playwright for .NET is now stable”Hacker News · Jun 10, 2021 · 155 points
- Stack Overflow“Cannot install playwright: Couldn't find project using Playwright. Ensure a project or a solution exists in”Stack Overflow · Nov 13, 2021 · 9 votes
- lduchosal/ipnetwork“[.NET 8.0] Conflict”GitHub · Jul 23, 2023 · 7 reactions
- microsoft/playwright“[Feature]: Sign windows Binaries and browser exe's”GitHub · Mar 12, 2025 · 4 reactions
- Stack Overflow“Microsoft Playwright for .NET NUnit, cant launch tests in headed mode”Stack Overflow · Jul 19, 2023 · 3 votes
The biggest 5 of 57 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 57
Talked about on GitHub, Stack Overflow and Hacker News (57 times).
On GitHub · 50
- Jul 23, 2023[.NET 8.0] Conflict — lduchosal/ipnetwork7 reactions · 7 comments
- Mar 12, 2025[Feature]: Sign windows Binaries and browser exe's — microsoft/playwright4 reactions · 8 comments
- Oct 17, 2023Include dependency version(s) in Git commit YAML — dependabot/dependabot-core1 reaction · 12 comments
- Oct 27, 2026test(chromium): fixme tests for requests cut off by a navigation — microsoft/playwright0 reactions · 2 comments
- Oct 8, 2026chore(dotnet): fix async suffix of optional-arg overloads, alias WebMCPToolAnnotations — microsoft/playwright0 reactions · 6 comments
45 more on GitHub
- Aug 19, 2026feat(assertions): allow asserting JS undefined in ToHaveJSPropertyAsync — kblok/playwright-dotnet0 reactions
- Apr 14, 2026[Feature]: Support Windows Arm64 browsers — microsoft/playwright0 reactions · 1 comment
- Jan 30, 2026[BUG] supertag-export login fails on Windows 11 - Playwright launchPersistentContext timeout — jcfischer/supertag-cli0 reactions · 3 comments
- Aug 19, 2025[internal] Use Real Trace Viewer for tracing tests — microsoft/playwright-java0 reactions
- Aug 19, 2025[Feature]: Stream response body — microsoft/playwright0 reactions · 1 comment
- Jul 8, 2025[internal] Introduce `float`/`int` in protocol.yml instead of `number` — microsoft/playwright0 reactions
- Apr 30, 2025Bump Microsoft.Playwright.NUnit from 1.40.0 to 1.52.0 — FrederikBertelsen/Chirp0 reactions
- Apr 7, 2025Bump Microsoft.Playwright.MSTest and MSTest.TestFramework in /Exercise_32a/PlaywrightTutorial — fremel/newton_syss7-ysys-tes0 reactions
- Mar 31, 2025[BUG] Fix FormatCallLog — microsoft/playwright-java0 reactions · 1 comment
- Mar 25, 2025Bump Microsoft.Playwright from 1.49.0 to 1.51.0 in /master-ugr.calculator.front-end — mistermiad/Case30 reactions
- Mar 25, 2025Bump Microsoft.Playwright from 1.49.0 to 1.51.0 in /master-ugr.calculator.front-end — NachoBC82/Case3_DS_TDD0 reactions · 1 comment
- Mar 24, 2025Bump Microsoft.Playwright from 1.49.0 to 1.51.0 in /master-ugr.calculator.front-end — jbarrionuevo01/Case30 reactions · 1 comment
- Mar 24, 2025Bump Microsoft.Playwright from 1.49.0 to 1.51.0 in /master-ugr.calculator.front-end — pablomuar/Case30 reactions · 1 comment
- Mar 18, 2025Bump Microsoft.Playwright from 1.49.0 to 1.51.0 in /master-ugr.calculator.front-end — LaMalditaG/DS-Case30 reactions · 1 comment
- Jan 24, 2025Question: How to share TestAdapter objects with runner process? — xunit/xunit0 reactions · 6 comments
- Oct 21, 2024[Docs]: Fix .NET/Java WebSocketRoute snippets — microsoft/playwright0 reactions
- Sep 16, 2024Bump Microsoft.Playwright from 1.44.0 to 1.47.0 — danmoseley/aspire0 reactions
- Sep 16, 2024Bump Microsoft.Playwright from 1.44.0 to 1.47.0 — Evgeny1971/MetalRequest0 reactions
- Aug 19, 2024Bump Microsoft.Playwright from 1.44.0 to 1.46.0 — devops-group-l/chirp0 reactions · 2 comments
- Aug 13, 2024Bump Microsoft.Playwright from 1.44.0 to 1.46.0 in /yafsrc — tlatsotsebe/CSharp0 reactions
- Jul 29, 2024Bump Microsoft.Playwright.NUnit and Microsoft.Playwright — devops-group-l/chirp0 reactions · 2 comments
- Jul 15, 2024Add analyzer for when a test member is shadowing another member — microsoft/testfx0 reactions
- Jul 4, 2024[Bug]: Redirect after Azure Entra / AAD - B2C Login fails with dotnet / Docker in Azure dev ops pipeline — microsoft/playwright0 reactions · 2 comments
- Jun 11, 2024Console.WriteLine of 2nd and onwards test is not shown — nunit/nunit0 reactions · 5 comments
- May 27, 2024[Bug]: Playwright excludes null when serializing request — microsoft/playwright-java0 reactions
- May 20, 2024Bump Microsoft.Playwright from 1.40.0 to 1.44.0 — goryzk/ApplePay0 reactions
- Apr 24, 2024Microsoft Edge is missing in macOS-14-arm64 — actions/runner-images0 reactions · 5 comments
- Mar 20, 2024[internal] Get rid of Driver wrapper — microsoft/playwright-java0 reactions
- Mar 11, 2024Bump Microsoft.Playwright from 1.40.0 to 1.42.0 — ITU-BDSA23-GROUP11/Chirp0 reactions · 1 comment
- Mar 11, 2024Bump Microsoft.Playwright.NUnit and Microsoft.Playwright — ITU-BDSA23-GROUP11/Chirp0 reactions · 1 comment
- Mar 8, 2024Bump Microsoft.Playwright.NUnit from 1.40.0 to 1.42.0 — ITU-BDSA23-GROUP12/Chirp0 reactions
- Mar 8, 2024Bump Microsoft.PlayWright.NUnit from 1.40.0 to 1.42.0 — ITU-BDSA23-GROUP21/Chirp0 reactions
- Mar 8, 2024Bump Microsoft.Playwright.NUnit from 1.40.0 to 1.42.0 — ITU-BDSA23-GROUP5/Chirp0 reactions
- Mar 7, 2024Bump Microsoft.Playwright from 1.40.0 to 1.42.0 — ITU-BDSA23-GROUP18/Chirp0 reactions
- Mar 7, 2024Bump Microsoft.Playwright.Nunit and Microsoft.Playwright — ITU-BDSA23-GROUP18/Chirp0 reactions
- Feb 5, 2024Update dependency Microsoft.Playwright to v1.43.0 — justo-mend/demo-removate-nuget0 reactions
- Jan 29, 2024Bump Microsoft.Playwright.NUnit from 1.40.0 to 1.41.2 — ITU-BDSA23-GROUP25/Chirp0 reactions
- Jan 25, 2024Bump Microsoft.Playwright.NUnit from 1.40.0 to 1.41.2 — ITU-BDSA23-GROUP14/Chirp0 reactions
- Jan 25, 2024Bump Microsoft.Playwright.NUnit from 1.40.0 to 1.41.2 — ITU-BDSA23-GROUP7/Chirp0 reactions
- Jan 25, 2024Bump Microsoft.Playwright.NUnit from 1.40.0 to 1.41.2 — ITU-BDSA23-GROUP17/Chirp0 reactions
- Oct 9, 2023Update dependency Microsoft.Playwright to v1.38.0 — justo-mend/demo-toyota-10 reactions
- Sep 17, 2023Update dependency Microsoft.Playwright to v1.38.0 — justo-mend/demo-repo-110 reactions
- Aug 17, 2023chore(deps): bump Microsoft.Playwright from 1.33.0 to 1.37.1 — smartCoolDev/survey-generator-csharp0 reactions
- Aug 17, 2023chore(deps): bump Microsoft.Playwright from 1.33.0 to 1.37.1 — snayar/survey_csharp0 reactions
- Jul 5, 2023Update all non-major dependencies — nabeelsaabnaTests/test_mc_php_nuget0 reactions
On Stack Overflow · 6
- Nov 13, 2021Cannot install playwright: Couldn't find project using Playwright. Ensure a project or a solution exists in9 votes · 2 answers
- Jul 19, 2023Microsoft Playwright for .NET NUnit, cant launch tests in headed mode3 votes
- Sep 25, 2021Playwright (.NET) tries to use different browser versions than installed1 vote
- Aug 12, 2024Playwright with C# issue- TearDown : System.InvalidOperationException OR Microsoft.Playwright.TargetClosedException0 votes
- Jun 5, 2023Can you extend Playwright Page() Python sync?0 votes
1 more on Stack Overflow
- Dec 8, 2021Unable to record HAR with Playwright .NET0 votes
On Hacker News · 1
- Jun 10, 2021Playwright for .NET is now stable155 points · 64 comments
In this repository3 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- playwright-rollSkill
- playwright-triageSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

