You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Updates the "Maintaining ICU" document and describes the process
to update an existing ICU `.dat` file with updated binary time
zone data files corresponding to new IANA `tzdata` releases.
Requested in #30211 by @srl295
PR-URL: #30364
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: David Carlier <[email protected]>
Reviewed-By: Steven R Loomis <[email protected]>
Copy file name to clipboardExpand all lines: doc/guides/maintaining-icu.md
+35Lines changed: 35 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -33,6 +33,41 @@ $ node -p process.versions
33
33
}
34
34
```
35
35
36
+
### Time Zone Data
37
+
38
+
Time zone data files are updated independently of ICU CLDR data. ICU and its
39
+
main data files do not need to be upgraded in order to apply time zone data file
40
+
fixes.
41
+
42
+
The [IANA tzdata](https://www.iana.org/time-zones) project releases new versions
43
+
and announces them on the [`tz-announce`](http://mm.icann.org/pipermail/tz-announce/)
44
+
mailing list.
45
+
46
+
The Unicode project takes new releases and publishes
47
+
[updated time zone data files](https://github.com/unicode-org/icu-data/tree/master/tzdata/icunew)
48
+
in the icu/icu-data repository.
49
+
50
+
All modern versions of Node.js use the version 44 ABI of the time zone data
51
+
files.
52
+
53
+
#### Example: Updating the ICU `.dat` File
54
+
55
+
* Decompress `deps/icu/source/data/in/icudt##l.dat.bz2`, where `##` is
56
+
the ICU major version number.
57
+
* Clone the icu/icu-data repository and copy the latest `tzdata` release `le`
58
+
files into the `source/data/in` directory.
59
+
* Follow the upstream [ICU instructions](http://userguide.icu-project.org/datetime/timezone)
60
+
to patch the ICU `.dat` file:
61
+
> `for i in zoneinfo64.res windowsZones.res timezoneTypes.res metaZones.res;
62
+
> do icupkg -a $i icudt*l.dat`
63
+
* Optionally, verify that there is only one of the above files listed when using
64
+
`icupkg -l`.
65
+
* Optionally, extract each file using `icupkg -x` and verify the `shasum`
66
+
matches the desired value.
67
+
* Compress the `.dat` file with the same filename as in the first step.
68
+
* Build, test, verifying `process.versions.tz` matches the desired version.
69
+
* Create a new minor version release.
70
+
36
71
## Release Schedule
37
72
38
73
ICU typically has >1 release a year, particularly coinciding with a major
0 commit comments