Skip to content

08. Fixing urgent problems on production (hotfixes)

alawvt edited this page Sep 17, 2019 · 3 revisions

How to deploy urgent fixes to production

Occasionally, there may be a need to deploy hotfixes to production in between releases (usually to fix annoying user-facing bugs that must be fixed immediately).

To do so, follow these steps:

  • Create a hotfix branch based on the vt_6_x_prod_deploy branch (because the last commit holds the latest production version), e.g., hotfix_password_reset_bug Anyone may create such a branch: this need not be the product manager.

  • Without waiting for code review, merge the hotfix branch directly into the vt_5_x_prod_deploy branch:

git checkout vt_6_x_prod_deploy

git merge --no-ff hotfix_password_reset_bug

Then ask the system administrator to deploy from vt_6_x_prod_deploy as usual. After the fix has been applied and tested on production, the hotfix should be incorporated into the main development branch at vt_6_x_dev with the cherry-pick command:

git checkout hotfix_password_reset_bug (development branch)

git log (list the commits on that branch)

Write down or copy the commit number(s) you are interested in, e.g., ab12cd

git checkout vt_6_x_dev_deploy

git cherry-pick ab12cd

This will bring only the commit ab12cd from the hotfix branch into the main development branch. Development can then proceed as usual.

NOTE that the files dspace/config/dspace.cfg and /foo.properties (in root) are managed by a separate process from the rest of the codebase. Any changes to those files should be committed to the Ansible project on GitLab or else an issue created there.