Differences between revisions 3 and 36 (spanning 33 versions)
Revision 3 as of 2014-04-12 21:21:27
Size: 1074
Comment:
Revision 36 as of 2016-03-25 17:03:39
Size: 4826
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
#pragma section-numbers 2

<<Include(A:style)>>
<<Include(A:dev)>>
Line 3: Line 8:
This page explain the Mercurial Patch Review Process and how (anyone) can help. This page explains the Mercurial patch review process and how (anyone) can help.
Line 5: Line 10:
<<TableOfContents>>
Line 8: Line 14:
 * All reviews happen one MailingLists#The_Mercurial-Devel_list  * All reviews happen on MailingLists#The_Mercurial-Devel_list
Line 10: Line 16:
 * Contributor follow the ContributingChanges and send they patch to the list (hopefully using the PatchbombExtension)  * Contributors follow the ContributingChanges and send their patch(es) to the list (hopefully using the PatchbombExtension)
Line 12: Line 18:
 * Review are just email reply to the emailed patch  * Reviews are just email replies to the emailed patch
Line 18: Line 24:
 * The patch is compliant to the ContributingChanges bullet list.  * The patch should conform to the ContributingChanges bullet list.
Line 20: Line 26:
   Quick reminder of important thing:    Quick reminder of important things:
Line 24: Line 30:
   * Patch does one and one thing,    * Patch does one and only one thing,
Line 28: Line 34:
   * Documentation augmented an updated    * Documentation augmented and updated
Line 38: Line 44:
If any concerns raised, reply to the email asking question. If any concerns raised, reply to the email asking questions.
Line 40: Line 46:
If everything sounds good, reply to the email too. Just state it looks good to you. 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 [[http://patchwork.serpentine.com/project/hg/list/|Patchwork]] and mark the patches as "Pre-Reviewed".

== 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.

== 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.

  {{{#!bash
hg import --partial --obsolete <patches>:
}}}


 * use the [[https://bitbucket.org/marmoute/mutable-history/src/98b5ac44a25913e546f4588dba5b7a1db39c82d4/hgext/drophack.py?at=default|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 [[http://patchwork.serpentine.com/project/hg/list/|Patchwork]] once you have pushed


== Patchwork States ==

||'''New''' || ||
||'''Pre-Reviewed''' ||non-reviewer have "lgtm", but still needs someone to look at it ||
||'''Under Review''' || ||
||'''2nd Review Requested'''||reviewer looked at it, but second pair of eyes requested ||
||'''Accepted''' || ||
||'''Changes Requested''' ||changes requested by reviewer, needs new version ||
||'''Rejected''' || ||
||'''RFC''' ||an RFC patch, needs more reviews (?) ||
||'''Superseded''' ||new version available ||
||'''Not Applicable''' ||not a patch (?) ||
||'''Deferred''' ||? ||
Line 44: Line 110:
 * Patchwork  * [[http://patchwork.serpentine.com/project/hg/list/|Patchwork]] ([[http://hgpatches.appspot.com/?days=30|backlog plot]])
Line 46: Line 112:
 * Patch bomb  * [[http://hgpatches.durin42.com/|The Patches Bot]] ([[http://hg.durin42.com/patchbot/|sources]])
Line 48: Line 114:
 * Collection of script  * [[http://42.netv6.net/reviewtools/|Collection of script]]

 * Various data collection [[http://review.octopoid.net/]] (STALED)

 * Matt Mackall Inbox [[http://www.selenic.com/inbox|Metrix (nb email, nb patches, oldest email (in day))]] and [[http://www.selenic.com/inflight|Content]].

== The Committers Group ==

Current list with push access to the [[https://www.mercurial-scm.org/repo/hg-committed/|hg-committed repository]]

 * Kevin Bullock
 * Pierre-Yves David
 * Augie Fackler
 * Matt Mackall
 * Yuya Nishihara
 * Bryan O'Sullivan
 * Martin von Zweigbergk

----
CategoryDeveloper

{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.

    • Quick reminder of important things:
    • commit message format,
    • Patch does one and only one thing,
    • Change is tested
    • Documentation augmented and updated
    • (all the other things in the list)
  • You understand the change
  • The change seems correct
  • The change seems efficient

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".

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

Pre-Reviewed

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

Under Review

2nd Review Requested

reviewer looked at it, but second pair of eyes requested

Accepted

Changes Requested

changes requested by reviewer, needs new version

Rejected

RFC

an RFC patch, needs more reviews (?)

Superseded

new version available

Not Applicable

not a patch (?)

Deferred

?

6. Review Tooling

7. The Committers Group

Current list with push access to the hg-committed repository

  • Kevin Bullock
  • Pierre-Yves David
  • Augie Fackler
  • Matt Mackall
  • Yuya Nishihara
  • Bryan O'Sullivan
  • Martin von Zweigbergk


CategoryDeveloper

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