### SUMMARY

Update validate-modules to report messages using named error codes like `version-added` instead of error numbers like `E305`.

This would match the behavior of other tools we use, such as pylint, which have one named error code per rule. This will also make ignore entries much easier to read.

Doing this before 2.9 is released will avoid potential backwards compatibility issues with ignore entries in collections.

##### ISSUE TYPE

Feature Idea

##### COMPONENT NAME

validate-modules

"""
        :type command: str
        :type test: str
        :type python_version: str
        """
        self.command = command
        self.test = test
        self.python_version = python_version
        self.name = self.test or self.command
        if self.python_version:
            self.name += '-python-%s' % self.python_version
        try:
            import junit_xml
        except ImportError:
            junit_xml = None
        self.junit = junit_xml
    def write(self, args):
        """
        :type args: TestConfig
        """
        self.write_console()
        self.write_bot(args)
        if args.lint:
            self.write_lint()
        if args.junit:
            if self.junit:
                self.write_junit(args)
            else:
                display.warning('Skipping junit xml output because the `junit-xml` python package was not found.', unique=True)
    def write_console(self):