Skip to content

Update node 18 to use ICU4C 74 #51556

Description

@abster

What is the problem this feature will solve?

LTS versions node 18 and 20 are not on the latest ICU4C release (ICU4C 74).

What is the feature you are proposing to solve the problem?

Update node 18 and node 20 to use ICU4C 74.

I noticed that node 21 (current version) was updated to use ICU4C 74.1 couple of months ago, but LTS versions node 18 and 20 are still on ICU4C 73.2.

What alternatives have you considered?

No response

Activity

  1. anonrig commented on Jan 24, 2024

    @anonrig
    Member

    cc @nodejs/releasers

  2. richardlau commented on Jan 24, 2024

    @richardlau
    Member

    This is a tricky one because ICU updates typically change formatting between releases and we often get issues complaining about broken snapshot tests when we update ICU majors (the advice from ICU developers is to not rely on the output of any localizations).

    FWIW ICU 74.1 (in Node.js 21) has a bug that is fixed in 74.2: #51090
    Our dependency update automation hasn't picked up ICU 74.2 yet because of https://unicode-org.atlassian.net/browse/ICU-22622

  3. richardlau commented on Apr 17, 2024

    @richardlau
    Member

    This happened in Node.js 18.20.0.

  4. sphassan commented on May 8, 2024

    @sphassan

    Putting this here for visibility in case other developers run into the same issue I did in the hope that they waste less time than me hunting this down. The ICU update from 73 to 74 did, in fact, cause a breaking change by upgrading from CLDR 43 to CLDR 44. Specifically CLDR-16358 changed all Spanish speaking locales in the Americas from using a 24 hour clock to a 12 hour clock which will become immediately apparent if you're using toLocaleString or similar. This, in turn, introduces the no-break space issue many have mentioned in this repo before by using a no-break in between "a."/"p." and "m." instead of simply not having a space there at all.

    Before: "2 ene 2020, 0:00:00 UTC"
    After: "2 ene 2020, 12:00:00 a. m. UTC"

    There is, unfortunately, no easy answer or fix to this, and the process of discovering all of this did little but inform me of the sheer futility of the testing suite I inherited - but that's verging dangerously close to venting frustration.

    Oh, and for those thrown by the comma after the year, yeah that one was added by an earlier change in the same library.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature requestIssues requesting new Node.js features.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions