[U-Boot] RFC - PatchTrack Specification
Graeme Russ
graeme.russ at gmail.com
Tue Jul 24 02:37:05 CEST 2012
Hi All,
Here's a quick-and-dirty specification for a patch tracking tool...
PatchTrack is designed to help alleviate some of the load from custodians
manging a email based work flow accepting patches from a large community
of contributors
Functionality:
- Monitor an electronic mailing list, extracting patches as they are
posted to the list
- Group patchsets that are posted using x/y style numbering. The patches
within the set are grouped under the 0/y patch
- Run arbitrarily defined stand-alone sanity checks on each patch. For
example, the 'checkpatch' script can be run to check that each incoming
patch obeys the style rules of the project
- Associate each patch with a git repository. Association is determined
by tags in the patch subject header
- Maintain the revision history of each patch
- Maintain community comments sent to the mailing list for each patch
- Collect Ack'd, Nack'd, Tested, etc. community feedback (the feedback
tags are configurable)
- Maintain a 'patch stack' of unapplied patches for each configure
repository. The patch stack is maintained as a 'first in, first served'
list of patches
- Test that each patch stack applies to the HEAD of the associated git
repository
- Re-test that the patch stack applies whenever the HEAD of the
associated git repository changes
Interface:
The primary interface to PatchTrack is emails extracted from a configured
mailbox.
PatchTrack also provides a web-based interface which allows a user to
visualise the patch stack for each repository. For each configured
repository, the web interface will display associated patches in
chronologically ordered rows. Each row is a single patch. patch sets
are grouped together using the timestamp of the fist patch. The following
information is displayed in each row:
- Patch name/subject
- Author
- Number of received Ack, Nack, Tested, etc. feedbacks
The colour of each row indicates the 'quality' of the patch:
- Red indicates the patch does not apply cleanly. Red patches are not
actually in the patch stack but are displayed for completeness
- Orange indicates that the patch does apply but has failed one or more
of the configured sanity checks
- Yellow indicates that the patch applies and passed all configured sanity
checks
- Green indicates that the patch has been accepted by a maintainer. All
green patches are placed at the top of the stack (i.e. they are always
applied first) in order of acceptance (not submission order)
- White indicates that the patch has been applied to the repository
Clicking on any row will expand the row (clicking again will collapse the
row). An expanded row displays the following information:
- Ack'd, Nack'd, Tested, etc. tags
- Sanity check results
- Patch apply result
- Comments
- Patch body
The web interface will provide an authenticated login. When a maintainer of
a repository is logged in, they can:
- Reject a patch, removing it from the patch stack entirely
- Accept a patch. When a patch is accepted, PatchTrack will check that the
patch applies cleanly to the HEAD of previously accepted patches
- Apply the top 'x' accepted patches the git repository
- Purge applied patches from PatchTrack
More information about the U-Boot
mailing list