playwright-patch-release
Skill15k starsChanged 2 days agoApache-2.0View on GitHub
Prepare a patch release of Playwright Python (v1.xx.1 and later) from a release branch. Picks the next version, writes the release notes as the list of fixes in microsoft/playwright between the driver of the previous release of the branch and the driver of its tip, and saves them as a draft GitHub release, in place of an old draft. Never publishes the release.
- Commits and pushes
Trending
More talk lately.about the whole repository
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 69 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 69
Talked about on GitHub, Stack Overflow, YouTube, Hacker News and the web (69 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
- Nov 3, 2026chore(deps): bump the python-maintenance group across 1 directory with 11 updates — openai/openai-python1 reaction · 3 comments
- Nov 1, 2026build(deps): Bump playwright from 1.62.0 to 1.64.1 in /backend/restaurant-crawling/scripts — twoimo/tzudong1 reaction · 4 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, 2026[Docs]: python - release notes haven't been updated since 1.63 — microsoft/playwright1 reaction
- 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
- Feb 2, 2026build(deps): bump playwright from 1.55.0 to 1.58.0 — myriade-ai/agentlys-dev1 reaction · 1 comment
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 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
On the web · 1
- Jun 13, 2023microsoft/playwright-python v1.35.0 on GitHub — newreleases.io
In this repository5 other files it gives its agents.
- AGENTS.mdAGENTS.md
- playwright/_impl/AGENTS.mdAGENTS.md
- tests/AGENTS.mdAGENTS.md
- playwright-releaseSkill
- playwright-rollSkill
The file
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 4 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 22
Never publish the release: see step 5.
- Distinctive: line 76
Keep a fix only when it changes something for a user of Playwright Python: the browsers, the driver, the protocol, the API.
- Very specific: line 81
When A and B are the same commit, the release has no upstream changes.
- Distinctive: line 87
Write the notes to a file, in GitHub markdown, in this shape.
- Very specific: line 111
Add a paragraph only when the title does not tell a user what changed, for example why a new Node.js matters.
- Distinctive: line 114
No title line, no version, no date: GitHub shows them.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 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 patch release of Playwright Python
In this skill, release-1.xx is the release branch (for example release-1.65),
v1.xx.p is the previous release of the branch, and v1.xx.n is the patch release
that you prepare. For the first release of a branch, v1.xx.0, use the
playwright-release skill: its notes are the full release notes.
A patch release has no release commit. The fixes are on the branch already: a roll
moved its driver to a newer commit of release-1.xx of microsoft/playwright. The
version of the package comes from the tag, and GitHub makes the tag when a maintainer
publishes the draft. So the result of this skill is only the draft release.
Remotes: find the remote for microsoft/playwright-python with git remote -v. The
commands below call it upstream. In a clone of microsoft/playwright-python, it
is origin.
Never publish the release: see step 5.
1. The version
Fetch the branch and the tags. The previous release is the highest v1.xx.* tag:
git fetch upstream release-1.xx --tags
git tag --list 'v1.xx.*' --sort=-v:refname | head -1 # v1.xx.p
git merge-base --is-ancestor v1.xx.p FETCH_HEAD && echo "on release-1.xx"
git log --first-parent --format='%h %s' v1.xx.p..FETCH_HEAD # the commits of this repository- The next version is
v1.xx.n, withn = p + 1. A draft release has no tag, so an old draft ofv1.xx.ndoes not change the result. - No
v1.xx.*tag:v1.xx.0is not released. Stop and say so. - The tag is not on the branch: stop and say so.
- The log is empty: there is nothing to release. Stop and say so.
2. The changes
The changes of the release are the commits of microsoft/playwright between the two
drivers: the driver of v1.xx.p and the driver of the tip of the branch.
DRIVER_VERSION names the commit of each one:
git show v1.xx.p:DRIVER_VERSION # A, the driver of the previous release
git show FETCH_HEAD:DRIVER_VERSION # B, the driver of this releaseFor a release up to 1.64, DRIVER_VERSION is a version of playwright-core, not a
commit. Its commit is the tag v<version> of microsoft/playwright.
Move .upstream/ to B and list the commits between A and B. Both are on
release-1.xx of microsoft/playwright:
git checkout --detach FETCH_HEAD && python scripts/upstream.py checkout
git -C .upstream merge-base --is-ancestor <A> <B> && echo "A is before B"
git -C .upstream log --reverse --format='%h %s' <A>..<B>A commit of an upstream release branch has the title cherry-pick(#<pr>): <title>,
where #<pr> is the pull request on main of microsoft/playwright. For each
commit, read the pull request and the issue that it fixes:
gh pr view <pr> --repo microsoft/playwright --json title,body,closingIssuesReferencesThe patch releases of microsoft/playwright between A and B name the same issues
(gh release view v1.xx.y --repo microsoft/playwright). Use them as a check, not as
the source: the list comes from the commits.
Keep a fix only when it changes something for a user of Playwright Python: the browsers, the driver, the protocol, the API. Leave out the fixes of the test runner, of the Node.js tools and of the other languages, and the commits that a user cannot see: version bumps, CI, tests, docs of other languages.
When A and B are the same commit, the release has no upstream changes. Then the commits of step 1 are the only changes: list those that a user can see, such as a new bundled Node.js or a change of the Docker images.
3. The notes
Write the notes to a file, in GitHub markdown, in this shape. It is the shape of the earlier patch releases, for example v1.65.1:
### Highlights
https://github.com/microsoft/playwright/issues/<n> - <title of the issue>
https://github.com/microsoft/playwright/pull/<n> - <title of the pull request>
<One short paragraph for each change that needs an explanation.>
## Browser Versions
- Chromium <new version>- One line for each fix, and nothing more: no new APIs, no code samples, no sections of the full release notes. A patch release has only fixes.
- Link the issue that the fix closes, with the title of the issue as it is. The
issue can be in
microsoft/playwrightor inmicrosoft/playwright-python. When there is no issue, link the pull request onmain, not the cherry-pick, with its title withoutcherry-pick(#<pr>):. - Order the lines by how much they matter to a user: regressions first.
- Add a paragraph only when the title does not tell a user what changed, for example why a new Node.js matters. Write what the user gets, in one or two sentences.
- No title line, no version, no date: GitHub shows them.
Browser Versions: list only the browsers whose version changed since v1.xx.p,
each with its new version. Compare the table in README.md at the two commits. A
roll generates the table from the driver.
git show v1.xx.p:README.md | grep 'GEN:.*-version'
git show FETCH_HEAD:README.md | grep 'GEN:.*-version'The names are Chromium, Mozilla Firefox and WebKit. When no version changed,
leave out the ## Browser Versions section.
4. Check the notes
- Each line of the list has a commit between A and B in step 2. Each of those commits that changes something for a user of Playwright Python has a line.
- Each link opens, and its title is the title of that issue or pull request.
- The notes name a browser only when its version changed since
v1.xx.p, with the version ofREADME.mdat the tip of the branch.
5. The draft release
Save the notes as a draft release with the tag v1.xx.n, the title v1.xx.n and
the target release-1.xx. A draft of v1.xx.n from an earlier run has old notes:
the new draft replaces it. Never delete or change a published release.
As the Playwright bot, on CI. You have no token and no gh: you cannot save the
release yourself. Leave one release call in calls.json, and the Post step of the
bot saves the draft:
{ "call": "release", "repo": "microsoft/playwright-python", "tag": "v1.xx.n", "target": "release-1.xx", "bodyFile": "release-notes.md" }The call deletes the old draft of v1.xx.n and saves the new one. It fails when the
tag exists or when the release is published. The notes have no footer.
As a person at a computer, with gh logged in. First check that the old release
is a draft:
gh release view v1.xx.n --repo microsoft/playwright-python --json isDraft --jq .isDraft
gh release delete v1.xx.n --repo microsoft/playwright-python --yes # only when the line above prints true
gh release create v1.xx.n --repo microsoft/playwright-python --draft \
--target release-1.xx --title v1.xx.n --notes-file <notes-file>
gh release list --repo microsoft/playwright-python --limit 3 # v1.xx.n shows as DraftGive the user the URL of the draft, the previous release, and the list of the
changes that you left out with the reason for each. 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.
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.

