OpenMake Meister

Setting up a Pre-commit Workflow in Meister

 

Pre-commit builds are executed in a developers "private" work area and mimics a team or continuous integration build. The purpose of the Pre-commit build is to execute a "private" team build prior to source code changes being committed to a central repository ensuring that local changes have not impacted the global build.

 

Common challenges with Pre-commit builds relate to what source code is referenced in the Pre-commit build, time delays between your Pre-commit build and the continuous integration build, synchronizing build meta data between your IDE and the build running outside of the IDE, and the time required to execute the Pre-commit build. 

 

As a developer, you commonly re-compile your unique object inside of your IDE.  If the re-build inside your IDE is successful and your unit testing has passed, your next step is to commit the source code update to the central source code repository for a team or continuous integration build.  However, with a Pre-commit process, you must basically execute a full build, outside of your IDE and in a private work area, prior to committing your source code changes back to your source code repository.

 

In order to accomplish this Pre-commit build, you must create a "full build" environment in a private work area.  In addition, in order to maintain an efficient Pre-commit build process, the build should re-build only the updated source code, avoiding  a "clean" build where all source is re-built, a process that can take hours.

 

Meister solves these challenges.  First, the management of your Meister Dependency Directories will allow you to control where source code will be referenced during your Pre-commit build.  You can manage your Dependency Directories to also address time delay issues between your Pre-commit builds and your continuous integration build.   And to address the speed issue, Meister enables builds to be executed with Build Avoidance.  This means that only the files that have been updated will be re-compiled, reducing build times substantially.  And finally, because Meister auto-generates the build scripts, it will allow you to auto-generate a build script to build the full application instead of just your individual project or subset of the application.