发布

此文档已移动!

下一版本发布后,将删除下面的文本。

在GitHub中创建发布分支

一旦创建了分支,只有目标版本所需的更改才会从主干中合并进来。

升级LocaleExplorer和其他演示/示例

…到ICU项目现场。

按照自述文件构建icuapps模块。根据需要更新代码和/或文档。icuapps的“参考”平台是:RedHat Linux和win32。在Linux上,icuapps是针对“make-install”的ICU构建的。因此,使用--prefix=/some/where运行ICU4C的configure,指向应该安装ICU4C的位置,并遵循icuapps的README。

在公共演示托管站点上安装新的语言环境浏览器和其他演示/示例。

ICU排序演示

更新ICU排序演示索引.html使用新ICU版本的可用收集器。

    1. 进行干净的构建(配置、清理、安装、检查)。

      1. 否则,数据构建可能不会在coll/res_index.txt文件中选取新的语言环境。

    2. 运行icu-demos>webdemo/collation/build.sh(为您的系统修改后)。

  1. 复制并保存输出可用担保人.txt进入之内索引.html.

    1. 或者,更简单:使用GUI difftool(例如,meld)来比较两者,并将更改移动到index.html中。

    2. meld webdemo/collation/index.html/可用担保人.txt

  2. 请参见的更改示例重症监护室-11355

有关详细信息,请参阅build.sh文件开头的注释。

存储库分支和标记

小心!以下示例包含特定版本、修订和票号。根据当前版本调整它们!最简单:粘贴到编辑器中,修复,然后粘贴到终端。

创建维护分支。

健全性检查:更新到最新的存储库版本。(如果您从主分支复制,则为主分支;如果您从那里复制,则是维护分支。)

切换到主分支

git-pull上游主机

git日志-n1

提交bcd0…(HEAD->master,upstream/master,…)

确保本地分支与上游分支同步。确保检查的是上游遥控器,而不是叉子!

在您的机器上构建并测试ICU4C和ICU4J。

根据当前已知的良好主参考创建维护分支。

git结帐-b maint/maint-63

git-push-u上游maint/maint-63

标记

使用GitHub GUI同时创建“release”和“tag”:

https://github.com/unicode-org/icu/releases/new

填写标签名称,如“release-63-rc”或“release-63-1”,并使目标成为“maint/maint-xx”分支(如maint/mant-63)。

将标题设置为“ICU 63 RC”或“ICU 63.1”。使用公告电子邮件中的文本填写说明。(您还可以查看以前的版本,并可能重新使用一些通用文本,例如API文档的链接等)

您的屏幕应如下所示:

对于发布候选标签,请选中“Pre-release”框。

我们不再需要添加关于Git LFS文件的注释,因为GitHub现在将它们包含在自动生成的.zip下载中。

单击“发布发布”按钮以制作标记。

注意:“最新”标签不再更新。ICU-TC同意在64.2个时间范围内删除它,因为它与Git不兼容。(您需要强制推送新标记,如果有人已经克隆了存储库,他们可能会对“最新”标记使用不同的标记)。

未来可能的替代方案可能是sym-link文件夹,或指向最新版本的HTTP重定向。

维护发布

如上所述,从维护分支创建维护发布标签。

更新“最新”标签。

ICU 58及更早版本

标记相关的svn文件,用于重症监护室,icu4j病房和(最终版本)工具文件树。我们标记了工具树,以便能够重现本版本中用于Unicode数据文件的Unicode工具。

对于发布候选,只需标记,不进行分支,并且只标记icu&icu4j。

对于最终版本,先分支然后标记。将中继复制到maint/maint-4-8并复制到tags/release-4-8。通过-r显式指定源版本,这样您就不会无意中拾取意外的变更集。确保源版本的主干是好的。

我们不标记数据和icuapps树。Steven Loomis于2011年5月23日写道:

我的想法是(在CVS时代)拍摄这些物品的“快照”。然而,在SVN中,您只需要一个日期或修订号(例如r30140)。

因此,我们可能不需要标记这两个(icuapps或数据)。

工具更重要,因为这些工具实际上是在版本中使用的。

创建ICU下载页面

在第一个里程碑之前创建下载页面(如果有),或者在候选发布版本之前创建。

登录ICU主页谷歌网站。(如果您没有写访问权限,请要求其中一个编辑器授予您访问权限。)

验证是否还没有即将发布的版本的页面:通过站点地图,或者在主下载页面的底部显示类似“子页面(27):查看全部”的内容。

复制上一版本的下载页面:转到该页面,齿轮菜单,复制页面;现在只使用主要版本号(例如,“61”)“命名您的页面”,以便页面URL就是该编号,选择“将页面置于下载ICU下”,单击红色的COPY按钮。

根据需要调整新页面:将标题更改为“下载ICU 61候选版本”(具有正确的版本号……),删除特定于以前版本的内容,更新所有版本号,更新所有链接。

在顶部加上一个粗体+斜体的红色警告,如“此版本尚未发布。请将其用于测试,但不要用于生产!”

保存页面。经常储蓄通常是一个好主意。要进行进一步编辑,只需返回编辑模式。(键盘快捷键“e”用于编辑,ctrl+s用于保存。)

为即将发布的版本添加新内容:从同级Unicode和CLDR发行说明中获取一些文本,查看此版本的提案状态文档,传递此版本中修复的api/增强票证或正在审阅/审阅反馈。

查看最近两个版本的下载页面,了解迁移问题部分等内容的模板。

请团队中的每个人添加内容和细节。

创建页面并邀请不同的人进行编辑后,每个人都应该保持简短的编辑,这样页面就不会被其他人长时间锁定。

维护发布

有关维护版本,请参阅ICU 60页面,其中包括60.2。

主下载页面上的里程碑

我们在ICU 4.8M1=4.7.1的主下载页面上有以下HTML:

<h3 style=“background color:rgb(102102102);color:white;margin bottom:0pt;margin top:12pt;padding left:0.75em;font-size:1em;font-family:Arial,Helvetica,sans-serif”>开发里程碑</h3>

<table border=“0”><p style=“font-size:10pt;font-family:Arial,Helvetica,sans-serif”>ICU的发展里程碑版本可以从下面下载。开发里程碑是下一个ICU主要版本的稳定快照构建。这些二进制文件和源代码是为了评估目的而提供的,不应在生产环境中使用。里程碑版本中的新API或功能可能会更改或删除,恕不另行通知&nbsp</p>(第页)

<t车身>

<tr>

<td style=“width:105px;height:16px”><b> 发布</b></td>

<td style=“width:792px;height:16px”><b> 主要变化<br>

</b></td>

</tr>

<tr>

<td style=“width:105px;height:29px”><a href=“https://sites.google.com/site/icusite/download/471“>4.8M1(4.7.1)</a><br>

</td>

<td style=“width:792px;height:29px”>;CLDR 1.9.1+、父语言环境覆盖、字典类型trie、字母索引(C)、复合文本编码(C),JDK7语言环境转换(J)<br>

</td>

</tr>

</tbody>

</表格>

</span><br>

上传发布源/二进制文件

下载目录位于,例如,

icu-project.org:/home/htdocs/ex/files/icu4c/4.4.2

对应于http://download.icu项目.org/ex/files/icu4c/4.4.2/

请查看早期版本中的示例。

Java源/二进制文件:

遵循此处的说明:构建ICU4J发布文件

C源代码/二进制代码:

正在进行的工作

源代码和Linux二进制文件:

重要提示:此步骤适用于Unix make+docker。

首先,安装码头工人docker-compose。D类o直到docker运营的hello world作品!

$git克隆https://github.com/unicode-org/ic-docker.git

$cd icu接收器/src

$git克隆--分支发布-64-rc--深度1https://github.com/unicode网址-org/icu.git

$cd重症监护室

$git lfs获取

$git lfs结账

$cd../..美元。。

减少$自述.md#遵循这些说明。

注:如果只想创建源代码tarball(.tgz/.zip),那么可以运行“make dist”。

  • 这将生成一个源tarball,并在icu4c/source/data/in/下包含一个预编译的.dat文件。

  • 注意:这个tarball还将省略包含语言环境数据的所有数据子目录。

  • 请注意,源代码取自git存储库本身,而不是本地签出。(因此,它将排除任何本地未提交的更改)。

Windows二进制文件:

  • 手动过程:

    • 使用MSVC x64版本生成。(见ICU 自述文件.html文件以获取详细信息)。

    • 打开命令提示符。

    • >cd C:\icu\icu4c\(或icu所在的任何地方)。

    • >powershell公司

    • >Set-ExecutionPolicy-作用域进程不受限制

    • > .\包装\发行版.ps1-arch x64

    • 这将生成文件“source\dist\icu-windows.zip”,上传之前需要重命名该文件。

      • 例如,使用VS2017生成的ICU4C v61.1的二进制文件名为“ICU4C-61_1-Win64-MSVC2017.zip”。

      • 注:从ICU 68开始,预构建的二进制文件使用MSVC2019而不是MSVC2017。

  • 使用构建机器人程序的输出:

    • 导航到GitHub页面,查看“maint/maint-<version>”分支上的提交。

      • 前任:https://github.com/unicode-org/icu/commits/maint/maint-64

    • 单击绿色复选标记((二)在最近/最后一次提交时。(如果构建失败,可能会是一个红色的X,希望不会)。

      • 这将打开一个弹出窗口,其中包含指向各种CI生成的链接。

    • 单击显示Azure CI构建“详细信息”的各种链接之一。

      • 这将打开GitHub构建状态的概览。

    • 单击链接“查看Azure管道的更多详细信息”链接。

      • 这将带您进入实际的Azure CI构建页面。

    • 在页面的右上角应该有一个标题为“工件”的按钮。单击此按钮,它将显示一个下拉列表,其中包含您可以下载的各种ZIP文件。

    • ZIP可能会自动为您下载。

    • 然而,如果您登录到visualstudio.com,您可能会看到一个名为“Artifacts explorer”的对话框。

    • 在这种情况下,单击名称,然后单击“…”按钮下载zip文件。

    • 下载x64(64位)和x86(32位)ZIP文件。

    • 对于每个架构:

      • 解压缩Zip文件。(它的名称类似于“20190829.6_ICU4C_MSVC_x64_Release.zip”)。

      • 导航到具有相同名称的文件夹。

      • 将文件“icu-windows.zip”重命名为适当的名称:

        • 例如:64.1版的x64 zip被命名为“icu4c-64_1-Win64-MSVC2017.zip”

        • 例如:64.1版的x86 zip被命名为“icu4c-64_1-Win32-MSVC2017.zip”

        • 注:注:从ICU 68开始,预构建的二进制文件使用MSVC2019而不是MSVC2017。

      • 注:对于RC版本,名称如下:“icu4c-64rc-Win64-MSVC2017.zip”

    • AIX Bin:(AIX暂时中断并被忽略。)

    • 登录到gcc119.fsffrance.org并将上面创建的ICU4C源存档复制到那里。

    • $gzip-dc icu4c-XXX-src.tgz|tar xf-

    • $cd重症监护室

    • $PATH=/opt/IBM/xlC/13.1.3/bin:$PATH源/runConfigureICU AIX

    • (上述命令行实际上不起作用,请参阅 ICU门票#13639解决方法。)

    • $gmake DESTDIR=/tmp/icu发布Dist

    • 最后一步将在/tmp/icu-把它拉上拉链就可以释放了。

    • 如果/tmp恰好已满,请参阅 邮件列表存档寻求建议。

签署存档并创建校验和:

步骤1。PGP文件:

使用您自己的个人PGP密钥签署上面创建的所有存档。这将创建一个后缀为.asc的文件。

$gpg--装甲--分离sign icu4c-xxx-xxx.zip

#要验证

$gpg—验证icu4c-xxx-xxx.zip.asc

第2步。MD5文件:

使用md5sum或 cfv(立方英尺)创建 md5型三组文件的散列和:

  • icu4j(所有文件),

  • icu4c(来源),

  • icu4c(二进制文件)。

使用md5sum创建并验证校验和文件:

#要验证

md5sum-c icu4c源.md5型

或者,使用cfv创建和验证md5文件:

cfv-t md5-C-f icu-……-src.md5 somefile.zip somefile.tgz…

#要验证

cfv-f重症监护室-……-src.md5

步骤3。SHASUM512.txt格式

创建一个附加的哈希和文件SHASUM512.txt文件,其中包含:

shasum-a 512*.zip*.tgz| T恤SHASUM512.txt

该文件也应经过GPG签名。使用“gpg verify”检查.asc。

更新下载页小工具

更新下载页面上的小工具以指向二进制文件的新URL。

查看ICU公共网站以获取新版本

除了下载页面外,还要确保更新主页、新闻条目、功能列表和功能比较等。上传新的API引用。更新《用户指南》。

更新ICU4C和ICU4J的Trac版本号列表。<<??仍然有效??>>

通过转到Trac中的“管理>版本”更新ICU版本号列表,并添加新的ICU版本。

释放后清理

  • 清理ICU Trac中的里程碑。将剩余的项目移动到未来的里程碑。关闭里程碑。

  • 在源代码中查找TODO注释,并根据需要提交新票据。

  • 删除并重新标记最新的(仅限GA发布后,包括维护!)<<这对GIT仍然有效吗?>>

更新在线演示

将在线演示/工具更新到最新版本:

在线信息更新

排序规则和 比较图表需要更新。请参见 图表/性能和大小.

旧的敏感票据

取消设置旧票据上的“敏感”标志。例如,在两次或两次以上发行前修复的门票上。

ICU 65的样本票据查询,用于63或更早版本的固定票据。根据需要调整修复版本选择。在ICU会议上检查列表。

检查重复项并确定其他票据!保持关闭的票据上的“敏感”标志与其他尚未修复或最近才修复的票据重复。

要删除标志:

    • 输入批量编辑。选择所有查询结果。

    • 取消选中未修正或过新票据的副本。

    • 编辑字段:

      • 安全级别=无

      • 添加标签“was_sensitive”

      • 无通知电子邮件

    • 确认批量编辑。

Punt彩票

双击此版本中提交的票证已关闭/修复。根据需要关闭。(希望在这一点上没有选错…)

然后将标记为此版本的剩余票证放入平底船:

    1. 在Jira中,搜索Project=ICU,Fix Version=<this release>,Status≠Done的所有票据。

    2. 转到批量编辑(右上角的“…”菜单)

    3. 全选

    4. 编辑字段:

      1. 修复版本:全部替换为“未来”

      2. 标签:添加“punt<this release>”(例如,“punt63”)

      3. 无电子邮件通知

    5. 确认批量编辑

    6. 向团队发送一封礼貌电子邮件,其中包含标签=“punt<this release>”门票的Jira查询URL。

划船后,请更新Jira上的“下一次ICU发布的待办事项”小部件。

更新自述文件

更新ICU4C readme.html ICU4J自述.html在每个里程碑之前(GA/RC/milestone-N)。确保以下项目是最新的。

    • 发布版本

    • 上次更新日期

    • 说明-GA、RC和Milesone-N的说明已包含在自述文件中。

      • 酌情注释/取消注释部分。

      • 如果里程碑之间的自述文件应该保持不变,我们可以直接跳到GA描述。否则,请为版本类型选择正确的版本。

      • 自从ICU 67以来,我们从GA跳到GA,没有标记&取消标记特定于发布候选版本的自述文件。

    • 构建步骤-确保支持的编译器版本是最新的

md5sum源1源2。。。来源N>icu4c_sources.md5