Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ICU-22325 BRS74RC: Update version number to 74.1 #2613

Merged
merged 1 commit into from
Sep 26, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
136 changes: 135 additions & 1 deletion docs/processes/release/tasks/versions.md
Original file line number Diff line number Diff line change
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)
markusicu marked this conversation as resolved.
Show resolved Hide resolved

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:
mihnita marked this conversation as resolved.
Show resolved Hide resolved

* 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:
Copy link
Contributor

Choose a reason for hiding this comment

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

TBD: we might consider using the version directly instead of ${icu.major.version}.

That way one can change it from command line:

mvn versions:set-property -DnewVersion="75 Release Candidate" -Dproperty=api.doc.version

Or maybe remove "Release Candidate" completely.
"In my book" RC means: if there are no problems found then this is promoted to GA.

Using "Release Candidate" anywhere means that even if everything is perfect, one has to remove such and rebuild in order to release.

Copy link
Contributor

Choose a reason for hiding this comment

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

Note: not actionable for this PR, of course.


* 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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
@@ -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://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://icu-project.org/bugs'
PACKAGE_URL='http://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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@
api.report.version = 74
api.report.prev.version = 73
release.file.ver = 74rc
markusicu marked this conversation as resolved.
Show resolved Hide resolved
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Loading
Loading