[webkit-changes] [WebKit/WebKit] 07098e: [ews-build.webkit.org] Classify commits in pull-re...

Jonathan Bedard noreply at github.com
Thu Mar 30 09:05:44 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 07098ea5d9313615068f339e7f7471b21bfaa9ba
      https://github.com/WebKit/WebKit/commit/07098ea5d9313615068f339e7f7471b21bfaa9ba
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-03-30 (Thu, 30 Mar 2023)

  Changed paths:
    M Tools/CISupport/ews-build/events.py
    A Tools/CISupport/ews-build/events_unittest.py
    M Tools/CISupport/runUnittests.py

  Log Message:
  -----------
  [ews-build.webkit.org] Classify commits in pull-requests
https://bugs.webkit.org/show_bug.cgi?id=254680
rdar://107381451

Reviewed by Aakash Jain.

Many EWS steps preform rudimentry and divergent classification of commits.
For example, merge-queue preforms less validation on gardening commits and reverts.
The WebKit Project has a concept of 'commit classification' that `git-webkit` uses
to determine which changes on a given branch are novel. To pave the way for EWS to
use the 'commit classification' concept, buildrequests need 'classification' as one
of their properties.

* Tools/CISupport/ews-build/events.py:
(logging_disabled.__exit__):
(CommitClassifier): Add a class which encapsulates the concept of a commit classification.
(CommitClassifier.HeaderFilter): Add class encapsulating both a regex and fuzzy match
filter to search the title of commits with.
(GitHubEventHandlerNoEdits.commit_classes): Return a cached list of all CommitClassifier
bjects for the WebKit project.
(GitHubEventHandlerNoEdits._get_commit_msg): Clarify why we're implementing our own
"_get_commit_messages" and (delibrately) disabling this one.
(GitHubEventHandlerNoEdits._get_commit_messages): Return a list of the commit messages
for the commits in this pull request.
(GitHubEventHandlerNoEdits.classifiy): Given a commit message and list of changed
files, return a string representing the CommitClassifier of the provided commit message,
if the commit message matches one of our commit classes.
(GitHubEventHandlerNoEdits.handle_pull_request): Before returning a change, determine
the classification of all commits in the pull-request, so that information can be
included in properties.
* Tools/CISupport/ews-build/events_unittest.py: Added.
* Tools/CISupport/runUnittests.py:
(main): Explicitly import rapidfuzz, since that is an uncommon dependency.

Canonical link: https://commits.webkit.org/262332@main




More information about the webkit-changes mailing list