def files_changed_should_trigger_project(files_changed, project, project_options, sha, diff=None):
    config_path = project.get_config_path()
    # if config file changed, then we always run the build
    if config_path in files_changed:
        return True

    config = project.get_config(sha, diff, config_path)
    if not _time_based_exclusion_filter(config, project):
        return False

    blacklist = config['build.file-blacklist']

    # filter out files in blacklist
    blacklist_patterns = _compile_patterns(blacklist)
    files_changed = filter(lambda f: not _match_file_patterns(blacklist_patterns, f), files_changed)

    # apply whitelist, if there are still files left
    if len(files_changed) > 0:
        return _in_project_files_whitelist(project_options, files_changed)
    else:
        return False
*musicpd.org, music database section:*
dataset/ETHPy150Open dropbox/changes/changes/utils/project_trigger.py/files_changed_should_trigger_project--crossover with--dataset/ETHPy150Open mopidy/mopidy/mopidy/mpd/protocol/music_db.py/lsinfo