playwright-release
Skill15k starsChanged 12 days agoApache-2.0View on GitHub
Prepare a Playwright Python release. Checks open bugs, writes the Python release notes in microsoft/playwright, opens the release PR, cuts the release branch, and saves a draft GitHub release. Never publishes the release.
- Commits and pushes
We split this skill into the rules it gives an agent
13 rules. About 0 are common, 5 are distinctive, and 8 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Distinctive: line 19
Never publish the release.
- Distinctive: line 23
Check that the bugs are closed.
- Distinctive: line 31
If any are open, list them for the user and ask whether to continue.
- Very specific: line 34
Check that the driver is rolled.
- Very specific: line 42
Write the notes in the roll checkout, on a branch from origin/main:
- Very specific: line 54
Keep the structure: highlights with emoji headings, ### New APIs with #### groups, ### Announcements, ### Browser Versions.
- Very specific: line 56
Remove what Python does not have: the test runner (@playwright/test, test.*, config, fixtures, projects, reporters), UI mode, the HTML …
- Very specific: line 59
Remove every API whose langs excludes Python.
- Very specific: line 65
Keep API links as docs link macros:
[method: Page.frameLocator] , [option: Tracing.start.ariaSnapshots] , [event: Page.dialogClosed]. - Distinctive: line 78
If some of them change what users see (for example, a different exception type), list them for the user and ask whether to add them to the …
- Very specific: line 81
Commit, push to the user's fork of microsoft/playwright, and open the PR.
- Very specific: line 113
Leave out the ## Version 1.xx heading.
- Distinctive: line 130
Wait for the user to review and merge the PR.
≈ “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
Preparing a Playwright Python release
In this skill, 1.xx is the release (for example 1.64), and v1.xx.0 is its tag.
$PW_SRC_DIR is the roll checkout of microsoft/playwright (see the
playwright-roll skill, step 2).
Remotes: find the remote for microsoft/playwright-python with git remote -v.
The commands below call it upstream.
What you may push:
- The user's request to prepare the release is the instruction to open the two PRs in steps 2 and 3.
- Cut the release branch (step 4) only when the user tells you to.
- Never publish the release.
1. Preconditions
Check that the bugs are closed. The bug and regression issue templates give these title prefixes:
gh issue list --repo microsoft/playwright-python --state open \
--search 'in:title "[Bug]" OR in:title "[Regression]"'If any are open, list them for the user and ask whether to continue. Do not close or comment on issues.
Check that the driver is rolled. DRIVER_VERSION (npm=) must be the driver
for the release: a 1.xx.y build, or a 1.xx.0-beta-… build from release-1.xx,
as the user says, and rev= the commit that it is built from. If it is not, roll with the playwright-roll skill. This is often
already done. The roll commit goes into the release commit PR (step 3). When the
API roll for 1.xx is already on main, that PR only moves DRIVER_VERSION.
2. Release notes (microsoft/playwright)
Write the notes in the roll checkout, on a branch from origin/main:
git -C "$PW_SRC_DIR" fetch origin main
git -C "$PW_SRC_DIR" checkout -b release-notes-1.xx-python origin/mainIn docs/src/release-notes-python.md, add a ## Version 1.xx section above the
previous version. Translate it from the ## Version 1.xx section of
docs/src/release-notes-js.md. Compare the Version 1.63 sections of the two
files to see what a past translation dropped and changed.
- Keep the structure: highlights with emoji headings,
### New APIswith####groups,### Announcements,### Browser Versions. - Remove what Python does not have: the test runner (
@playwright/test,test.*, config, fixtures, projects, reporters), UI mode, the HTML report, component testing, the VS Code extension, andnpx playwright testoptions. Remove every API whoselangsexcludes Python. To check an API, look for it inplaywright/async_api/_generated.py, or checklangsinapi.json(see "Verifying classifications" in theplaywright-rollskill). - Rewrite code samples in Python, with the sync API:
page.get_by_role("button").click(). Use snake_case names and Python values (True,None). - Keep API links as docs link macros:
[`method: Page.frameLocator`],[`option: Tracing.start.ariaSnapshots`],[`event: Page.dialogClosed`]. The docs site shows them with Python names. In plain text, use Python names. - Commands: write
playwright install, notnpx playwright install. Lean towards Python. List the playwright-python commits since the previous release branch:
gh api repos/microsoft/playwright-python/compare/release-1.<xx-1>...main \ --jq '.commits[].commit.message | split("\n")[0]'If some of them change what users see (for example, a different exception type), list them for the user and ask whether to add them to the notes.
Commit, push to the user's fork of microsoft/playwright, and open the PR. If
the checkout has no remote for the fork, add one. gh api user --jq .login
gives the user's login.
git -C "$PW_SRC_DIR" commit -am "docs: release notes for v1.xx Python"
git -C "$PW_SRC_DIR" push <fork-remote> release-notes-1.xx-python
gh pr create --repo microsoft/playwright --head <login>:release-notes-1.xx-python \
--title "docs: release notes for v1.xx Python" \
--body "- Add \`Version 1.xx\` to the Python release notes, translated from the Node.js notes"Then put the roll checkout back on the release branch. ./scripts/update_api.sh
reads the docs from it. Run the checkout checks from step 2 of the
playwright-roll skill.
git -C "$PW_SRC_DIR" checkout release-1.xx3. Release commit (playwright-python)
Open a PR from the branch with the roll commit:
- Title:
chore: roll Playwright to v1.xx.y, wherev1.xx.yis the Python release version, even whenDRIVER_VERSIONis a beta build. - Description: the release notes from step 2, in GitHub markdown (see below).
The user copies this description into the GitHub release, so for this PR it
replaces the "keep PR descriptions short" rule in
AGENTS.md.
Convert the notes to GitHub markdown yourself:
- Leave out the
## Version 1.xxheading. Move every other heading up one level (###becomes##,####becomes###). Replace each link macro with a full playwright.dev link. Use the Python name as the link text:
Macro GitHub markdown [`method: Page.frameLocator`][page.frame_locator()](https://playwright.dev/python/docs/api/class-page#page-frame-locator)[`method: Locator.visible`](a property in Python)[locator.visible](https://playwright.dev/python/docs/api/class-locator#locator-visible)[`option: Browser.newContext.httpCredentials`][`http_credentials`](https://playwright.dev/python/docs/api/class-browser#browser-new-context-option-http-credentials)[`event: BrowserContext.dialogClosed`][browser_context.on("dialogclosed")](https://playwright.dev/python/docs/api/class-browsercontext#browser-context-event-dialog-closed)The page is
class-and the class name in lower case. The anchor is the class and member names in kebab-case. Options add-option-<name>, and events add-event-<name>. A member is a property in Python if_generated.pydeclares it with@property.
Wait for the user to review and merge the PR. Do not merge it yourself.
4. Release (only when the user tells you to)
Cut release-1.xx from main and push it to upstream:
git fetch upstream main
git show FETCH_HEAD:DRIVER_VERSION # the release driver
git log -1 --oneline FETCH_HEAD # the release commit from step 3
git ls-remote --exit-code upstream refs/heads/release-1.xx # must fail: the branch must not exist yet
git push upstream FETCH_HEAD:refs/heads/release-1.xxSave the release notes as a draft release that targets the branch. Take the notes from the merged PR description, so that edits from the review are included:
gh pr view <release-pr> --repo microsoft/playwright-python --json body --jq .body > <notes-file>
gh release create v1.xx.0 --repo microsoft/playwright-python --draft \
--target release-1.xx --title v1.xx.0 --notes-file <notes-file>
gh release list --repo microsoft/playwright-python --limit 3 # v1.xx.0 shows as DraftGive the user the URL of the draft. Your work ends here. Do not publish the
release: never run gh release create without --draft, and never run
gh release edit --draft=false. Publishing creates the tag and starts
.github/workflows/publish.yml, which builds the wheels and uploads them to PyPI
after a reviewer approves the pypi environment. Never run that workflow, and
never approve the environment.
Trending
Steady: 0 new projects took it in the last 4 weeks, none the 4 weeks before.thin data
Who's talking about microsoft/playwright-python
- Playwright“Playwright at PYCon US with Andrew Knight”YouTube · May 12, 2023 · 6.1k views
- Bee Solutions“Monitoramento de Serviços com Downdetector Atualizado com Zabbix e Grafana - (BEE 2026)”YouTube · Jan 7, 2026 · 2.9k views
- QA Mania“Playwright python - how to run browsers concurrently”YouTube · Dec 11, 2020 · 2.5k views
- 開発ライブラリ紹介“取得したら中身が空っぽ?|playwrightでJSサイトも丸ごと取得 #shorts”YouTube · Sep 5, 2026 · 1.1k views
- coursegurukul“What is Playwright? | The Future of Web Testing | Playwright Tutorial for Beginners | Course Gurukul”YouTube · Apr 26, 2025 · 258 views
The biggest 5 of 72 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 72
Talked about on GitHub, Stack Overflow, YouTube, the web and Hacker News (72 times).
On GitHub · 50
- Feb 9, 2022[Feature] Directly set Proxy-Authorization in Chrome without configuring any other proxy settings — microsoft/playwright65 reactions · 12 comments
- Jan 12, 2021[Feature] Support for Raspberry PI — microsoft/playwright34 reactions · 8 comments
- Sep 13, 2020[Feature] Driver - allow to install only selected browsers — microsoft/playwright14 reactions · 3 comments
- Nov 10, 2023[BUG] Opening page with large number of IFrames crashes/hangs playwright — microsoft/playwright9 reactions · 7 comments
- Nov 9, 2023[BUG] Unable to access iframe in firefox (works with chromium and webkit) — microsoft/playwright9 reactions · 3 comments
45 more on GitHub
- Jan 30, 2026python3Packages.playwright: 1.57.0 -> 1.58.0 — NixOS/nixpkgs5 reactions · 1 comment
- Sep 17, 2023[Feature] Open Telemetry Tracing — microsoft/playwright5 reactions · 2 comments
- Jun 9, 2026Bump the uv-all group across 1 directory with 3 updates — Ven0m0/dot-termux3 reactions · 1 comment
- May 20, 2026Bump the pip-all group across 1 directory with 3 updates — Ven0m0/dot-termux3 reactions · 1 comment
- May 3, 2024[Feature]: Proper support for scrolling to the bottom of a page — microsoft/playwright3 reactions · 7 comments
- Dec 30, 2022Update playwright driver to 1.29.1 — YusukeIwaki/playwright-ruby-client3 reactions · 3 comments
- Jan 22, 2021[Feature](playwright-cli) Option to install system dependencies — microsoft/playwright3 reactions · 4 comments
- Jul 7, 2026Bump the uv-all group across 1 directory with 2 updates — Ven0m0/dot-termux2 reactions · 2 comments
- Jul 7, 2026Bump the pip-all group across 1 directory with 2 updates — Ven0m0/dot-termux2 reactions · 2 comments
- Jun 30, 2026Bump playwright from 1.60.0 to 1.61.0 in the uv-all group — Ven0m0/dot-termux2 reactions · 2 comments
- Jun 30, 2026Bump playwright from 1.60.0 to 1.61.0 in the pip-all group — Ven0m0/dot-termux2 reactions · 2 comments
- May 20, 2026chore(deps): update playwright requirement from >=1.40.0 to >=1.60.0 — EvezArt/evez-claw-extensions2 reactions · 2 comments
- May 12, 2026chore(deps): update playwright requirement from >=1.40.0 to >=1.59.0 — EvezArt/evez-claw2 reactions · 2 comments
- Mar 26, 2026new rule - suggest changing function parameter type to readonly alternative if parameter is not mutated inside the function — astral-sh/ruff2 reactions · 1 comment
- Jul 31, 2024Please update Playwright-python to 1.40 for Python 3.12 compatibility — daijro/hrequests2 reactions · 4 comments
- Aug 13, 2022Flaky test: CypressError: `cy.request()` timed out waiting `30000ms` for a response from your server — cypress-io/cypress2 reactions · 7 comments
- Feb 3, 2022Installation fails using PDM — pytorch/vision2 reactions · 3 comments
- Oct 25, 2021[Regression] Page.screenshot does not work inside Docker with BrowserServer — microsoft/playwright2 reactions · 6 comments
- Oct 16, 2020setting asyncclick to use asyncio.WindowsProactorEventLoopPolicy — python-trio/asyncclick2 reactions · 2 comments
- Oct 29, 2026build(deps-dev): bump playwright from 1.63.0 to 1.64.1 — paulkakell/timeboardapp1 reaction · 1 comment
- Oct 26, 2026chore(deps-pip): bump the pip-jade-sprint-minor-patch group in /mission-control/jade_temple/sprint with 2 updates — GBOGEB/pipeline-automation-hub1 reaction · 2 comments
- Oct 26, 2026chore(deps-dev): bump playwright from 1.64.0 to 1.64.1 — MoonLadderStudios/MoonMind1 reaction · 1 comment
- Oct 26, 2026deps(deps): bump the pip-minor-patch group with 5 updates — cyxc1124/cyxcbot1 reaction · 1 comment
- Oct 26, 2026[Docs]: python - release notes haven't been updated since 1.63 — microsoft/playwright1 reaction
- Oct 26, 2026Update playwright requirement from >=1.62.0 to >=1.64.1 — WhiteDevil-93/Hermes-pro1 reaction · 2 comments
- Oct 25, 2026chore(deps): bump the uv-minor-patch group across 1 directory with 6 updates — mzworthington/RoMini1 reaction · 1 comment
- Oct 23, 2026chore(deps): update playwright requirement from >=1.40 to >=1.64.0 — escoffier-labs/brigade1 reaction · 3 comments
- Oct 21, 2026Build(deps): update playwright requirement from >=1.63.0 to >=1.64.0 in /tests/e2e — leynos/axinite1 reaction · 3 comments
- Oct 20, 2026fix(deps-dev): bump playwright from 1.50.0 to 1.63.0 — openai/openai-agents-python1 reaction · 4 comments
- Oct 18, 2026deps(deps): bump the pip-minor-patch group across 1 directory with 7 updates — cyxc1124/cyxcbot1 reaction · 1 comment
- Oct 17, 2026build(deps-dev): bump playwright from 1.63.0 to 1.64.0 — paulkakell/timeboardapp1 reaction · 2 comments
- Oct 17, 2026deps: bump playwright from 1.63.0 to 1.64.0 — scope-impact/rdm1 reaction · 1 comment
- Oct 17, 2026chore(deps-dev): bump playwright from 1.63.0 to 1.64.0 — MoonLadderStudios/MoonMind1 reaction · 1 comment
- Oct 8, 2026build(deps): bump playwright from 1.57.0 to 1.63.0 — Kotodama-Project/Kotodama-project1 reaction · 3 comments
- Sep 23, 2026Build(deps): update playwright requirement from >=1.61.0 to >=1.63.0 in /tests/e2e — leynos/axinite1 reaction · 1 comment
- Sep 22, 2026Bump playwright from 1.62.0 to 1.63.0 — gvatsal60/resume-studio1 reaction · 2 comments
- Sep 21, 2026chore(deps): Bump the python-deps group across 1 directory with 3 updates — julianocosta89/sig-meeting-notes1 reaction · 1 comment
- Sep 21, 2026Bump playwright from 1.62.0 to 1.63.0 — MoonLadderStudios/MoonMind1 reaction
- Aug 18, 2026chore(deps): bump the python-deps group across 1 directory with 2 updates — jimc1682000/film-brain1 reaction · 2 comments
- Aug 10, 2026Build(deps): update playwright requirement from >=1.61.0 to >=1.62.0 in /tests/e2e — leynos/axinite1 reaction · 1 comment
- Aug 10, 2026Chore(deps-dev): bump playwright from 1.61.0 to 1.62.0 — MoonLadderStudios/MoonMind1 reaction
- Aug 4, 2026chore(deps): update playwright requirement from >=1.61.0 to >=1.62.0 in the python-deps group across 1 directory — jimc1682000/film-brain1 reaction · 5 comments
- Aug 4, 2026Bump playwright from 1.61.0 to 1.62.0 — gvatsal60/resume-studio1 reaction · 1 comment
- Jul 26, 2026deps: update playwright requirement from <2,>=1.45 to >=1.61.0,<2 — Jnapier2/image-downloader1 reaction · 2 comments
- Jul 16, 2026Build(deps): update playwright requirement from >=1.40 to >=1.61.0 in /tests/e2e — leynos/axinite1 reaction
On Stack Overflow · 11
- Aug 25, 2018python - webdriver and asyncio25 votes
- Apr 1, 2022How to use the Playwright library in a Jupyter notebook instead of using a regular .py script (on Windows)14 votes
- Oct 30, 2022Installing playwright in Docker image fails3 votes
- Jun 1, 2022Can I test Electron application using Playwright Python library?3 votes
- Jun 21, 2024How to save django db data in the middle of a playwright test?2 votes
6 more on Stack Overflow
- May 17, 2023Right mouse click and selecting the appropriate item using Playwright2 votes
- Feb 26, 2024PyInstaller with Playwright and Firefox0 votes
- Dec 27, 2022Playwright and PM2 Issue - hang while creating PlaywrightContextManager0 votes · 1 answer
- Nov 5, 2022Install playwright from a local directory0 votes
- Oct 16, 2024Encountering NotImplementedError in Asynchronous Code with Playwright: Understanding the Cause and Seeking Solutions-1 votes
- Feb 24, 2022Making sure my headless browser is in the right place in my Playwright + Python + Aws lambda setup-1 votes
On YouTube · 5
- May 12, 2023Playwright at PYCon US with Andrew Knight — Playwright6.1k views · 7 comments
- Jan 7, 2026Monitoramento de Serviços com Downdetector Atualizado com Zabbix e Grafana - (BEE 2026) — Bee Solutions2.9k views · 17 comments
- Dec 11, 2020Playwright python - how to run browsers concurrently — QA Mania2.5k views · 8 comments
- Sep 5, 2026取得したら中身が空っぽ?|playwrightでJSサイトも丸ごと取得 #shorts — 開発ライブラリ紹介1.1k views
- Apr 26, 2025What is Playwright? | The Future of Web Testing | Playwright Tutorial for Beginners | Course Gurukul — coursegurukulsays it tested it258 views
On the web · 4
- Mar 19, 2024Python Playwright doesn't work in my computer · Issue #2364 — google.com
- Aug 23, 2022Python Playwright docker issue #1529 — google.com
- Oct 17, 2021Microsoft has released a Playwright-Python — google.com
- May 12, 2021[FEATURE] Playwright on PyPy · Issue #687 — google.com
On Hacker News · 2
- Sep 30, 2020Python version of the Playwright testing and automation librarysays it tested it2 points
- Oct 5, 2020Playwright: Microsoft's end-to-end testing framework for Pythonsays it tested it1 point · 1 comment
In this repository2 other files it gives its agents.
- AGENTS.mdAGENTS.md
- playwright-rollSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
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.

