Differences between revisions 40 and 43 (spanning 3 versions)
Revision 40 as of 2017-09-06 20:22:33
Size: 5316
Editor: JunWu
Comment:
Revision 43 as of 2019-09-10 08:08:14
Size: 5264
Editor: RyanMcElroy
Comment: Removing broken external link to review tooling
Deletions are marked like this. Additions are marked like this.
Line 110: Line 110:
 * [[http://42.netv6.net/reviewtools/|Collection of script]]
Line 124: Line 122:
 * Bryan O'Sullivan
Line 128: Line 125:
 * RyanMcElroy
 * Pulkit Goyal

{i} This page does not meet our wiki style guidelines. Please help improve this page by cleaning up its formatting.

Note:

This page is primarily intended for developers of Mercurial.

Patch Review Process

This page explains the Mercurial patch review process and how (anyone) can help.

1. Generic Fact

2. Simple Review Checklist

  • The patch should conform to the ContributingChanges bullet list.

  • You understand the change
  • The change seems correct
  • The change seems efficient

2.1. For email patches

If any concerns raised, reply to the email asking questions.

If everything sounds good, reply to the email too. Just state it looks good to you in your reply. To make your pre-review even more useful, don't forget to go to Patchwork and mark the patches as "Pre-Reviewed".

2.2. For Phabricator patches

Comment on the web page. Feel free to use "Accept Revision" action even if you're not a core reviewer. If you want to comment without using a browser, follow steps on Phabricator and use "hg phabupdate".

3. Things we commonly miss

(we should probably move these recommendation in other page and just link to them)

  • Good 'topic'. (The part is the one before colon in the first line topic: short desc). It is unvaluable to sort thing out when scanning through commit, especially when building a release changelog. A common mistake is to pick a very general work like "commands".

  • Config section. All debatable/temporary/unsure-we-want-this config should go to the [experimental] config section. For other option, try to avoid adding a new section if we can't foresee more than one option in it and another pre-existing section would be a good fit.

  • Deprecation warning, if a major internal API get killed, encourage the preservation of the old version for 1 version with a deprecation warning (if it is easy to implement). This makes third party extensions maintainer life easier.

4. Accepters Review Checklist

Some people are blessed to accept patches and push them to a repo where Matt Mackall ultimately pulls from.

Here is another check list for them

  • Run check code on all patches
  • Run the whole test suites
  • Reply to the list saying that you took care of the patch
  • you can get the patches files directly from http://hgpatches.durin42.com/patches/<node> Appropriate hg alias would be:

    • [alias]
      getpatch=import --partial --obsolete http://hgpatches.durin42.com/patches/$1
  • Make sure you created obsolescence marker between the node in the patch and the one you created, e.g.
    • hg import --partial --obsolete <patches>:
  • use the drophack extension if you need to drop a changeset you queued

  • Rebase your queue on top of main's @

  • Move @ with the changeset you pushed.

  • Update Patchwork once you have pushed

5. Patchwork States

New

Nobody looked at this patch yet

Pre-Reviewed

non-committer have "lgtm", but still needs someone to look at it

Under Review

A committer is discussing the patch with the author

2nd Review Requested

committer looked at it and think it should be accepted, but second pair of eyes requested

Accepted

Patch is pushed to hg-committed

Changes Requested

changes requested by committer, needs new version

Rejected

RFC

an RFC patch, significant behavior change or code architecture choice is proposed, requires as wide as possible opinions

Superseded

new version available

Not Applicable

not a patch

Deferred

Idea or patch is not terrible per se, but we'll take care of it later (resubmit when appropriate)

6. Review Tooling

7. The Committers Group

Current list with push access to the hg-committed repository

  • Kevin Bullock
  • Augie Fackler
  • Matt Mackall
  • Yuya Nishihara
  • Martin von Zweigbergk
  • Gregory Szorc
  • Sean Farley
  • RyanMcElroy

  • Pulkit Goyal


CategoryDeveloper

ReviewProcess (last edited 2022-10-12 15:53:35 by AugieFackler)