playwright-roll

Roll Playwright Python to a new driver version. Walks the upstream `docs/src/api/` commit range, ports each public-API change, suppresses the rest in…

npx skills add https://github.com/microsoft/playwright-python --skill playwright-roll

Rolling Playwright

Read AGENTS.md first. A roll moves DRIVER_VERSION to a new upstream commit and ports everything that changed in between.

1. Pin

python scripts/upstream.py pin main      # or a branch, a tag, a commit
python scripts/update_node_version.py
old=$(git show HEAD:DRIVER_VERSION)
new=$(cat DRIVER_VERSION)

2. Generate

./scripts/update_api.sh
mypy playwright

The mypy errors are the to-do list: new members, options and protocol parameters that _impl/ does not have yet. Until they are ported, the client may not work with the new driver. To see what changed in the public API:

git show HEAD:playwright/async_api/_generated.py > /tmp/old.py
python scripts/codegen/compare_api.py /tmp/old.py playwright/async_api/_generated.py --show all

3. Build

python -m build --wheel
playwright install chromium firefox webkit

4. Port

python scripts/upstream.py changes

It lists each changed upstream file with the Python file to port it to. For each one, read git -C .upstream diff $old $new -- <file> and port it hunk by hunk:

  • client code: into the module it names; (no Python port yet) is a new module;
  • tests: into the async and the sync file it names. New test names come from python scripts/check_test_registry.py --missing <id>;
  • test assets and snapshot images: copy them to the place it names;
  • the "Generated" group: step 2 did it.

Changes in the server or in the injected scripts need nothing: they come with the new driver. A test marked xfail(reason="driver: ...") may pass now; remove the mark then.

Run each changed test file on the three browsers. Then run mypy playwright until it is clean.

5. Check

./test.sh
python scripts/update_versions.py        # the browser versions in README.md
./scripts/lint.sh                        # last: the roll is done when it passes

A failure in a file that the roll did not change may be a flake, or older than the roll. Find out which, and say so in the PR.

Title the PR chore: roll Playwright to <version> (<first 10 characters of $new>), with the version from .upstream/packages/playwright-core/package.json. In the description, list what you ported and what is left, and put the output of python scripts/upstream.py log in a <details> block. The roll workflow adds that list itself.

When it breaks

  • missing ... argument, or Protocol violations at the end of a test: a protocol change that the client does not follow yet. Port its hunk.
  • timeout: expected float, got undefined at launch: playwright/driver/ is older than the pin. Build again.
  • .upstream/ is not at ...: python scripts/upstream.py checkout.

Mehr Skills von microsoft

oss-growth
microsoft
OSS-Wachstums-Hacker-Persona
agent-framework-azure-ai-py
microsoft
Erstellen Sie Azure AI Foundry-Agents mit dem Microsoft Agent Framework Python SDK (agent-framework-azure-ai). Verwenden Sie dies beim Erstellen persistenter Agents mit AzureAIAgentsProvider, bei der Nutzung gehosteter Tools (Code-Interpreter, Dateisuche, Websuche), bei der Integration von MCP-Servern, bei der Verwaltung von Konversationsthreads oder bei der Implementierung von Streaming-Antworten. Umfasst Funktionstools, strukturierte Ausgaben und Multi-Tool-Agents.
development
airunway-aks-setup
microsoft
Richte AI Runway auf AKS ein – vom leeren Cluster bis zum laufenden Modell. Umfasst Cluster-Überprüfung, Controller-Installation, GPU-Bewertung, Provider-Einrichtung und erste Bereitstellung. WANN: „AI Runway einrichten“, „AKS-Cluster onboarden“, „AI Runway installieren“, „airunway setup“, „Modell auf AKS bereitstellen“, „GPU-Inferenz auf AKS“, „KAITO-Setup auf AKS“, „LLM auf AKS ausführen“, „vLLM auf AKS“, „Modell-Serving auf AKS einrichten“, „AI Runway-Controller“.
devops
appinsights-instrumentation
microsoft
Leitfaden zur Instrumentierung von Webanwendungen mit Azure Application Insights. Bietet Telemetriemuster, SDK-Einrichtung und Konfigurationsreferenzen. WANN: wie man eine App instrumentiert, App Insights SDK, Telemetriemuster, was ist App Insights, Application Insights-Anleitung, Instrumentierungsbeispiele, APM-Best Practices.
devops
applicationinsights-web-ts
microsoft
Instrumentieren Sie Browser-/Web-Apps mit dem Application Insights JavaScript SDK (@microsoft/applicationinsights-web). Verwenden Sie es für Real User Monitoring (RUM) – Seitenaufrufe, Klicks, AJAX/Fetch-Abhängigkeiten, Ausnahmen, benutzerdefinierte Ereignisse und browser-seitige GenAI-Agent-Traces, die mit Backend-OpenTelemetry-Traces korreliert werden. Umfasst SDK-Loader-Skript und npm-Setup, Framework-Erweiterungen (React, React Native, Angular), Click Analytics, Telemetrie-Initialisierer und OTel-GenAI-Semantik-Konventionen für Agent-/Tool-/Modell-Spans, die vom Browser ausgegeben werden.
devops
azure-ai-anomalydetector-java
microsoft
Erstellen Sie Anomalieerkennungsanwendungen mit dem Azure AI Anomaly Detector SDK für Java. Verwenden Sie dies bei der Implementierung von univariater/multivariater Anomalieerkennung, Zeitreihenanalyse oder KI-gestützter Überwachung.
development
azure-ai-language-conversations-py
microsoft
Implementieren Sie Conversational Language Understanding (CLU) mit dem azure-ai-language-conversations Python SDK. Verwenden Sie dies, wenn Sie mit ConversationAnalysisClient arbeiten, um Gesprächsabsichten und Entitäten zu analysieren, NLP-Funktionen zu erstellen oder Sprachverständnis in Anwendungen zu integrieren.
development
azure-ai-ml-py
microsoft
Azure Machine Learning SDK v2 für Python. Verwenden für ML-Workspaces, Jobs, Modelle, Datensätze, Compute und Pipelines. Auslöser: „azure-ai-ml“, „MLClient“, „Workspace“, „Modell-Registry“, „Trainings-Jobs“, „Datensätze“.
development