Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 45adfd10be4108a4331f479ddc809104ca85a45a
      
https://github.com/WebKit/WebKit/commit/45adfd10be4108a4331f479ddc809104ca85a45a
  Author: Jonathan Bedard <[email protected]>
  Date:   2023-02-14 (Tue, 14 Feb 2023)

  Changed paths:
    M Tools/Scripts/git-webkit
    M Tools/Scripts/libraries/webkitscmpy/setup.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py
    A Tools/Scripts/libraries/webkitscmpy/webkitscmpy/commit_classifier.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/scm.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/__init__.py
    A Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/classify.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pickable.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/bitbucket.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/scm.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/svn.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/scm_base.py
    A Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/classify_unittest.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/pickable_unittest.py
    A metadata/commit_classes.json
    M metadata/git_config_extension

  Log Message:
  -----------
  [git-webkit] Automatically classify commits
https://bugs.webkit.org/show_bug.cgi?id=251824
rdar://105105664

Rubber-stamped by Aakash Jain.

The WebKit project often wants tools to reason about the type of commit they are
dealing with. For example, certain test gardening changes don't require review.
And many EWS tests don't need to be run when adding to contributors.json.

* Tools/Scripts/git-webkit: Pass WebKit's commit classifier as a default.
* Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Export 
CommitClassifier.
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/commit_classifier.py: Added.
(CommitClassifier.HeaderFilter): A string filter which can be a regex or a 
fuzzy matcher.
(CommitClassifier.CommitClass): Object representing a type of commit in a 
project.
(CommitClassifier.load): Load a list of commit classes from a json file.
(CommitClassifier.classify): Given a commit and a repository, attempt to assign 
the
commit a class.
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
(Git.__init__): Pass classifier.
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/scm.py:
(Scm.__init__): Pass classifier.
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:
(Svn.__init__): Pass classifier.
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/__init__.py:
(main): Pass provisional classifier to parsers and help message generators.
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/classify.py: Added.
(Classify.help): Generate a help message including commit class names.
(Classify.parser): Added.
(Classify.main): Classify the specified commit, printing out its classification.
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pickable.py:
(Pickable.parser): Generate help message based on a provisional classifier.
(Pickable.pickable): Use CommitClassifier object instead of implementing 
classification.
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/bitbucket.py:
(BitBucket.__init__): Pass classifier.
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/scm.py:
(Scm.from_url): Pass classifier.
(Scm.__init__): Ditto.
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/svn.py:
(Svn.__init__): Pass classifier.
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/scm_base.py:
(ScmBase.__init__): Pass classifier.
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/classify_unittest.py: 
Added.
(TestClassify.test_no_classes):
(TestClassify.test_list_classes):
(TestClassify.test_header_success):
(TestClassify.test_header_failure):
(TestClassify.test_path_success):
(TestClassify.test_path_failure):
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/pickable_unittest.py:
(TestPickable.test_branch):
(TestPickable.test_branch_diverged_cherry_pick):
(TestPickable.test_branch_none):
(TestPickable.test_branch_include_versioning):
(TestPickable.test_branch_gardening_exclude):
(TestPickable.test_branch_gardening_include):
* metadata/commit_classes.json: Added.
* metadata/git_config_extension: "Test" commits are now defined by their 
classifier.

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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to