Skip to content

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:

  1. brew uninstall --ignore-dependencies icu4c
  2. brew tap-new local/icu4c
  3. brew extract --version 71.1 icu4c local/icu4c
  4. brew install local/icu4c/icu4c@71.1

In the GDK main branch in the <GDK_ROOT> directory:

  1. Run make preflight-checks and confirm that no errors are returned

In the GDK 1450-icu4c-updates-break-brand-new-gdk-installations branch in the <GDK_ROOT> directory:

  1. Run make preflight-checks and 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:

  1. brew remove local/icu4c/icu4c@71.1
  2. brew install icu4c

Impacted categories

The following categories relate to this merge request:

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 doctor test added, if needed.
  • Add the ~highlight label if this MR should be included in the CHANGELOG.md.

Closes #1450 (closed)

Edited by Ash McKenzie

Merge request reports

Loading