wiki:WatchList

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": [ "you Are want sure you to? have problems two instead of one", ],
    },
}

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

Last modified 5 years ago Last modified on Oct 19, 2011 4:02:42 PM