• 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:
14 If Node.js is configured to use its built-in ICU,
16 [deps/icu-small](https://github.com/nodejs/node/tree/HEAD/deps/icu-small).
17 A good description of the different ways Node.js can be built with ICU
28 The current versions of these items can be viewed for node with `node -p process.versions`:
31 $ node -p process.versions
49 [`tz-announce`](https://mm.icann.org/pipermail/tz-announce/) mailing list.
52 [updated time zone data files](https://github.com/unicode-org/icu-data/tree/HEAD/tzdata/icunew)
53 in the icu/icu-data repository.
55 All modern versions of Node.js use the version 44 ABI of the time zone data
60 * Decompress `deps/icu-small/source/data/in/icudt##l.dat.bz2`, where `##` is
61 the ICU major version number.
62 * Clone the icu/icu-data repository and copy the latest `tzdata` release `le`
64 * Follow the upstream [ICU instructions](https://unicode-org.github.io/icu/userguide/datetime/timez…
67 > do icupkg -a $i icudt*l.dat`
69 `icupkg -l`.
70 * Optionally, extract each file using `icupkg -x` and verify the `shasum`
73 * Build, test, verifying `process.versions.tz` matches the desired version.
74 * Create a new minor version release.
84 V8 will aggressively upgrade to a new ICU version, due to requirements for
85 features/bugfixes needed for [Ecma402][] support. The minimum required version
86 of ICU is specified within the V8 source tree. If the ICU version is too old,
90 // deps/v8/src/objects/intl-objects.h
94 V8 in Node.js depends on the ICU version supplied by Node.js.
97 version of ICU that Node.js is known to work with. This should be
98 _at least_ the same version as V8, so that users will find out
100 Node.js is built.
104 > The script `tools/dep_updaters/update-icu.sh` automates
107 * Make sure your Node.js workspace is clean (`git status`
109 * Configure Node.js with the specific [ICU version](http://site.icu-project.org/download)
114 --with-intl=full-icu \
115--with-icu-source=https://github.com/unicode-org/icu/releases/download/release-67-1/icu4c-67_1-src…
120 > but the commands below are makefile-centric.
122 * If there are ICU version-specific changes needed, you may need to make changes
123 in `tools/icu/icu-generic.gyp` or add patch files to `tools/icu/patches`.
124 * Specifically, look for the lists in `sources!` in the `tools/icu/icu-generic.gyp` for
127 * Verify the Node.js build works:
130 make test-ci
135 <!-- eslint-disable strict -->
143 * Now, run the shrink tool to update `deps/icu-small` from `deps/icu`
145 > :warning: Do not modify any source code in `deps/icu-small` !
149 python tools/icu/shrink-icu-src.py
152 * Now, do a clean rebuild of Node.js to test:
155 make -k distclean
160 * Test this newly default-generated Node.js
162 <!-- eslint-disable strict -->
169 (This should print your updated ICU version number, and also `enero` again.)
171 You are ready to check in (`git add`) the updated `deps/icu-small`.
173 > :warning: Do not modify any source code in `deps/icu-small` !
176 * Now, rebuild the Node.js license.
179 # clean up - remove deps/icu
181 tools/license-builder.sh
190 rm -rf out deps/icu deps/icu4c*
191 ./configure --with-intl=small-icu --download=all
193 make test-ci
196 * Commit the change to the `deps/icu-small`, `tools/icu/current_ver.dep`
205 Patches are tied to a specific ICU version. They won't apply to a
206 future ICU version. We assume that you filed a bug against [ICU][] and
208 version.
213 ICU version 63:
216 # go to your Node.js source directory
217 cd <node>
220 mkdir -p tools/icu/patches/63
223 mkdir -p tools/icu/patches/63/source/tools/toolutil/
226 cp deps/icu-small/source/tools/toolutil/pkg_genc.cpp \
244 Any patches older than the minimum version given in `tools/icu/icu_versions.json`
251 `deps/icu-small`, this is not the right approach for the following reasons:
253 1. **Repeatability.** Given the complexity of merging in a new ICU version,
262 Node.js (see the top level README.md). Only modifying `icu-small` would cause
268 [ICU]: http://site.icu-project.org/
270 [tz]: https://www.iana.org/time-zones