From 3c0d242cf748e35f5add1cd5d258badcb9c9e410 Mon Sep 17 00:00:00 2001 From: Mihai Nita Date: Sun, 29 Sep 2024 23:37:29 -0700 Subject: [PATCH] ICU-22606 Create full release from CI - update docs --- docs/processes/release/tasks/publish/index.md | 15 +++- .../release/tasks/publish/release.md | 82 +++++++++++++++++++ 2 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 docs/processes/release/tasks/publish/release.md diff --git a/docs/processes/release/tasks/publish/index.md b/docs/processes/release/tasks/publish/index.md index e790a38c5ece..70fac38e9360 100644 --- a/docs/processes/release/tasks/publish/index.md +++ b/docs/processes/release/tasks/publish/index.md @@ -241,16 +241,22 @@ Download Directories are located at, for example, corresponding to Look at previous releases for an example. -### Java Source/Bin: +### Java Source/Bin + +**Post 76.1 see [Publish - Version 76.1](release.md)** Follow instructions here: [Building ICU4J Release Files](../release-build.md) ### C source/binary: +**Post 76.1 see [Publish - Version 76.1](release.md)** + ***WORK IN PROGRESS*** #### Source and Linux Binaries: +**Post 76.1 see [Publish - Version 76.1](release.md)** + Important: this step works with Unix make + docker. First, install *docker* and *docker-compose. D*o not proceed until *docker run @@ -285,6 +291,9 @@ run \`make dist\`. #### Windows Binary: +**Post 76.1 see [Publish - Version 76.1](release.md)** \ +That new flow overlaps with _"Using the output from the build bots"_ below. + * Manual process: * Build with MSVC x64 Release. (See the ICU [readme.html](https://github.com/unicode-org/icu/main/blob/icu4c/readme.html) @@ -345,6 +354,8 @@ run \`make dist\`. #### Output of icuexportdata: +**Post 76.1 see [Publish - Version 76.1](release.md)** + This step publishes pre-processed Unicode property data, which may be ingested by downstream clients such as ICU4X. * Using the output from the build bots: @@ -354,6 +365,8 @@ This step publishes pre-processed Unicode property data, which may be ingested b ### Signing archives and creating checksums: +**Post 76.1 see [Publish - Version 76.1](release.md)** + #### Step 0. PGP keys: Use your own personal PGP key. Make sure that at least one other member of the diff --git a/docs/processes/release/tasks/publish/release.md b/docs/processes/release/tasks/publish/release.md new file mode 100644 index 000000000000..ccc260eb8b2a --- /dev/null +++ b/docs/processes/release/tasks/publish/release.md @@ -0,0 +1,82 @@ +--- +layout: default +title: Publish - Version 76.1 - WIP +parent: Release & Milestone Tasks +grand_parent: Contributors +nav_order: 90 +--- + + + +# Publish - Version 76.1 - WIP +{: .no_toc } + +## Contents +{: .no_toc .text-delta } + +--- + +## Most artifacts are now built in the GitHub CI. Work in Progress!!! + +Many of the tasks that used to be done before "by hand" are now at least +partially done by GitHub Actions. + +The release requires (for now) triggering the actions "by hand". + +First go to [Github - unicode-org/icu](https://github.com/unicode-org/icu). + +Create a release, give it a tag (something like `release-76` or `release-74-2`) \ +Make sure the release is **DRAFT**. + +See [Release & Milestone Tasks - Tagging](index.md#tagging) for details. + +That tag will need to be passed to several of the actions below. + +Go to [Github - unicode-org/icu](https://github.com/unicode-org/icu) -- Actions +and select the action to run from the left side. + +Select an action and (from the right side) select "Run workflow". + +Some actions will have an "Run the tests." option. \ +**KEEP IT ON!** It is there for development, but you MUST run the tests for release. + +Most will have a "Release tag to upload to." option. \ +Here you should use the release tag. + +1. **GHA ICU4C** \ + This will create and add to release: \ + * The Windows binaries (`icu4c-{icuver}-Win32-MSVC20??.zip`, + `icu4c-{icuver}-Win64-MSVC20??.zip`, `icu4c-{icuver}-WinARM64-MSVC20??.zip`) + * The packaged data for ICU4X (`icuexportdata_tag-goes-here.zip`) + +1. **Release - ICU4C artifacts on Fedora** (`release-icu4c-fedora.yml`) \ + This will create and add to release: + * `icu4c-{icuver}-Fedora_Linux??-x64.tgz`. + +1. **Release - ICU4C artifacts on Ubuntu** (`release-icu4c-ubuntu.yml`) \ + This will create and add to release: + * The `icu4c-{icuver}-Ubuntu??.04-x64.tgz` file + * The icu4c data files (`icu4c-{icuver}-data.zip`, + `icu4c-{icuver}-data-bin-b.zip`, `icu4c-{icuver}-data-bin-l.zip`) + * The icu4c source archives (`icu4c-{icuver}-src.tgz` and `icu4c-{icuver}-src.zip`) + * The ICU4C documentation (`icu4c-76_1-docs.zip`) \ + **WARNING:** this is also the one to be published (unpacked) for web access + +1. **Release - ICU4J publish to Maven Central** (`release-icu4j-maven.yml`) \ + This will create, publish to Maven Cental (using Sonatype), and add to release: + * All the official Maven artifacts, including sources and javadoc. \ + The Maven Central artifacts have checksums and are digitally signed. \ + Someone with access to Sonatype Nexus should still login there and authorize + the promotion to Maven Central. + * The unified Java documentation, (`icu4j-76.1-fulljavadoc.jar`) \ + **WARNING:** this is also the one to be published (unpacked) for web access + +1. **Release - Create checksums and GPG sign** (`release-check-sign.yml`) \ + THIS SHOULD BE THE LAST ACTION YOU RUN. \ + After all the artifacts from the previous steps are posted to the release. \ + The action will download all the artifacts from release, + create checksum files (`SHASUM512.txt` and `*.md5`), + and digital signature files (`*.asc`)