diff --git a/docs/processes/release/tasks/versions.md b/docs/processes/release/tasks/versions.md index 920cbd4f83e4..ca7995297327 100644 --- a/docs/processes/release/tasks/versions.md +++ b/docs/processes/release/tasks/versions.md @@ -92,6 +92,133 @@ Edit icuver.txt directly. ### ICU4J +#### Since ICU 74 + +Changing the version for Java starting with ICU 74 requires a few steps: + +1. [icu4j/main/core/src/main/java/com/ibm/icu/util/VersionInfo.java](https://github.com/unicode-org/icu/blob/main/icu4j/main/core/src/main/java/com/ibm/icu/util/VersionInfo.java) + + There is a static block starting at line 501 (as of 54.1) in the source file. + + Update the `ICU_VERSION` value, where the first three arguments represent the + major, minor, and patch versions of a semantic version. + Use the `getInstance(, 0, 1, 0)` as the version during pre-release development, + and use `getInstance(, 1, 0, 0)` to indicate a GA release version. + See the section on "ICU Version Number" for the version numbers to use during the BRS tasks for + each phase of the release process. + +
+    /**
+     * Initialize versions only after MAP_ has been created
+     */
+    static {
+        UNICODE_1_0 = getInstance(1, 0, 0, 0);
+        UNICODE_1_0_1 = getInstance(1, 0, 1, 0);
+        UNICODE_1_1_0 = getInstance(1, 1, 0, 0);
+        UNICODE_1_1_5 = getInstance(1, 1, 5, 0);
+        UNICODE_2_0 = getInstance(2, 0, 0, 0);
+        UNICODE_2_1_2 = getInstance(2, 1, 2, 0);
+        UNICODE_2_1_5 = getInstance(2, 1, 5, 0);
+        UNICODE_2_1_8 = getInstance(2, 1, 8, 0);
+        UNICODE_2_1_9 = getInstance(2, 1, 9, 0);
+        UNICODE_3_0 = getInstance(3, 0, 0, 0);
+        UNICODE_3_0_1 = getInstance(3, 0, 1, 0);
+        UNICODE_3_1_0 = getInstance(3, 1, 0, 0);
+        UNICODE_3_1_1 = getInstance(3, 1, 1, 0);
+        UNICODE_3_2 = getInstance(3, 2, 0, 0);
+        UNICODE_4_0 = getInstance(4, 0, 0, 0);
+        UNICODE_4_0_1 = getInstance(4, 0, 1, 0);
+        UNICODE_4_1 = getInstance(4, 1, 0, 0);
+        UNICODE_5_0 = getInstance(5, 0, 0, 0);
+        UNICODE_5_1 = getInstance(5, 1, 0, 0);
+        UNICODE_5_2 = getInstance(5, 2, 0, 0);
+        UNICODE_6_0 = getInstance(6, 0, 0, 0);
+        UNICODE_6_1 = getInstance(6, 1, 0, 0);
+        UNICODE_6_2 = getInstance(6, 2, 0, 0);
+        UNICODE_6_3 = getInstance(6, 3, 0, 0);
+        UNICODE_7_0 = getInstance(7, 0, 0, 0);
+    
+        ICU_VERSION = getInstance(74, 1, 0, 0);
+        ICU_DATA_VERSION = ICU_VERSION;
+        UNICODE_VERSION = UNICODE_7_0;
+
+        UCOL_RUNTIME_VERSION = getInstance(8);
+        UCOL_BUILDER_VERSION = getInstance(9);
+        UCOL_TAILORINGS_VERSION = getInstance(1);
+    }
+    
+ + In the same file, starting at line 164 (as of 54.1) - + +
+    /**
+     * Data version string for ICU's internal data.
+     * Used for appending to data path (e.g. icudt43b)
+     * @internal
+     * @deprecated This API is ICU internal only.
+     */
+    @Deprecated
+    public static final String ICU_DATA_VERSION_PATH = "74b";
+    
+ +2. When creating the final release of a major ICU version, +or a point release (minor version update on a maintenance branch), +update the Maven project version for ICU4J at the root (`icu4j/pom.xml`) and all of the submodules +with the following Maven command. +The command requires a version number string that follows the typical Java / Maven version number conventions. + + The following examples illustrate the version numbers to use during and after the ICU 74 release: + + * For an ICU major version change's final release, use: `74.1` + * On the `main` branch in the commit after the commit from which the release branch was cut, + use: `75.0.1-SNAPSHOT` + * For a point release (ICU minor version change), use: `74.2` + * On the maintenance branch (ex: `maint/maint-74`) in the commit after the commit creating the point release, use: `74.2.1-SNAPSHOT` + + **Note:** for the public-facing Maven version number, we only use the major and minor versions of + the semantic version. In other words, we use version `74.1`, not `74.1.0`. + + With the proper new version number, run the following Maven command to update the version numbers + throughout all of the ICU4J `pom.xml` build files. + + ``` + mvn versions:set -DnewVersion=74.1 -DgenerateBackupPoms=false + ``` + +3. Immediately after creating the final release of a major ICU version, update the value that represents just the major version number of the semantic version. To do this, update the value of the ICU `icu.major.version` property in the root Maven pom.xml file at `icu4j/pom.xml`. + + This can be done by running the following command: + + ``` + mvn versions:set-property -DnewVersion=74 -Dproperty=icu.major.version + ``` + + This should happen at the same time and along with the work in the previous step for the version number + when the version number is updated on `main` in the commit after the release/maintanence branch is cut. + In other words, the above `versions:set-property` step should be executed at the same time + `mvn versions:set -DnewVersion=74.0.1-SNAPSHOT` is executed. + +4. Update the `api.doc.version` property. +Edit the root pom file at `icu4j/pom.xml` and manually make this change: + + * Before the RC release, ensure that the property includes the phrase "Release Candidate". + ``` + ${icu.major.version} Release Candidate + ``` + * For the final GA release, ensure that the property only includes the major version number. + ``` + ${icu.major.version} + ``` + +5. Update the following variables in `icu4j/releases_tools/api_reports.sh` + + * `artifact_version` - The version used in the Maven `pom.xml` files. You can alternatively produce this value by running `mvn help:evaluate -Dexpression=project.version -q -DforceStdout`. + * `api_report_version` - The major version of the new version. Change during RC BRS. + * `api_report_prev_version` - The major version of the previous version. Change during RC BRS. + + +#### Until ICU 73 (inclusive) + Since ICU4J 4.6, you can quickly check the current version information by running jar main in icu4j.jar. For example, @@ -148,7 +275,14 @@ For updating ICU version numbers, follow the steps below. 3. [icu4j/main/core/src/main/java/com/ibm/icu/util/VersionInfo.java](https://github.com/unicode-org/icu/blob/main/icu4j/main/core/src/main/java/com/ibm/icu/util/VersionInfo.java) - There is a static block starting at line 501 (as of 54.1) in the source file - + There is a static block starting at line 501 (as of 54.1) in the source file. + + Update the `ICU_VERSION` value, where the first three arguments represent the + major, minor, and patch versions of a semantic version. + Use the `getInstance(major, 0, 1, 0)` as the version during pre-release development, + and use `getInstance(major, 1, 0, 0)` to indicate a GA release version. + See the section on "ICU Version Number" for the version numbers to use during the BRS tasks for + each phase of the release process.
     /**
diff --git a/icu4c/source/common/unicode/uvernum.h b/icu4c/source/common/unicode/uvernum.h
index 77fc519d4222..9fc98e738070 100644
--- a/icu4c/source/common/unicode/uvernum.h
+++ b/icu4c/source/common/unicode/uvernum.h
@@ -59,13 +59,13 @@
  *  This value will change in the subsequent releases of ICU
  *  @stable ICU 2.6
  */
-#define U_ICU_VERSION_MINOR_NUM 0
+#define U_ICU_VERSION_MINOR_NUM 1
 
 /** The current ICU patchlevel version as an integer.
  *  This value will change in the subsequent releases of ICU
  *  @stable ICU 2.4
  */
-#define U_ICU_VERSION_PATCHLEVEL_NUM 1
+#define U_ICU_VERSION_PATCHLEVEL_NUM 0
 
 /** The current ICU build level version as an integer.
  *  This value is for use by ICU clients. It defaults to 0.
@@ -132,7 +132,7 @@
  *  This value will change in the subsequent releases of ICU
  *  @stable ICU 2.4
  */
-#define U_ICU_VERSION "74.0.1"
+#define U_ICU_VERSION "74.1"
 
 /**
  * The current ICU library major version number as a string, for library name suffixes.
@@ -151,7 +151,7 @@
 /** Data version in ICU4C.
  * @internal ICU 4.4 Internal Use Only
  **/
-#define U_ICU_DATA_VERSION "74.0.1"
+#define U_ICU_DATA_VERSION "74.1"
 #endif  /* U_HIDE_INTERNAL_API */
 
 /*===========================================================================
diff --git a/icu4c/source/configure b/icu4c/source/configure
index e161e1189a95..d2ee1acecdd2 100755
--- a/icu4c/source/configure
+++ b/icu4c/source/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for ICU 74.0.1.
+# Generated by GNU Autoconf 2.69 for ICU 74.1.
 #
 # Report bugs to .
 #
@@ -582,8 +582,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='ICU'
 PACKAGE_TARNAME='International Components for Unicode'
-PACKAGE_VERSION='74.0.1'
-PACKAGE_STRING='ICU 74.0.1'
+PACKAGE_VERSION='74.1'
+PACKAGE_STRING='ICU 74.1'
 PACKAGE_BUGREPORT='http://icu-project.org/bugs'
 PACKAGE_URL='http://icu-project.org'
 
@@ -1375,7 +1375,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures ICU 74.0.1 to adapt to many kinds of systems.
+\`configure' configures ICU 74.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1442,7 +1442,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of ICU 74.0.1:";;
+     short | recursive ) echo "Configuration of ICU 74.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1580,7 +1580,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-ICU configure 74.0.1
+ICU configure 74.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2326,7 +2326,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by ICU $as_me 74.0.1, which was
+It was created by ICU $as_me 74.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -5867,10 +5867,6 @@ else
   AR="$ac_cv_prog_AR"
 fi
 
-if [ -n "$QNX_TARGET" ]; then
-  AR="x86_64-linux-gnu-ar"
-  RANLIB=""x86_64-linux-gnu-ranlib
-fi
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable renaming of symbols" >&5
 $as_echo_n "checking whether to enable renaming of symbols... " >&6; }
@@ -8608,7 +8604,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by ICU $as_me 74.0.1, which was
+This file was extended by ICU $as_me 74.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -8662,7 +8658,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-ICU config.status 74.0.1
+ICU config.status 74.1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/icu4c/source/data/misc/icuver.txt b/icu4c/source/data/misc/icuver.txt
index 5789e0dc210b..1639bcde41e3 100644
--- a/icu4c/source/data/misc/icuver.txt
+++ b/icu4c/source/data/misc/icuver.txt
@@ -9,6 +9,6 @@
 // ***************************************************************************
 icuver:table(nofallback){
     CLDRVersion{"44"}
-    DataVersion{"74.0.1.0"}
-    ICUVersion{"74.0.1.0"}
+    DataVersion{"74.1.0.0"}
+    ICUVersion{"74.1.0.0"}
 }
diff --git a/icu4j/build.properties b/icu4j/build.properties
index b74af1a036e2..29719423789e 100644
--- a/icu4j/build.properties
+++ b/icu4j/build.properties
@@ -7,6 +7,6 @@
 api.report.version = 74
 api.report.prev.version = 73
 release.file.ver = 74rc
-api.doc.version = 74 Release Candidate
-maven.pom.ver = 74.0.1-SNAPSHOT
+api.doc.version = 74
+maven.pom.ver = 74.1
 
diff --git a/icu4j/demos/pom.xml b/icu4j/demos/pom.xml
index b393e6203715..beaf8682a41f 100644
--- a/icu4j/demos/pom.xml
+++ b/icu4j/demos/pom.xml
@@ -8,7 +8,7 @@
   
     com.ibm.icu
     icu4j-root
-    74.0.1-SNAPSHOT
+    74.1
   
 
   demos
diff --git a/icu4j/main/charset/pom.xml b/icu4j/main/charset/pom.xml
index c58e50eeb8e5..e24c265bfd68 100644
--- a/icu4j/main/charset/pom.xml
+++ b/icu4j/main/charset/pom.xml
@@ -8,7 +8,7 @@
   
     com.ibm.icu
     main
-    74.0.1-SNAPSHOT
+    74.1
   
 
   icu4j-charset
diff --git a/icu4j/main/collate/pom.xml b/icu4j/main/collate/pom.xml
index 6d7ccfaae3c6..996f3636f7e6 100644
--- a/icu4j/main/collate/pom.xml
+++ b/icu4j/main/collate/pom.xml
@@ -8,7 +8,7 @@
   
     com.ibm.icu
     main
-    74.0.1-SNAPSHOT
+    74.1
   
 
   collate
diff --git a/icu4j/main/common_tests/pom.xml b/icu4j/main/common_tests/pom.xml
index e70a1eefb70d..a2fd75203f44 100644
--- a/icu4j/main/common_tests/pom.xml
+++ b/icu4j/main/common_tests/pom.xml
@@ -8,7 +8,7 @@
   
     com.ibm.icu
     main
-    74.0.1-SNAPSHOT
+    74.1
   
 
   common_tests
diff --git a/icu4j/main/core/pom.xml b/icu4j/main/core/pom.xml
index 93ec71dbbe6a..54a6b4f21a6f 100644
--- a/icu4j/main/core/pom.xml
+++ b/icu4j/main/core/pom.xml
@@ -8,7 +8,7 @@
   
     com.ibm.icu
     main
-    74.0.1-SNAPSHOT
+    74.1
   
 
   core
diff --git a/icu4j/main/core/src/main/java/com/ibm/icu/util/VersionInfo.java b/icu4j/main/core/src/main/java/com/ibm/icu/util/VersionInfo.java
index 21de2c5bec53..513ef75ed8d1 100644
--- a/icu4j/main/core/src/main/java/com/ibm/icu/util/VersionInfo.java
+++ b/icu4j/main/core/src/main/java/com/ibm/icu/util/VersionInfo.java
@@ -574,7 +574,7 @@ public int compareTo(VersionInfo other)
         UNICODE_15_0   = getInstance(15, 0, 0, 0);
         UNICODE_15_1   = getInstance(15, 1, 0, 0);
 
-        ICU_VERSION   = getInstance(74, 0, 1, 0);
+        ICU_VERSION   = getInstance(74, 1, 0, 0);
         ICU_DATA_VERSION = ICU_VERSION;
         UNICODE_VERSION = UNICODE_15_1;
 
diff --git a/icu4j/main/core/src/test/java/com/ibm/icu/dev/test/util/DebugUtilitiesData.java b/icu4j/main/core/src/test/java/com/ibm/icu/dev/test/util/DebugUtilitiesData.java
index 06b2d3cc74cb..1cc3716ff2b2 100644
--- a/icu4j/main/core/src/test/java/com/ibm/icu/dev/test/util/DebugUtilitiesData.java
+++ b/icu4j/main/core/src/test/java/com/ibm/icu/dev/test/util/DebugUtilitiesData.java
@@ -10,7 +10,7 @@
 package com.ibm.icu.dev.test.util;
 
 public class DebugUtilitiesData extends Object {
-    public static final String ICU4C_VERSION="74.0.1";
+    public static final String ICU4C_VERSION="74.1";
     public static final int UDebugEnumType = 0;
     public static final int UCalendarDateFields = 1;
     public static final int UCalendarMonths = 2;
diff --git a/icu4j/main/currdata/pom.xml b/icu4j/main/currdata/pom.xml
index 9ec3ef5871be..0d741c805b98 100644
--- a/icu4j/main/currdata/pom.xml
+++ b/icu4j/main/currdata/pom.xml
@@ -8,7 +8,7 @@
   
     com.ibm.icu
     main
-    74.0.1-SNAPSHOT
+    74.1
   
 
   currdata
diff --git a/icu4j/main/framework/pom.xml b/icu4j/main/framework/pom.xml
index d4cced1b37f9..4a1ec6022720 100644
--- a/icu4j/main/framework/pom.xml
+++ b/icu4j/main/framework/pom.xml
@@ -8,7 +8,7 @@
   
     com.ibm.icu
     main
-    74.0.1-SNAPSHOT
+    74.1
   
 
   framework
diff --git a/icu4j/main/icu4j/pom.xml b/icu4j/main/icu4j/pom.xml
index 20fc1b8b0b0d..c8a6720c3543 100644
--- a/icu4j/main/icu4j/pom.xml
+++ b/icu4j/main/icu4j/pom.xml
@@ -9,7 +9,7 @@
   
     com.ibm.icu
     main
-    74.0.1-SNAPSHOT
+    74.1
   
 
   icu4j
diff --git a/icu4j/main/langdata/pom.xml b/icu4j/main/langdata/pom.xml
index f367b5505c9a..adb14afcaead 100644
--- a/icu4j/main/langdata/pom.xml
+++ b/icu4j/main/langdata/pom.xml
@@ -8,7 +8,7 @@
   
     com.ibm.icu
     main
-    74.0.1-SNAPSHOT
+    74.1
   
 
   langdata
diff --git a/icu4j/main/localespi/pom.xml b/icu4j/main/localespi/pom.xml
index 0cfac9101556..1d3e3b4093f6 100644
--- a/icu4j/main/localespi/pom.xml
+++ b/icu4j/main/localespi/pom.xml
@@ -8,7 +8,7 @@
   
     com.ibm.icu
     main
-    74.0.1-SNAPSHOT
+    74.1
   
 
   icu4j-localespi
diff --git a/icu4j/main/pom.xml b/icu4j/main/pom.xml
index 4bc19ce624b1..a06b20814a0f 100644
--- a/icu4j/main/pom.xml
+++ b/icu4j/main/pom.xml
@@ -8,7 +8,7 @@
   
     com.ibm.icu
     icu4j-root
-    74.0.1-SNAPSHOT
+    74.1
   
 
   main
diff --git a/icu4j/main/regiondata/pom.xml b/icu4j/main/regiondata/pom.xml
index 179aa7ad8055..a60ff661e601 100644
--- a/icu4j/main/regiondata/pom.xml
+++ b/icu4j/main/regiondata/pom.xml
@@ -8,7 +8,7 @@
   
     com.ibm.icu
     main
-    74.0.1-SNAPSHOT
+    74.1
   
 
   regiondata
diff --git a/icu4j/main/shared/build/common.properties b/icu4j/main/shared/build/common.properties
index e5e01206b2f2..80e7fbc928fc 100644
--- a/icu4j/main/shared/build/common.properties
+++ b/icu4j/main/shared/build/common.properties
@@ -7,7 +7,7 @@
 
 # Version numbers, etc.
 icu4j.spec.version = 74
-icu4j.impl.version = 74.0.1
+icu4j.impl.version = 74.1
 icu4j.data.version = 74
 default.exec.env = JavaSE-1.7
 
diff --git a/icu4j/main/translit/pom.xml b/icu4j/main/translit/pom.xml
index eee8980f4f92..2f6192a93829 100644
--- a/icu4j/main/translit/pom.xml
+++ b/icu4j/main/translit/pom.xml
@@ -8,7 +8,7 @@
   
     com.ibm.icu
     main
-    74.0.1-SNAPSHOT
+    74.1
   
 
   translit
diff --git a/icu4j/perf-tests/pom.xml b/icu4j/perf-tests/pom.xml
index 2fdb531b64c2..454d3411fb18 100644
--- a/icu4j/perf-tests/pom.xml
+++ b/icu4j/perf-tests/pom.xml
@@ -8,7 +8,7 @@
   
     com.ibm.icu
     icu4j-root
-    74.0.1-SNAPSHOT
+    74.1
   
 
   perf-tests
diff --git a/icu4j/pom.xml b/icu4j/pom.xml
index b8793c26e2fc..a763d0a86c3b 100644
--- a/icu4j/pom.xml
+++ b/icu4j/pom.xml
@@ -8,7 +8,7 @@
 
   com.ibm.icu
   icu4j-root
-  74.0.1-SNAPSHOT
+  74.1
   pom
 
   ${proj-title} (${project.artifactId})
diff --git a/icu4j/releases_tools/api_reports.sh b/icu4j/releases_tools/api_reports.sh
index 5c7b7553ae45..ab970bb80515 100755
--- a/icu4j/releases_tools/api_reports.sh
+++ b/icu4j/releases_tools/api_reports.sh
@@ -5,7 +5,7 @@
 export MAVEN_ARGS='--no-transfer-progress'
 
 # Version update!
-export artifact_version='74.0.1-SNAPSHOT'
+export artifact_version='74.1.0'
 export api_report_version='74'
 export api_report_prev_version='73'
 export out_dir=target
diff --git a/icu4j/samples/pom.xml b/icu4j/samples/pom.xml
index 353d9c090782..c3a48b442b36 100644
--- a/icu4j/samples/pom.xml
+++ b/icu4j/samples/pom.xml
@@ -8,7 +8,7 @@
   
     com.ibm.icu
     icu4j-root
-    74.0.1-SNAPSHOT
+    74.1
   
 
   samples
diff --git a/icu4j/tools/build/pom.xml b/icu4j/tools/build/pom.xml
index b55f3db3e658..830e4a6e008c 100644
--- a/icu4j/tools/build/pom.xml
+++ b/icu4j/tools/build/pom.xml
@@ -8,7 +8,7 @@
   
     com.ibm.icu
     icu4j-root
-    74.0.1-SNAPSHOT
+    74.1
     ../../pom.xml
   
 
diff --git a/icu4j/tools/misc/pom.xml b/icu4j/tools/misc/pom.xml
index 913598bb1f19..494629d8a4a9 100644
--- a/icu4j/tools/misc/pom.xml
+++ b/icu4j/tools/misc/pom.xml
@@ -8,7 +8,7 @@
   
     com.ibm.icu
     icu4j-root
-    74.0.1-SNAPSHOT
+    74.1
     ../../pom.xml
   
 
diff --git a/tools/cldr/cldr-to-icu/build-icu-data.xml b/tools/cldr/cldr-to-icu/build-icu-data.xml
index ca4a880f3241..630caac6c5d1 100644
--- a/tools/cldr/cldr-to-icu/build-icu-data.xml
+++ b/tools/cldr/cldr-to-icu/build-icu-data.xml
@@ -61,10 +61,10 @@
         
 
         
-        
+        
 
         
-        
+