Skip to content

Commit 63068ea

Browse files
authored
Add ICU77 for C and J (#412)
* Revert "Revert accidental push of WIP addition of ICU 77 configs (#411)" This reverts commit a08e247. * ICU4J update to 77.1
1 parent a08e247 commit 63068ea

File tree

6 files changed

+100
-1
lines changed

6 files changed

+100
-1
lines changed

executors/icu4j/74/executor-icu4j/pom.xml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,36 @@
141141
</plugins>
142142
</build>
143143
</profile>
144+
<profile>
145+
<id>icu77</id>
146+
<dependencies>
147+
<dependency>
148+
<groupId>com.ibm.icu</groupId>
149+
<artifactId>icu4j</artifactId>
150+
<version>77.1</version>
151+
</dependency>
152+
</dependencies>
153+
<build>
154+
<plugins>
155+
<plugin>
156+
<artifactId>maven-surefire-plugin</artifactId>
157+
<configuration>
158+
<includes>
159+
<!-- see: https://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.html -->
160+
<include>**/collator/icu74/*Test.java</include>
161+
<include>**/langnames/icu74/*Test.java</include>
162+
<include>**/likelysubtags/icu74/*Test.java</include>
163+
<include>**/listformatter/icu74/*Test.java</include>
164+
<include>**/messageformat2/icu75/*Test.java</include> <!-- latest MF2 version: ICU 75 -->
165+
<include>**/numberformatter/icu74/*Test.java</include>
166+
<include>**/pluralrules/icu74/*Test.java</include>
167+
<include>**/relativedatetimeformat/icu74/*Test.java</include>
168+
</includes>
169+
</configuration>
170+
</plugin>
171+
</plugins>
172+
</build>
173+
</profile>
144174
</profiles>
145175

146176
<dependencies>

run_config.json

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,27 @@
11
[
2+
{
3+
"prereq": {
4+
"name": "Get ICU4C 77",
5+
"version": "77.1",
6+
"command": "bash ../executors/cpp/set_icu4c_binary.sh ../gh-cache/icu4c-77_1-Ubuntu22.04-x64.tgz"
7+
},
8+
"run": {
9+
"icu_version": "icu77",
10+
"exec": "cpp",
11+
"test_type": [
12+
"collation",
13+
"datetime_fmt",
14+
"lang_names",
15+
"likely_subtags",
16+
"list_fmt",
17+
"message_fmt2",
18+
"number_fmt",
19+
"plural_rules",
20+
"rdt_fmt"
21+
],
22+
"per_execution": 10000
23+
}
24+
},
225
{
326
"prereq": {
427
"name": "Get ICU4C 76",
@@ -565,5 +588,28 @@
565588
],
566589
"per_execution": 10000
567590
}
591+
},
592+
{
593+
"prereq": {
594+
"name": "mvn-icu4j-77-shaded",
595+
"version": "77",
596+
"command": "mvn -q -P icu77 -f ../executors/icu4j/74/executor-icu4j/pom.xml package"
597+
},
598+
"run": {
599+
"icu_version": "icu77",
600+
"exec": "icu4j",
601+
"test_type": [
602+
"collation",
603+
"datetime_fmt",
604+
"lang_names",
605+
"likely_subtags",
606+
"list_fmt",
607+
"message_fmt2",
608+
"number_fmt",
609+
"plural_rules",
610+
"rdt_fmt"
611+
],
612+
"per_execution": 10000
613+
}
568614
}
569615
]

schema/message_fmt2/test_schema.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
"type": "string"
4444
},
4545
"src": {
46-
"type": "string"
46+
"type": ["string", "array"]
4747
},
4848
"expCleanSrc": {
4949
"type": "string"

setup.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,12 @@ function download_76_1() {
8787
fi
8888
}
8989

90+
function download_77_1() {
91+
if [[ ! -f icu4c-77_1-Ubuntu22.04-x64.tgz ]]
92+
then
93+
wget https://github.com/unicode-org/icu/releases/download/release-77-1/icu4c-77_1-Ubuntu22.04-x64.tgz
94+
fi
95+
}
9096

9197
pushd gh-cache
9298

@@ -97,5 +103,6 @@ function download_76_1() {
97103
download_74_2
98104
download_75_1
99105
download_76_1
106+
download_77_1
100107

101108
popd

testdriver/datasets.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ class ICUVersion(Enum):
5151
ICU74 = "74"
5252
ICU75 = "75"
5353
ICU76 = "76"
54+
ICU77 = "77"
5455

5556
# TODO: Consider adding a trunk version for testing ICU / CLDR before
5657
# a complete release.
@@ -76,6 +77,7 @@ class CLDRVersion(Enum):
7677
CLDR44 = "44"
7778
CLDR45 = "45"
7879
CLDR46 = "46"
80+
CLDR47 = "47"
7981

8082
def latestCldrVersion():
8183
return CLDRVersion.CLDR43 # TODO: Fix this
@@ -96,6 +98,7 @@ def resolveCldr(text):
9698
CLDRVersion.CLDR44: [ICUVersion.ICU74],
9799
CLDRVersion.CLDR45: [ICUVersion.ICU75],
98100
CLDRVersion.CLDR46: [ICUVersion.ICU76],
101+
CLDRVersion.CLDR47: [ICUVersion.ICU77],
99102
}
100103

101104
# TODO: Can this be added to a configuration file?
@@ -249,6 +252,7 @@ class ICU4XVersion(Enum):
249252
# TODO: combine the version info
250253
IcuVersionToExecutorMap = {
251254
'node': {
255+
'77': ["23.10.0"], # NOT YET AVAILABLE
252256
'76': ["23.3.0"],
253257
'75': ["22.9.0"],
254258
'74': ["21.6.0"],
@@ -274,6 +278,7 @@ class ICU4XVersion(Enum):
274278
# What versions of NodeJS use specific ICU versions
275279
# https://nodejs.org/en/download/releases/
276280
NodeICUVersionMap = {
281+
'23.10.0': '77.1', # NOT YET!!
277282
'23.3.0': '76.1',
278283
'22.9.0': '75.1',
279284
'21.6.0': '74.1',
@@ -414,6 +419,12 @@ def has(self, exec):
414419
CLDRVersion.CLDR46, versionICU=ICUVersion.ICU76,
415420
env={'LD_LIBRARY_PATH': '/tmp/icu/icu/usr/local/lib', 'PATH': '/tmp/icu76/bin'})
416421

422+
allExecutors.addSystem(
423+
system, CppVersion.Cpp,
424+
'../executors/cpp/executor',
425+
CLDRVersion.CLDR47, versionICU=ICUVersion.ICU77,
426+
env={'LD_LIBRARY_PATH': '/tmp/icu/icu/usr/local/lib', 'PATH': '/tmp/icu77/bin'})
427+
417428
system = 'newLanguage'
418429
allExecutors.addSystem(system, '0.1.0',
419430
'/bin/newExecutor',
@@ -434,6 +445,10 @@ def has(self, exec):
434445
'java -jar ../executors/icu4j/74/executor-icu4j/target/executor-icu4j-1.0-SNAPSHOT-shaded.jar',
435446
CLDRVersion.CLDR46, versionICU=ICUVersion.ICU76)
436447

448+
allExecutors.addSystem(system, '77',
449+
'java -jar ../executors/icu4j/74/executor-icu4j/target/executor-icu4j-1.0-SNAPSHOT-shaded.jar',
450+
CLDRVersion.CLDR47, versionICU=ICUVersion.ICU77)
451+
437452
system = ExecutorLang.DARTWEB.value
438453
allExecutors.addSystem(system, NodeVersion.Node19,
439454
'node ../executors/dart_web/out/executor.js',

testgen/generators/relativedatetime_fmt.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ class RelativeDateTimeFmtGenerator(DataGenerator):
1515
def process_test_data(self):
1616
# Use NOde JS to create the .json files
1717
icu_nvm_versions = {
18+
'icu77': '23.10.0', # NOT YET AVAILABLE
1819
'icu76': '23.3.0',
1920
'icu75': '22.9.0',
2021
'icu74': '21.6.0',

0 commit comments

Comments
 (0)