Merge pull request #61 from keertk:patch-1
PiperOrigin-RevId: 507998343
Change-Id: I27ec96a4f459b2ffa37dbe6ce96d30265d6cd335
diff --git a/docs/release.md b/docs/release.md
index 3d61851..71520b3 100644
--- a/docs/release.md
+++ b/docs/release.md
@@ -12,18 +12,25 @@
[Behind the java_tools release process](behind-the-release.md).
1. Create a new tracking issue for the release in this repository and add the
-`release` label. See [#7](https://github.com/bazelbuild/java_tools/issues/7) as
+`release` label. See [#59](https://github.com/bazelbuild/java_tools/issues/59) as
an example.
-2. Trigger a new build of the [`java_tools binaries pipeline`](https://buildkite.com/bazel-trusted/java-tools-binaries-java).
+2. Trigger a new build of the [`java_tools binaries pipeline`](https://buildkite.com/bazel-trusted/java-tools-binaries-java). Set the message field to "java_tools release [version] [rc]". See [example](https://buildkite.com/bazel-trusted/java-tools-binaries-java/builds/189).
3. Identify and set the following environment variables:
* `COMMIT_HASH` the commit hash where the pipeline was run (see below)
- * `NEW_VERSION` the new version number you’re trying to release (e.g. `3.1`)
+ * `NEW_VERSION` the new version number you’re trying to release (e.g. `11.09`)
* `RC` the number of the current release candidate
-4. Create a new release candidate by running the command below from the bazel repo:
+ For example:
+ ```bash
+ export COMMIT_HASH=7bd0ab63a8441c3f3d7f495d09ed2bed38762874
+ export NEW_VERSION=11.09
+ export RC=1
+ ```
- ```
+4. Create a new release candidate by running the command below from the [bazel](https://github.com/bazelbuild/bazel) repo:
+
+ ```bash
src/create_java_tools_release.sh \
--commit_hash $COMMIT_HASH \
--java_tools_version $NEW_VERSION \
@@ -32,27 +39,119 @@
The script will output the sha256sum of the rc artifacts for linux, darwin
and windows.
+
+ Sample output:
+ ```bash
+ $ src/create_java_tools_release.sh --commit_hash 7bd0ab63a8441c3f3d7f495d09ed2bed38762874 --java_tools_version 11.9 --rc 1 --release false
-5. Create a new bazel Pull Request that updates the `java_tools` archives (file
-[distdir_deps.bzl](https://github.com/bazelbuild/bazel/blob/master/distdir_deps.bzl))
-with the new release candidates.
-The PR triggers the CI presubmit.
+ release_candidates/java/v11.9/java_tools_linux-v11.9-rc1.zip 512582cac5b7ea7974a77b0da4581b21f546c9478f206eedf54687eeac035989
+ release_candidates/java/v11.9/java_tools_windows-v11.9-rc1.zip 677ab910046205020fd715489147c2bcfad8a35d9f5d94fdc998d217545bd87a
+ release_candidates/java/v11.9/java_tools_darwin-v11.9-rc1.zip b9e962c6a836ba1d7573f2473fab3a897c6370d4c2724bde4017b40932ff4fe4
+ release_candidates/java/v11.9/java_tools-v11.9-rc1.zip 5cd59ea6bf938a1efc1e11ea562d37b39c82f76781211b7cd941a2346ea8484d
+ ```
+5. Create a new bazel Pull Request that updates the `java_tools` archives (file [distdir_deps.bzl](https://github.com/bazelbuild/bazel/blob/master/distdir_deps.bzl)) with the new release candidates. The PR triggers the CI presubmit.
-6. Trigger a new build on Downstream https://buildkite.com/bazel/bazel-at-head-plus-downstream.
- Using `pull/PRNUMBER/head` for the branch.
+ * Edit [distdir_deps.bzl](https://github.com/bazelbuild/bazel/blob/master/distdir_deps.bzl) by updating the `archive`, `sha256`, and `urls` fields for `remote_java_tools` with the correct version, rc, sha256sum, and url (see output from step 4)
+
+ Example:
+ ```starlark
+ "archive": "java_tools-v11.9-rc1.zip",
+ "sha256": "5cd59ea6bf938a1efc1e11ea562d37b39c82f76781211b7cd941a2346ea8484d",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/release_candidates/java/v11.9/java_tools-v11.9-rc1.zip",
+ ],
+ ```
+
+ * Repeat for `remote_java_tools_linux`, `remote_java_tools_windows`, and `remote_java_tools_darwin`
+ * See [#16865](https://github.com/bazelbuild/bazel/pull/16865) for reference ([this](https://github.com/bazelbuild/bazel/pull/16865/commits/5e1a96221828b91eef634a2087e63d056fb2b146) commit)
+
+6. Trigger a new build on Downstream https://buildkite.com/bazel/bazel-at-head-plus-downstream. Set the message field to "java_tools release [version] [rc]", leave the commit field as "HEAD", and use `pull/[PRNUMBER]/head` for the branch. See [example](https://buildkite.com/bazel/bazel-at-head-plus-downstream/builds/2818).
1. If the CI finishes successfully:
- - create the release artifacts from the
- release candidate:
- ```
- src/create_java_tools_release.sh \
- --java_tools_version $NEW_VERSION \
- --rc $RC --release true
- ```
- - update the urls of the `http_archive`s in the upgrade PR and send it for
- review.
+ - create the release artifacts from the release candidate:
+ ```bash
+ src/create_java_tools_release.sh \
+ --java_tools_version $NEW_VERSION \
+ --rc $RC --release true
+ ```
+ The script will output the sha256sum of the rc artifacts for linux, darwin and windows.
+
+ Sample output:
+ ```bash
+ $ src/create_java_tools_release.sh --commit_hash 7bd0ab63a8441c3f3d7f495d09ed2bed38762874 --java_tools_version 11.9 --rc 1 --release true
+
+ releases/java/v11.9/java_tools_linux-v11.9.zip 512582cac5b7ea7974a77b0da4581b21f546c9478f206eedf54687eeac035989
+ releases/java/v11.9/java_tools_windows-v11.9.zip 677ab910046205020fd715489147c2bcfad8a35d9f5d94fdc998d217545bd87a
+ releases/java/v11.9/java_tools_darwin-v11.9.zip b9e962c6a836ba1d7573f2473fab3a897c6370d4c2724bde4017b40932ff4fe4
+ releases/java/v11.9/java_tools-v11.9.zip 5cd59ea6bf938a1efc1e11ea562d37b39c82f76781211b7cd941a2346ea8484d
+ ```
+
+ - Return to your PR and update the update the `archive`, `sha256`, and `urls` fields again (see step 5 above for reference). See [#16865](https://github.com/bazelbuild/bazel/pull/16865) ([this](https://github.com/bazelbuild/bazel/pull/16865/commits/863b71d654dfefa52f81ed986a83766e3aade2d4) commit).
+
+ Example:
+ ```starlark
+ "archive": "java_tools-v11.9.zip",
+ "sha256": "5cd59ea6bf938a1efc1e11ea562d37b39c82f76781211b7cd941a2346ea8484d",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.9/java_tools-v11.9.zip",
+ "https://github.com/bazelbuild/java_tools/releases/download/java_v11.9/java_tools-v11.9.zip",
+ ],
+ ```
+ - Update the release in the java_tools [releases page](https://github.com/bazelbuild/java_tools/releases)
+ - Create on "Draft a new release"
+ - Set tag to java_v[version number], e.g. java_v11.09
+ - Set target to master
+ - Add the name, sha256, and urls to the description
+
+ Example:
+ ```
+ To use this java_tools release, add to your WORKSPACE file the definitions:
+
+ http_archive(
+ name = "remote_java_tools",
+ sha256 = "5cd59ea6bf938a1efc1e11ea562d37b39c82f76781211b7cd941a2346ea8484d",
+ urls = [
+ "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.9/java_tools-v11.9.zip",
+ "https://github.com/bazelbuild/java_tools/releases/download/java_v11.9/java_tools-v11.9.zip",
+ ],
+ )
+
+ http_archive(
+ name = "remote_java_tools_linux",
+ sha256 = "512582cac5b7ea7974a77b0da4581b21f546c9478f206eedf54687eeac035989",
+ urls = [
+ "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.9/java_tools_linux-v11.9.zip",
+ "https://github.com/bazelbuild/java_tools/releases/download/java_v11.9/java_tools_linux-v11.9.zip",
+ ],
+ )
+
+ http_archive(
+ name = "remote_java_tools_windows",
+ sha256 = "677ab910046205020fd715489147c2bcfad8a35d9f5d94fdc998d217545bd87a",
+ urls = [
+ "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.9/java_tools_windows-v11.9.zip",
+ "https://github.com/bazelbuild/java_tools/releases/download/java_v11.9/java_tools_windows-v11.9.zip",
+ ],
+ )
+
+ http_archive(
+ name = "remote_java_tools_darwin",
+ sha256 = "b9e962c6a836ba1d7573f2473fab3a897c6370d4c2724bde4017b40932ff4fe4",
+ urls = [
+ "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.9/java_tools_darwin-v11.9.zip",
+ "https://github.com/bazelbuild/java_tools/releases/download/java_v11.9/java_tools_darwin-v11.9.zip",
+ ],
+ )
+ ```
+
+ - Download the 4 .zip files from mirror.bazel.build/bazel_java_tools/releases and attach them to the release
+ - Set as the latest release
+ - Refer to [this example](https://github.com/bazelbuild/java_tools/releases/tag/java_v11.9)
+
+ - Update package_version, see [example](https://github.com/bazelbuild/bazel/pull/17203/commits/308ed35f45e82163a84313ef67610a32198f6555)
+ - After making sure presubmits pass, send the PR for review and assign `@comius` and `@hvadehra`
2. If the CI finishes unsuccessfully find the reasons why the CI is failing
- and file bugs. After the bugs are fixed start all over again creating the
+ and file bugs. After the bugs are fixed start all over again from step 2 and create the
next release candidate. This case is highly unlikely because bazel already
tests the `java_tools` built at head.