‹ Reports
The Dispatch

OSS Report: microsoft/playwright


Playwright Development Faces Regression Challenges Amidst Feature Expansion

Playwright, a web testing and automation framework by Microsoft, continues to evolve with new features and enhancements, though recent updates have introduced regression issues affecting stability.

Recent Activity

Recent issues and pull requests (PRs) highlight a mix of feature requests and bug fixes. Notable issues include regression bugs such as #32620, where the default test directory is not found post-update, and #32619, which affects VSCode integration. Feature requests like #32626 for webserver logs and #32618 for network throttling indicate user demand for enhanced functionality. The development team is actively addressing these through PRs like #32628, fixing React race conditions, and #32627, adding network request copying as cURL.

Development Team and Recent Activity

  1. Max Schmitt (mxschmitt)
    • 40 commits: Focused on version updates, Docker permissions fixes, and documentation enhancements.
  2. Simon Knott (Skn0tt)
    • 35 commits: Added .pwtrace extension, improved trace viewer accuracy.
  3. Yury Semikhatsky (yury-s)
    • 33 commits: Enhanced Bidi protocol support, removed browser-specific hacks.
  4. Dmitry Gozman (dgozman)
    • 32 commits: Improved UI error handling in the test runner.
  5. Playwright Service (playwrightmachine)
    • 29 commits: Managed browser rollbacks.
  6. Pavel Feldman (pavelfeldman)
    • 24 commits: Improved code generation in the recorder.
  7. Kuba Janik (kubajanik)
    • 3 commits: Added font preview in the network tab.

Of Note

The Playwright project is actively developing with a focus on both new features and maintaining stability through bug fixes. However, recent regressions highlight areas needing attention to ensure reliable performance across updates.

Quantified Reports

Quantify Issues



Recent GitHub Issues Activity

Timespan Opened Closed Comments Labeled Milestones
7 Days 54 39 101 34 1
30 Days 228 171 560 152 1
90 Days 338 200 805 181 1
All Time 14192 13554 - - -

Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.

Quantify commits



Quantified Commit Activity Over 30 Days

Developer Avatar Branches PRs Commits Files Changes
Yury Semikhatsky 2 33/33/0 33 86 36381
Pavel Feldman 1 27/23/1 24 124 22561
Max Schmitt 4 34/27/3 40 98 7391
Simon Knott 3 31/27/2 35 124 6598
Dmitry Gozman 2 29/28/0 32 92 4635
Playwright Service 2 27/25/2 29 16 1031
Sander 1 0/0/0 2 2 180
Kuba Janik 1 2/2/0 3 4 154
dependabot[bot] 1 3/3/0 3 5 118
Matthew Jee 1 1/1/0 1 15 94
Rui Figueira 1 1/1/0 2 3 20
Przemyslaw Malolepszy 1 1/1/0 1 2 6
Kevin Jagodic 1 1/1/0 1 1 4
Guillaume M 1 1/1/0 1 1 2
Teng Yang 1 1/1/0 1 1 1
Erik Eide (erkde) 0 1/0/1 0 0 0
Mathias Leppich (muhqu) 0 1/0/1 0 0 0
Valentin Brajon (vbrajon) 0 1/0/1 0 0 0
오소현 (osohyun0224) 0 1/0/0 0 0 0
None (Radeonares32) 0 1/0/1 0 0 0
None (serialbandicoot) 0 1/0/0 0 0 0
Lorenzo Urbini (siteriaitaliana) 0 1/0/1 0 0 0
Jean-Pierre Carvalho (jeanpierrecarvalho) 0 1/0/0 0 0 0

PRs: created by that dev and opened/merged/closed-unmerged during the period

Detailed Reports

Report On: Fetch issues



Recent Activity Analysis

The Playwright project has seen significant activity recently, with a total of 638 open issues. Notably, several issues have been created or updated in the last few days, indicating ongoing engagement from the community and developers alike. A variety of topics are being discussed, including feature requests, bug reports, and enhancements related to testing capabilities.

Among the most pressing themes are issues related to browser compatibility, particularly with Firefox and WebKit, as well as requests for improved functionality in the UI mode and better handling of asynchronous components in testing frameworks like Svelte and React. The presence of multiple feature requests suggests that users are actively looking for enhancements to streamline their testing workflows.

Issue Details

Here are some of the most recently created and updated issues:

  1. Issue #32626: [Feature]: Show webserver logs

    • Priority: 🚀 Feature Request
    • Status: Open
    • Created: 1 day ago
    • Updated: N/A
  2. Issue #32620: [Regression]: Default Test directory no longer found after 1.47.0

    • Priority: P1-urgent
    • Status: Open
    • Created: 1 day ago
    • Updated: N/A
  3. Issue #32619: [Bug]: VSCode locator highlighting does not work when using the test step decorator

    • Priority: P2-high
    • Status: Open
    • Created: 1 day ago
    • Updated: N/A
  4. Issue #32618: [Feature]: Create a setNetworkThrottling method inside the BrowserContext or Page classes

    • Priority: 🚀 Feature Request
    • Status: Open
    • Created: 2 days ago
    • Updated: N/A
  5. Issue #32616: [Docs]: clarify behaviour of or when both locators match

    • Priority: P3-collecting-feedback
    • Status: Open
    • Created: 2 days ago
    • Updated: N/A
  6. Issue #32612: [Bug]: (Playwright-ct) Unexpected Value error for function type for HooksConfig (Pinia Store)

    • Priority: P3-collecting-feedback
    • Status: Open
    • Created: 2 days ago
    • Updated: N/A
  7. Issue #32609: [Feature]: Support the step option for the Locator.dragTo method

    • Priority: P3-collecting-feedback
    • Status: Open
    • Created: 2 days ago
    • Updated: N/A
  8. Issue #32608: [Feature]: codegen support for launchPersistentContext

    • Priority: 🚀 Feature Request
    • Status: Open
    • Created: 2 days ago
    • Updated: N/A
  9. Issue #32600: [Bug]: toContainText assertion does not consider text in Web Component slots

    • Priority: P3-collecting-feedback
    • Status: Open
    • Created: 2 days ago
    • Updated: N/A
  10. Issue #32594: [Bug]: Auth0 + Playwright storage state does not work for more than 1 test

    • Priority: P3-collecting-feedback
    • Status: Open
    • Created: 3 days ago
    • Updated: Edited 2 days ago

Analysis of Themes and Commonalities

A clear trend is emerging around issues related to regression bugs following updates (e.g., #32620), which indicates potential instability introduced in recent versions. Additionally, there is a strong focus on enhancing documentation (#32616) and improving developer experience through feature requests (#32626, #32618).

The presence of multiple issues regarding VSCode integration (#32619) also highlights ongoing challenges users face when trying to utilize Playwright within their development environments effectively.

Overall, these insights suggest that while Playwright is evolving rapidly with new features and improvements, there remain critical areas requiring attention to ensure stability and user satisfaction across different platforms and use cases.

Report On: Fetch pull requests



Overview

The analysis of the pull requests (PRs) from the Microsoft Playwright repository reveals a dynamic development environment with a mix of feature enhancements, bug fixes, and maintenance tasks. The repository currently has 20 open PRs and a significant number of closed PRs, indicating ongoing active development and community engagement.

Summary of Pull Requests

  1. PR #32628: fix(recorder): address the react race condition

    • State: Open
    • Created: 0 days ago
    • Significance: Addresses a race condition issue in the React recorder functionality, which is crucial for maintaining reliability in UI testing.
  2. PR #32627: feat(trace-viewer): add network requests 'copy as cURL' button

    • State: Open
    • Created: 1 day ago
    • Significance: Introduces a feature that allows users to copy network requests as cURL commands, enhancing usability for debugging and sharing request details.
  3. PR #32624: chore: simplify signal handling while recording

    • State: Open
    • Created: 1 day ago
    • Significance: Simplifies the handling of signals during recording, potentially improving performance and reducing complexity in the codebase.
  4. PR #32622: chore: simplify signal handling while recording

    • State: Open
    • Created: 1 day ago
    • Significance: Similar to PR #32624, this also aims to streamline signal handling but may address different aspects or components within the recorder functionality.
  5. PR #32621: docs(docker): fix Docker container permissions

    • State: Open
    • Created: 1 day ago
    • Significance: Fixes permission issues in Docker containers, which is critical for users deploying Playwright in containerized environments.
  6. PR #32613: feat(fetch): record timings

    • State: Open
    • Created: 2 days ago
    • Significance: Adds instrumentation for recording API request timings, which can help in performance analysis and optimization.
  7. PR #32611: feat(client-certificates): add support for proxies

    • State: Open
    • Created: 2 days ago
    • Significance: Introduces support for client certificates when using proxies, enhancing security and flexibility in network interactions.
  8. PR #32603: fix(expect): respect custom message in expect.poll

    • State: Open
    • Created: 2 days ago
    • Significance: Fixes an issue with custom messages in expectation polling, improving error reporting and debugging capabilities.
  9. PR #32584: feat(test runner): allow stopping testrun with escape

    • State: Open
    • Created: 3 days ago
    • Significance: Enhances user experience by allowing users to stop test runs using the Escape key, making it more intuitive during testing sessions.
  10. PR #32565: chore(tooling): install knip and remove unused files/dependencies

    • State: Open
    • Created: 4 days ago
    • Significance: Improves project hygiene by removing unused files and dependencies, which can lead to better maintainability and performance.

11-20. Additional PRs focus on various enhancements, fixes, and updates related to features like trace viewer improvements, documentation updates, and dependency management.

Analysis of Pull Requests

The current set of open pull requests reflects an active development cycle within the Playwright project, with a strong emphasis on both feature enhancement and maintenance tasks aimed at improving usability and performance.

Themes and Commonalities

  • A significant number of PRs focus on enhancing the user experience (e.g., adding features like "copy as cURL" or allowing stopping tests with the Escape key). This indicates that the development team is attentive to user feedback and is actively working to make Playwright more accessible.
  • Several PRs are dedicated to fixing bugs or issues related to existing functionalities (e.g., race conditions in React components or Docker permissions). This demonstrates a commitment to maintaining high-quality software that meets user expectations.
  • There is also a notable effort towards improving internal code quality through simplifications (e.g., signal handling), which can lead to better maintainability in the long run.

Notable Anomalies

  • The presence of multiple PRs addressing similar areas (e.g., signal handling) may indicate either overlapping work or a need for clearer task delineation among contributors.
  • A consistent issue across many PRs is the recurring failure of tests related to babel.spec.ts, which suggests underlying problems that may need addressing before further development can proceed smoothly.

Lack of Merge Activity

While there are numerous open PRs, there appears to be a healthy merge activity as well, with several recent merges indicating that contributions are being reviewed and integrated into the main branch regularly.

Conclusion

Overall, the Playwright repository exhibits a robust development environment characterized by active contributions aimed at enhancing functionality while ensuring stability through bug fixes and maintenance efforts. The focus on user experience improvements alongside internal code quality initiatives positions Playwright well for continued growth and adoption in web automation testing scenarios.

Report On: Fetch commits



Repo Commits Analysis

Development Team and Recent Activity

Team Members and Activities

  1. Simon Knott (Skn0tt)

    • Recent Commits: 35 commits with 6598 changes.
    • Key Contributions:
    • Added .pwtrace as a trace file extension, updating multiple documentation files.
    • Implemented a feature to force garbage collection in the API.
    • Fixed a flaky screenshot test by delaying trace recording.
    • Enhanced the trace viewer to show screenshots instead of snapshots for better accuracy.
    • Collaborations: Worked closely with Yury Semikhatsky and Max Schmitt on various features and fixes.
  2. Yury Semikhatsky (yury-s)

    • Recent Commits: 33 commits with 36381 changes.
    • Key Contributions:
    • Introduced cookies in intercepted Bidi requests.
    • Updated Bidi expectations and improved error handling.
    • Removed browser-specific Bidi hacks, streamlining the codebase.
    • Collaborations: Frequently collaborated with Simon Knott and Dmitry Gozman.
  3. Matthew Jee (marmphco)

    • Recent Commits: 1 commit with 94 changes.
    • Key Contributions: Added a method to force garbage collection in the API.
  4. Playwright Service (playwrightmachine)

    • Recent Commits: 29 commits with 1031 changes.
    • Key Contributions: Managed browser rollbacks for Chromium, Firefox, and WebKit.
  5. Max Schmitt (mxschmitt)

    • Recent Commits: 40 commits with 7391 changes.
    • Key Contributions:
    • Marked version updates for releases and fixed various bugs related to Docker permissions and test runner behaviors.
    • Enhanced documentation for clarity on API usage.
  6. Pavel Feldman (pavelfeldman)

    • Recent Commits: 24 commits with 22561 changes.
    • Key Contributions: Focused on recorder functionalities, including improvements to the code generation process.
  7. Dmitry Gozman (dgozman)

    • Recent Commits: 32 commits with 4635 changes.
    • Key Contributions: Worked on UI improvements and error handling in the test runner.
  8. Kuba Janik (kubajanik)

    • Recent Commits: 3 commits with 154 changes.
    • Key Contributions: Added font preview functionality in the network tab of the UI.
  9. Others (dependabot[bot], PrzemyslawMalolepszy-TomTom, jkvn, guillaume-moreau)

    • Minor contributions primarily focused on dependency updates or documentation fixes.

Patterns and Themes

  • The team is actively enhancing both core functionalities and user experience through frequent updates, particularly in the areas of Bidi protocol support, trace viewer enhancements, and test runner improvements.
  • Collaboration is evident among team members, especially between Simon Knott and Yury Semikhatsky, who frequently work together on features that intersect their areas of responsibility.
  • A significant focus on bug fixes indicates a commitment to maintaining stability alongside new feature development. This includes addressing flaky tests and improving error messaging within the testing framework.
  • Documentation updates accompany many feature additions, reflecting an understanding of the importance of user guidance as the project evolves.

Conclusions

The Playwright development team demonstrates robust activity characterized by collaborative efforts to enhance functionality while ensuring stability through bug fixes. The consistent integration of user feedback into documentation and feature sets indicates a responsive approach to community needs. Overall, the team is well-aligned towards making Playwright a reliable tool for web testing automation.