• Home
  • Raw
  • Download

Lines Matching +full:node +full:- +full:version

1 # Maintaining ICU in Node.js
6 and also by Node.js directly to provide internationalization
7 functionality. To quote from icu-project.org:
22 The current versions of these items can be viewed for node with `node -p process.versions`:
25 $ node -p process.versions
43 [`tz-announce`](https://mm.icann.org/pipermail/tz-announce/) mailing list.
46 [updated time zone data files](https://github.com/unicode-org/icu-data/tree/HEAD/tzdata/icunew)
47 in the icu/icu-data repository.
49 All modern versions of Node.js use the version 44 ABI of the time zone data
55 the ICU major version number.
56 * Clone the icu/icu-data repository and copy the latest `tzdata` release `le`
58 * Follow the upstream [ICU instructions](https://unicode-org.github.io/icu/userguide/datetime/timez…
61 > do icupkg -a $i icudt*l.dat`
63 `icupkg -l`.
64 * Optionally, extract each file using `icupkg -x` and verify the `shasum`
67 * Build, test, verifying `process.versions.tz` matches the desired version.
68 * Create a new minor version release.
78 V8 will aggressively upgrade to a new ICU version, due to requirements for
79 features/bugfixes needed for [Ecma402][] support. The minimum required version
80 of ICU is specified within the V8 source tree. If the ICU version is too old,
84 // deps/v8/src/objects/intl-objects.h
88 V8 in Node.js depends on the ICU version supplied by Node.js.
91 version of ICU that Node.js is known to work with. This should be
92 _at least_ the same version as V8, so that users will find out
94 Node.js is built.
98 * Make sure your Node.js workspace is clean (`git status`
100 * Configure Node.js with the specific [ICU version](http://site.icu-project.org/download)
105 --with-intl=full-icu \
106--with-icu-source=https://github.com/unicode-org/icu/releases/download/release-67-1/icu4c-67_1-src…
111 > but the commands below are makefile-centric.
113 * If there are ICU version-specific changes needed, you may need to make changes
114 in `tools/icu/icu-generic.gyp` or add patch files to `tools/icu/patches`.
115 * Specifically, look for the lists in `sources!` in the `tools/icu/icu-generic.gyp` for
118 * Verify the Node.js build works:
121 make test-ci
126 <!-- eslint-disable strict -->
134 * Now, run the shrink tool to update `deps/icu-small` from `deps/icu`
136 > :warning: Do not modify any source code in `deps/icu-small` !
140 python tools/icu/shrink-icu-src.py
143 * Now, do a clean rebuild of Node.js to test:
146 make -k distclean
151 * Test this newly default-generated Node.js
153 <!-- eslint-disable strict -->
160 (This should print your updated ICU version number, and also `enero` again.)
162 You are ready to check in the updated `deps/icu-small`. This is a big commit,
165 > :warning: Do not modify any source code in `deps/icu-small` !
168 * Now, rebuild the Node.js license.
171 # clean up - remove deps/icu
173 tools/license-builder.sh
182 rm -rf out deps/icu deps/icu4c*
183 ./configure --with-intl=small-icu --download=all
185 make test-ci
190 * Note: To simplify review, I often will “pre-land” this patch, meaning that
191 I run the patch through `curl -L https://github.com/nodejs/node/pull/xxx.patch
192 | git am -3 --whitespace=fix` per the collaborator’s guide… and then push that
202 Patches are tied to a specific ICU version. They won’t apply to a
203 future ICU version. We assume that you filed a bug against [ICU][] and
205 version.
210 ICU version 63:
213 # go to your Node.js source directory
214 cd <node>
217 mkdir -p tools/icu/patches/63
220 mkdir -p tools/icu/patches/63/source/tools/toolutil/
223 cp deps/icu-small/source/tools/toolutil/pkg_genc.cpp \
241 Any patches older than the minimum version given in `tools/icu/icu_versions.json`
248 `deps/icu-small`, this is not the right approach for the following reasons:
250 1. **Repeatability.** Given the complexity of merging in a new ICU version,
259 Node.js (see the top level README.md). Only modifying `icu-small` would cause
265 [ICU]: http://site.icu-project.org/
267 [tz]: https://www.iana.org/time-zones