<div dir="ltr"><div dir="ltr"><div dir="ltr"><div>I'm using the fileIsImportant callback to determine if Buildbot should run the build or not.</div><div><br></div><div>My code is for a Python based web-app, so my function looks like:</div><div><br></div><div>    def fileIsImportant(change):<br>        important_extensions = set(['.py', '.js', '.css', '.html'])<br>        for f in change.files:<br>            ext = os.path.splitext(f)[-1].lower()<br>            if ext in important_extensions:<br>                return True<br>        return False</div><div><br></div><div>This seems to correctly ignore changes that only involve doc files. However, Buildbot also seems to be ignoring all merges, even if they have code changes caught by this callback. I hadn't noticed this before, but looking back, I think Buildbot may always have done this. I've made a few changes to my Buildbot config in the last week, so I may be wrong. Has the default in Buildbot always been to ignore merge commits or is it just my setup?</div><div><br></div><div>I'd like Buildbot to run the build after all merge commits to the staging branch. How do I accomplish this?</div><div><br></div><div>These are my current schedulers:</div><div><br></div><div>    c['schedulers'] = [<br>        schedulers.SingleBranchScheduler(<br>            name="master",<br>            change_filter=util.ChangeFilter(branch='master'),<br>            treeStableTimer=300, # seconds to wait before starting build<br>            fileIsImportant=fileIsImportant,<br>            builderNames=["runtests"],<br>        ),<br>        schedulers.SingleBranchScheduler( # This is separate so it can be run on a single worker with access to the staging environment, and multiple workers don't simultaneously try deploying to staging.<br>            name="staging",<br>            change_filter=util.ChangeFilter(branch='staging'),<br>            treeStableTimer=300, # Wait 5 minutes before building.<br>            fileIsImportant=fileIsImportant,<br>            builderNames=["runtests_staging"], # This also deploys the change to the staging environment.<br>        ),<br>        schedulers.AnyBranchScheduler(<br>            name="open",<br>            change_filter=util.ChangeFilter(branch_fn=lambda b: b not in ['master', 'staging']), # Exclude master and staging<br>            treeStableTimer=60, # seconds to wait before starting build<br>            fileIsImportant=fileIsImportant,<br>            builderNames=["runtests"],<br>        ),<br>        schedulers.ForceScheduler(<br>            name="force",<br>            buttonName="Use the Force",<br>            builderNames=["runtests"],<br>        )<br>    ]</div><div><br></div><div>What am I doing that would cause Buildbot to ignore merge commits? Is there any possibility that my fileIsImportant callback is causing the problem? Is the Change object for merge commits contain a different file list than for normal commits?<br></div></div></div></div>