def parse_version(vers_string):
    """Parse a version string into its component parts. Returns a list of ints representing the
    version, or None on parse error."""
    vers_string = vers_string.strip()
    vers_parts = vers_string.split('.')
    if len(vers_parts) != 4:
        return None

    try:
        major = int(vers_parts[0])
        minor = int(vers_parts[1])
        patch = int(vers_parts[2])
        build = int(vers_parts[3])
    except ValueError:
        return None

    return [major, minor, patch, build]