JG> 1. When you add a patch to the queue you have an idea of where
JG> you're going with it, and the commit message should reflect that.
JG> Be specific. We have a tendency to say something like "Various
JG> fixes to AllocationCapabilities" (I'm a huge offender here), when
JG> we really should be saying what was actually fixed, like "add
JG> EnumInstances support" or "eliminate duplicate instances."
100% agree. MQ allows you to edit a patch description at any time
with "hg qrefresh -e", so it should be easy to update the message with
information as you proceed. For patches that do more than one
significant thing, a list of changes in the message would be good.
JG> 2. Stay on task with a patch. If you notice other problems while
JG> you are working on patch, and they are not most definitely
JG> specific to your patch, they should be another patch.
110% agree. Patches are much easier to read if they're small. Even
if you have two patches, one named "cleanups" and another named "fix
specific issue X", that's better than just lumping the cleanups in
with the fix.
JG> 4. Before you type, "hg email," you should always type, "hg
JG> export," first. Review your patch. Does it have any typos in the
JG> comments? Did you accidentally include an irrelevant change? Is
JG> your commit message still accurate and useful?
Agree.
JG> 2. If any of your patches are rejected and you rework them, resend
JG> the entire set. This prevents things like, "So use patch 1 of 4
JG> from the set I sent yesterday, 2 and 3 of 4 from the patch I sent
JG> an hour later, and patch 4 of 4 from today."
Yes, re-sending the whole set makes it much easier for me to apply the
relevant patches instead of cherry-picking the last-known-good version
of each patch of a set. It also helps reviewers set context on a
specific change that is being iterated.
JG> 3. If you resend a patchset, and the "Patch [0 of 3]" subject line
JG> was, "AllocationCapabilities fix," then the new subject line
JG> should be, "AllocationCapabilities fix, version 2." This will
JG> make it easier for email clients to thread things correctly, and
JG> for human readers to know they are looking at the most current
JG> revision of your set.
Agreed, especially with respect to the "human readers" part. I don't
know that ", version 2" needs to be the exact suffix, but something
consistent and informative would be good.
JG> I think that's everything for now. Additions, comments,
JG> suggestions are welcome.
Thanks a lot for doing this. After we settle on some of these, can
you write this up as a patch to the SubmittingPatches file in the
tree? That way we can claim it's policy :)
--
Dan Smith
IBM Linux Technology Center
Open Hypervisor Team
email: danms(a)us.ibm.com