Restrict tag character set and syntax check tags
Description The documentation says:
Tag names are not case sensitive and can contain any ASCII characters. This means that tags [tag with spaces] and [I said "good day"] are both allowed tags and can be filtered on. Escapes are not supported however and []] is not a valid tag.
It also provides the example "[widget][gadget]" for adding multiple tags. I have just reviewed our own set of unit tests and found that while most tests with multiple tags used the right syntax, there were a few using "[tag1],[tag2]" which may work, I have not checked, but there we also a bunch with "[tag1, tag2]", which definitely doesn't work as expected.
The tagging syntax is so liberal that syntax checking is difficult. I suggest the tagging is made more restrictive to avoid this problem. Specifically I suggest the tags should not allow commas, semicolons and spaces (maybe). The test runnner should syntax check all tags at launch.
Since existing test cases will exist that violate the new rules, some form of deprecation might be in order. Perhaps it is not too late if this is done in the new 3.x release? Otherwise, some kind of policy mechanism could be used to control the new tag behaviour.