Changeset 70274 in webkit


Ignore:
Timestamp:
Oct 21, 2010 4:00:45 PM (13 years ago)
Author:
eric@webkit.org
Message:

2010-10-21 Eric Seidel <eric@webkit.org>

Reviewed by Adam Barth.

Add --suggest-reviewers option to upload to auto-suggest reviewers for your patch
https://bugs.webkit.org/show_bug.cgi?id=48088

This is a first-pass. Works, but we'll eventually
turn this on by default, refine the suggestion algorithm
and possibly move it to a different place in the upload step order.

  • Scripts/webkitpy/common/checkout/api.py:
  • Scripts/webkitpy/tool/commands/download_unittest.py:
  • Scripts/webkitpy/tool/commands/upload.py:
  • Scripts/webkitpy/tool/commands/upload_unittest.py:
  • Scripts/webkitpy/tool/mocktool.py:
  • Scripts/webkitpy/tool/steps/init.py:
  • Scripts/webkitpy/tool/steps/options.py:
Location:
trunk/WebKitTools
Files:
2 added
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKitTools/ChangeLog

    r70270 r70274  
     12010-10-21  Eric Seidel  <eric@webkit.org>
     2
     3        Reviewed by Adam Barth.
     4
     5        Add --suggest-reviewers option to upload to auto-suggest reviewers for your patch
     6        https://bugs.webkit.org/show_bug.cgi?id=48088
     7
     8        This is a first-pass.  Works, but we'll eventually
     9        turn this on by default, refine the suggestion algorithm
     10        and possibly move it to a different place in the upload step order.
     11
     12        * Scripts/webkitpy/common/checkout/api.py:
     13        * Scripts/webkitpy/tool/commands/download_unittest.py:
     14        * Scripts/webkitpy/tool/commands/upload.py:
     15        * Scripts/webkitpy/tool/commands/upload_unittest.py:
     16        * Scripts/webkitpy/tool/mocktool.py:
     17        * Scripts/webkitpy/tool/steps/__init__.py:
     18        * Scripts/webkitpy/tool/steps/options.py:
     19
    1202010-10-21  Mario Sanchez Prada  <msanchez@igalia.com>
    221
  • trunk/WebKitTools/Scripts/webkitpy/common/checkout/api.py

    r70059 r70274  
    121121        return set(map(self.commit_info_for_revision, revisions))
    122122
    123     def suggested_reviewers(self, git_commit):
    124         changed_files = self.modified_non_changelogs(git_commit)
     123    def suggested_reviewers(self, git_commit, changed_files=None):
     124        changed_files = self.modified_non_changelogs(git_commit, changed_files)
    125125        commit_infos = self.recent_commit_infos_for_files(changed_files)
    126126        reviewers = [commit_info.reviewer() for commit_info in commit_infos if commit_info.reviewer()]
  • trunk/WebKitTools/Scripts/webkitpy/tool/commands/download_unittest.py

    r69905 r70274  
    187187    def test_rollout(self):
    188188        expected_stderr = "Preparing rollout for bug 42.\nUpdating working directory\nRunning prepare-ChangeLog\nMOCK: user.open_url: file://...\nBuilding WebKit\n"
    189         self.assert_execute_outputs(Rollout(), [852, "Reason"], options=self._default_options(), expected_stderr=expected_stderr)
     189        expected_stdout = "Was that diff correct?\n"
     190        self.assert_execute_outputs(Rollout(), [852, "Reason"], options=self._default_options(), expected_stdout=expected_stdout, expected_stderr=expected_stderr)
    190191
  • trunk/WebKitTools/Scripts/webkitpy/tool/commands/upload.py

    r68496 r70274  
    172172        steps.ConfirmDiff,
    173173        steps.ObsoletePatches,
     174        steps.SuggestReviewers,
    174175        steps.PostDiff,
    175176    ]
     
    220221        steps.ConfirmDiff,
    221222        steps.ObsoletePatches,
     223        steps.SuggestReviewers,
    222224        steps.PostDiff,
    223225    ]
  • trunk/WebKitTools/Scripts/webkitpy/tool/commands/upload_unittest.py

    r69905 r70274  
    5959        options.request_commit = False
    6060        options.review = True
     61        options.suggest_reviewers = False
    6162        expected_stderr = """Running check-webkit-style
    6263MOCK: user.open_url: file://...
     
    6869MOCK: user.open_url: http://example.com/42
    6970"""
    70         self.assert_execute_outputs(Post(), [42], options=options, expected_stderr=expected_stderr)
     71        expected_stdout = "Was that diff correct?\n"
     72        self.assert_execute_outputs(Post(), [42], options=options, expected_stdout=expected_stdout, expected_stderr=expected_stderr)
    7173
    7274    def test_land_safely(self):
     
    8991        options.request_commit = False
    9092        options.review = True
     93        options.suggest_reviewers = False
    9194        expected_stderr = """Running check-webkit-style
    9295MOCK: user.open_url: file://...
     
    98101MOCK: user.open_url: http://example.com/42
    99102"""
    100         self.assert_execute_outputs(Upload(), [42], options=options, expected_stderr=expected_stderr)
     103        expected_stdout = "Was that diff correct?\n"
     104        self.assert_execute_outputs(Upload(), [42], options=options, expected_stdout=expected_stdout, expected_stderr=expected_stderr)
    101105
    102106    def test_mark_bug_fixed(self):
     
    107111        options.comment = "MOCK comment"
    108112        expected_stderr = "Bug: <http://example.com/42> Bug with two r+'d and cq+'d patches, one of which has an invalid commit-queue setter.\nRevision: 9876\nMOCK: user.open_url: http://example.com/42\nAdding comment to Bug 42.\nMOCK bug comment: bug_id=42, cc=None\n--- Begin comment ---\nMOCK comment\n\nCommitted r9876: <http://trac.webkit.org/changeset/9876>\n--- End comment ---\n\n"
    109         self.assert_execute_outputs(MarkBugFixed(), [], expected_stderr=expected_stderr, tool=tool, options=options)
     113        expected_stdout = "Is this correct?\n"
     114        self.assert_execute_outputs(MarkBugFixed(), [], expected_stdout=expected_stdout, expected_stderr=expected_stderr, tool=tool, options=options)
    110115
    111116    def test_edit_changelog(self):
  • trunk/WebKitTools/Scripts/webkitpy/tool/mocktool.py

    r70117 r70274  
    237237        raise Exception('No patches in the rietveld queue')
    238238
     239
     240_mock_reviewer = Reviewer("Foo Bar", "foo@bar.com")
     241
     242
    239243# FIXME: Bugzilla is the wrong Mock-point.  Once we have a BugzillaNetwork
    240244#        class we should mock that instead.
    241245# Most of this class is just copy/paste from Bugzilla.
    242 
    243 
    244246class MockBugzilla(Mock):
    245247
     
    259261        Mock.__init__(self)
    260262        self.queries = MockBugzillaQueries(self)
    261         self.committers = CommitterList(reviewers=[Reviewer("Foo Bar", "foo@bar.com")])
     263        self.committers = CommitterList(reviewers=[_mock_reviewer])
    262264        self._override_patch = None
    263265
     
    492494        pass
    493495
     496    def suggested_reviewers(self, git_commit, changed_files=None):
     497        return [_mock_reviewer]
    494498
    495499class MockUser(object):
     
    509513
    510514    def confirm(self, message=None, default='y'):
     515        print message
    511516        return default == 'y'
    512517
  • trunk/WebKitTools/Scripts/webkitpy/tool/steps/__init__.py

    r57552 r70274  
    5555from webkitpy.tool.steps.revertrevision import RevertRevision
    5656from webkitpy.tool.steps.runtests import RunTests
     57from webkitpy.tool.steps.suggestreviewers import SuggestReviewers
    5758from webkitpy.tool.steps.updatechangelogswithreviewer import UpdateChangeLogsWithReviewer
    5859from webkitpy.tool.steps.update import Update
  • trunk/WebKitTools/Scripts/webkitpy/tool/steps/options.py

    r69737 r70274  
    5555    review = make_option("--no-review", action="store_false", dest="review", default=True, help="Do not mark the patch for review.")
    5656    reviewer = make_option("-r", "--reviewer", action="store", type="string", dest="reviewer", help="Update ChangeLogs to say Reviewed by REVIEWER.")
     57    suggest_reviewers = make_option("--suggest-reviewers", action="store_true", default=False, help="Offer to CC appropriate reviewers.")
    5758    test = make_option("--test", action="store_true", dest="test", default=False, help="Run run-webkit-tests before committing.")
    5859    update = make_option("--no-update", action="store_false", dest="update", default=True, help="Don't update the working directory.")
Note: See TracChangeset for help on using the changeset viewer.