Skip to content

Commit

Permalink
ICU-22325 BRS74RC: Update version number to 74.1
Browse files Browse the repository at this point in the history
See #2613
  • Loading branch information
echeran authored and markusicu committed Sep 26, 2023
1 parent 9bce52f commit 99026f0
Show file tree
Hide file tree
Showing 28 changed files with 176 additions and 46 deletions.
136 changes: 135 additions & 1 deletion docs/processes/release/tasks/versions.md
Expand Up @@ -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(<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.

<pre>
/**
* 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);
<b>
ICU_VERSION = getInstance(74, 1, 0, 0);
ICU_DATA_VERSION = ICU_VERSION;</b>
UNICODE_VERSION = UNICODE_7_0;

UCOL_RUNTIME_VERSION = getInstance(8);
UCOL_BUILDER_VERSION = getInstance(9);
UCOL_TAILORINGS_VERSION = getInstance(1);
}
</pre>

In the same file, starting at line 164 (as of 54.1) -

<pre>
/**
* 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 <b>ICU_DATA_VERSION_PATH = "74b";</b>
</pre>

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".
```
<api.doc.version>${icu.major.version} Release Candidate</api.doc.version>
```
* For the final GA release, ensure that the property only includes the major version number.
```
<api.doc.version>${icu.major.version}</api.doc.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,

Expand Down Expand Up @@ -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.

<pre>
/**
Expand Down
8 changes: 4 additions & 4 deletions icu4c/source/common/unicode/uvernum.h
Expand Up @@ -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.
Expand Down Expand Up @@ -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.
Expand All @@ -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 */

/*===========================================================================
Expand Down
22 changes: 9 additions & 13 deletions 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 <http:https://icu-project.org/bugs>.
#
Expand Down Expand Up @@ -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:https://icu-project.org/bugs'
PACKAGE_URL='http:https://icu-project.org'

Expand Down Expand Up @@ -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]...
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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.
Expand Down Expand Up @@ -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 $@
Expand Down Expand Up @@ -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; }
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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\\"
Expand Down
4 changes: 2 additions & 2 deletions icu4c/source/data/misc/icuver.txt
Expand Up @@ -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"}
}
4 changes: 2 additions & 2 deletions icu4j/build.properties
Expand Up @@ -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

2 changes: 1 addition & 1 deletion icu4j/demos/pom.xml
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>com.ibm.icu</groupId>
<artifactId>icu4j-root</artifactId>
<version>74.0.1-SNAPSHOT</version>
<version>74.1</version>
</parent>

<artifactId>demos</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion icu4j/main/charset/pom.xml
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>com.ibm.icu</groupId>
<artifactId>main</artifactId>
<version>74.0.1-SNAPSHOT</version>
<version>74.1</version>
</parent>

<artifactId>icu4j-charset</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion icu4j/main/collate/pom.xml
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>com.ibm.icu</groupId>
<artifactId>main</artifactId>
<version>74.0.1-SNAPSHOT</version>
<version>74.1</version>
</parent>

<artifactId>collate</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion icu4j/main/common_tests/pom.xml
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>com.ibm.icu</groupId>
<artifactId>main</artifactId>
<version>74.0.1-SNAPSHOT</version>
<version>74.1</version>
</parent>

<artifactId>common_tests</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion icu4j/main/core/pom.xml
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>com.ibm.icu</groupId>
<artifactId>main</artifactId>
<version>74.0.1-SNAPSHOT</version>
<version>74.1</version>
</parent>

<artifactId>core</artifactId>
Expand Down
Expand Up @@ -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;

Expand Down
Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion icu4j/main/currdata/pom.xml
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>com.ibm.icu</groupId>
<artifactId>main</artifactId>
<version>74.0.1-SNAPSHOT</version>
<version>74.1</version>
</parent>

<artifactId>currdata</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion icu4j/main/framework/pom.xml
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>com.ibm.icu</groupId>
<artifactId>main</artifactId>
<version>74.0.1-SNAPSHOT</version>
<version>74.1</version>
</parent>

<artifactId>framework</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion icu4j/main/icu4j/pom.xml
Expand Up @@ -9,7 +9,7 @@
<parent>
<groupId>com.ibm.icu</groupId>
<artifactId>main</artifactId>
<version>74.0.1-SNAPSHOT</version>
<version>74.1</version>
</parent>

<artifactId>icu4j</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion icu4j/main/langdata/pom.xml
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>com.ibm.icu</groupId>
<artifactId>main</artifactId>
<version>74.0.1-SNAPSHOT</version>
<version>74.1</version>
</parent>

<artifactId>langdata</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion icu4j/main/localespi/pom.xml
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>com.ibm.icu</groupId>
<artifactId>main</artifactId>
<version>74.0.1-SNAPSHOT</version>
<version>74.1</version>
</parent>

<artifactId>icu4j-localespi</artifactId>
Expand Down

2 comments on commit 99026f0

@wuch-g2v
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like 74.1 dist tar balls has not been uploaded to https://github.com/unicode-org/icu/releases/tag/release-74-1 assets.

@markusicu
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like 74.1 dist tar balls has not been uploaded to https://github.com/unicode-org/icu/releases/tag/release-74-1 assets.

Right. And the download page isn't finalized, and we have not yet sent an announcement.
We are working on it.

Please sign in to comment.