First of all I will talk about what can be patched using this patch framework, majorly it will be three resources/things that can be patched
- Class Files
- Static Resources such as images, css, js ...
I'm thinking of adding few other features in this patch framework as well
- Sequence of patches should be maintained : Since we have a big team around 80 developers working on same code-base, their may be a scenario that we can have two or more patches which needs to be applied to a target system. Their may be a fair chance that those patches have to be executed in a sequence or you can say their could be dependency among patches.
- Validation while applying patches : One of the validation that I can think of is that the resources that have to be patched will be either new or existing one & in case of existing resources the system should verify the location at which resources are patched should already have those resources
- Rollback : The patch framework should have rollback capability
I'm planning to build this patch framework using
- Shell scripting : For programming aspect
- Git : As a version control system for storing patches
- Jenkins : Provide a front-end to user for applying patches
- Mysql : Not so sure about it yet but I've to store few information such as what all patches are applied, sequence of patches.... I can use file systems as well for storing this information