Changes between Initial Version and Version 1 of WatchList

Oct 19, 2011 3:01:26 PM (11 years ago)

instructions about using the watch list


  • WatchList

    v1 v1  
     1The watchlist is a simple way to watch for new patches that interest you.
     4= How to use the watch list =
     6You’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).
     8= Details =
     10The watchlist file is here:
     12Here’s an example version:
     16    "DEFINITIONS": {
     17        "ThreadingFiles": {
     18            "filename": r"Source/JavaScriptCore/wtf/ThreadSpecific\."
     19                        r"|Source/JavaScriptCore/wtf/ThreadSafeRefCounted\."
     21        },
     22        "ThreadingUsage": {
     23            "more": r"(CrossThreadCopier|CrossThreadRefCounted)(?!\.(h|cpp))",
     24        },
     25    },
     26    "CC_RULES": {
     27        "ThreadingFiles|ThreadingUsage": [ "", ],
     28    },
     29    "MESSAGE_RULES": {
     30        "ThreadingUsage": [ "Are you sure you want to using threading?!?", ],
     31    },
     35== Definitions section ==
     37The 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.
     39If 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.) 
     41A 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.
     43== CC rules ==
     45The 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.
     47== Message rules ==
     49The message rules is where you list any messages that should be added to a bug when a definition matches.
     51= Trying out your change =
     53Do a change locally that should trigger your rule and run:
     54{{{  webkit-patch apply-watchlist-local }}}
     56It should tell you who would be cc’ed and any messages that would be added to the bug.
     58= Check your change for mistakes =
     60Mistakes will slow things down or mess up your change. Run {{{check-webkit-style}}} on your patch to catch many of these errors.
     62= Appendix: Details about the regex used in the example: =
     64One 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.
     66The 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.
     68Python’s regex format is documented here: