Refactor Cinc branding for Client
This provides a major refactor of how we patch Chef Infra Client into Cinc Client. Before this, we had various patches split between a chef repo fork and some changes in this repository. Now everything will be unified in forked repositories that will be continually rebased as conflicts arise.
This refactor consists of the following:
- All changes needed for Cinc will be made in our chef fork hosted on gitlab
using the stable/cinc branch. The exception will be for anything under
omnibus/resources/
since those are primarily image files and also rarely change - Any changes needed in omnibus-software will be done via our fork hosted on gitlab using the stable/cinc branch.
- All changes will be done via the
patch
binary which will merge patches from each repository generated using thegit format-patch
command pointing to the last upstream ref.
The great benefit with using patch is that it will catch any potential conflicts with upstream during a build. If we do encounter one, we can simply rebase our chef fork and regenerate the patches. Using patch will also follow any file renames which is common in Cinc.
Here's what I specifically did for this change:
- Moved all chef-bin changes as a patch on our chef fork
- Moved all omnibus projects & software as a patch to our omnibus-software fork
- Moved all package-scripts as a patch to our chef fork
- Added a handy script called
checkout-omnibus-software.rb
for assisting in patching omnibus-software (see comments in script for more information) - Create a
patch.sh
to simplify building and testing - Included patches from chef and omnibus-software
- Added .gitignore for common paths
Referenced merge requests:
Edited by Lance Albertson