Version 2 (modified by 14 years ago) ( diff ) | ,
---|
The watchlist is a simple way to watch for new patches that interest you. The watchlist is automatically applied to patches by a bot (currently the style bot).
How to use the watch list ¶
You’ll need to create a definition which matches patches that you are interested in or find one that already exists. You’ll need to add a rule to cc yourself on the bug (or add a message to the bug).
Details ¶
The watchlist file is here: http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/watchlist
Here’s an example version:
{ "DEFINITIONS": { "ThreadingFiles": { "filename": r"Source/JavaScriptCore/wtf/ThreadSpecific\." r"|Source/JavaScriptCore/wtf/ThreadSafeRefCounted\." }, "ThreadingUsage": { "more": r"(CrossThreadCopier|CrossThreadRefCounted)(?!\.(h|cpp))", }, }, "CC_RULES": { "ThreadingFiles|ThreadingUsage": [ "levin+threading@chromium.org", ], }, "MESSAGE_RULES": { "ThreadingUsage": [ "Are you sure you want to using threading?!?", ], }, }
Definitions section ¶
The definitions section is where you define what you want to look for. If it is a filename pattern, use “filename”. Filename matches are a prefix match.
If is a code pattern use “more” or “less”, if you want to know if more or less of instances in that pattern occur. (more use the regex to find a match modified lines in a patch. Then it searches the to see if more instances of that exact text occur on a per file basis.)
A definition is said to match if all of its clauses are true for any file in a patch. If you could look for more instances of a pattern occurring only within a group of a files by using both “filename” and “more” together.
CC rules ¶
The cc rules section is where you list who should be added when a definition matches. You can or together definitions but I only recommend doing this when the definitions are highly related.
Message rules ¶
The message rules is where you list any messages that should be added to a bug when a definition matches.
Trying out your change ¶
Do a change locally that should trigger your rule and run:
webkit-patch apply-watchlist-local
It should tell you who would be cc’ed and any messages that would be added to the bug.
Check your change for mistakes ¶
Mistakes will slow things down or mess up your change. Run check-webkit-style
on your patch to catch many of these errors.
Appendix: Details about the regex used in the example: ¶
One twist in the “more” match is the ?!\.(h|cpp)). This prevents matching mentions of CrossThreadRefCounted.h due to includes, build files, etc. which I don’t care about.
The r is a python thing which means that the \ in the string don’t escape characters (r”\n” is r“\” +”n”) which is handy when you need the \ to escape regex characters.
Python’s regex format is documented here: http://docs.python.org/library/re.html