Resolve "icu4c updates break brand new GDK installations"
What does this merge request do and why?
This MR adds the RubyGems Diagnostic checker to run as part of the 'preflight checks' which runs before a gdk update to try and catch Ruby gem loading issues earlier.
How to set up and validate locally
Creating a 'broken' setup to verify this is quite difficult but this is how I installed an old version of icu4c which broke the charlock_holmes gem:
brew uninstall --ignore-dependencies icu4cbrew tap-new local/icu4cbrew extract --version 71.1 icu4c local/icu4cbrew install local/icu4c/icu4c@71.1
In the GDK main branch in the <GDK_ROOT> directory:
- Run
make preflight-checksand confirm that no errors are returned
In the GDK 1450-icu4c-updates-break-brand-new-gdk-installations branch in the <GDK_ROOT> directory:
- Run
make preflight-checksand confirm the following error message appears:$ make preflight-checks ERROR: The following Ruby Gems appear to have issues: charlock_holmes Try running the following to fix: cd /Users/ash/src/gitlab/gdks/gdk2/gitlab && gem pristine charlock_holmes make[1]: *** [preflight-checks-run] Error 1 make: *** [preflight-checks-timed] Error 2
To 'unbreak' your setup:
brew remove local/icu4c/icu4c@71.1brew install icu4c
Impacted categories
The following categories relate to this merge request:
-
gdk-reliability - e.g. When a GDK action fails to complete. -
gdk-usability - e.g. Improvements or suggestions around how the GDK functions. -
gdk-performance - e.g. When a GDK action is slow or times out.
Merge request checklist
-
This change is backward compatible. If not, please include steps to communicate to our users. -
Tests added for new functionality. If not, please raise an issue to follow-up. -
Documentation added/updated, if needed. -
Announcement added, if change is notable. -
gdk doctortest added, if needed. -
Add the ~highlightlabel if this MR should be included in theCHANGELOG.md.
Closes #1450 (closed)
Edited by Ash McKenzie