diff options
author | Eric Anderson <ejona@google.com> | 2023-07-07 10:30:48 -0700 |
---|---|---|
committer | Eric Anderson <ejona@google.com> | 2023-07-07 16:01:21 -0700 |
commit | 13ca4d5f77fbd2167dff2db677673b1d35a437bb (patch) | |
tree | c4209fdcded44e3988b1e891e934da274061838f | |
parent | 75c9daf4a1eb1645756d9d7eef3358c4a9ee7589 (diff) | |
download | grpc-grpc-java-13ca4d5f77fbd2167dff2db677673b1d35a437bb.tar.gz |
RELEASING.md: Reorder contents to make it a bit more streamlined
I moved items that could be done immediately after the release up into
the main release flow. I also stripped some outdated or unnecessary text
to make it quicker to follow.
-rw-r--r-- | RELEASING.md | 130 |
1 files changed, 61 insertions, 69 deletions
diff --git a/RELEASING.md b/RELEASING.md index 5a9b6d88f..053a9ca76 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -141,39 +141,67 @@ Tagging the Release ``` 7. Close the release milestone. -Build Artifacts ---------------- +8. Trigger build as described in "Auto releasing using kokoro" at + go/grpc/java/releasing. + + It runs three jobs on Kokoro, one on each platform. See their scripts: + `linux_artifacts.sh`, `windows.bat`, and `macos.sh`. The mvn-artifacts/ + outputs of each script is combined into a single folder and then processed + by `upload_artifacts.sh`, which signs the files and uploads to Sonatype. + +9. Once all of the artifacts have been pushed to the staging repository, the + repository should have been closed by `upload_artifacts.sh`. Closing triggers + several sanity checks on the repository. If this completes successfully, the + repository can then be `released`, which will begin the process of pushing + the new artifacts to Maven Central (the staging repository will be destroyed + in the process). You can see the complete process for releasing to Maven + Central on the [OSSRH site](https://central.sonatype.org/pages/releasing-the-deployment.html). + +10. We have containers for each release to detect compatibility regressions with + old releases. Generate one for the new release by following the [GCR image + generation instructions][gcr-image]. Summary: + ```bash + # If you haven't previously configured docker: + gcloud auth configure-docker + + # In main grpc repo, add the new version to matrix + ${EDITOR:-nano -w} tools/interop_matrix/client_matrix.py + tools/interop_matrix/create_matrix_images.py --git_checkout --release=v$MAJOR.$MINOR.$PATCH \ + --upload_images --language java + docker pull gcr.io/grpc-testing/grpc_interop_java:v$MAJOR.$MINOR.$PATCH + docker_image=gcr.io/grpc-testing/grpc_interop_java:v$MAJOR.$MINOR.$PATCH \ + tools/interop_matrix/testcases/java__master + + # Create a PR and run ad-hoc test against your PR + ``` +[gcr-image]: https://github.com/grpc/grpc/blob/master/tools/interop_matrix/README.md#step-by-step-instructions-for-adding-a-gcr-image-for-a-new-release-for-compatibility-test + +11. Update gh-pages with the new Javadoc. Generally the file is on repo1 + 15 minutes after publishing: + + ```bash + git checkout gh-pages + git pull --ff-only upstream gh-pages + rm -r javadoc/ + wget -O grpc-all-javadoc.jar "https://repo1.maven.org/maven2/io/grpc/grpc-all/$MAJOR.$MINOR.$PATCH/grpc-all-$MAJOR.$MINOR.$PATCH-javadoc.jar" + unzip -d javadoc grpc-all-javadoc.jar + patch -p1 < ga.patch + rm grpc-all-javadoc.jar + rm -r javadoc/META-INF/ + git add -A javadoc + git commit -m "Javadoc for $MAJOR.$MINOR.$PATCH" + ``` + + Push gh-pages to the main repository and verify the current version is + [live on grpc.io](https://grpc.io/grpc-java/javadoc/). + +12. Add [Release Notes](https://github.com/grpc/grpc-java/releases) for the new tag. + *Make sure that any backports are reflected in the release notes.* -Trigger build as described in "Auto releasing using kokoro" at -go/grpc/java/releasing. - -It runs three jobs on Kokoro, one on each platform. See their scripts: -`linux_artifacts.sh`, `windows.bat`, and `unix.sh` (called directly for OS X; -called within the Docker environment on Linux). The mvn-artifacts/ outputs of -each script is combined into a single folder and then processed by -`upload_artifacts.sh`, which signs the files and uploads to Sonatype. - -Releasing on Maven Central --------------------------- - -Once all of the artifacts have been pushed to the staging repository, the -repository should have been closed by `upload_artifacts.sh`. Closing triggers -several sanity checks on the repository. If this completes successfully, the -repository can then be `released`, which will begin the process of pushing the -new artifacts to Maven Central (the staging repository will be destroyed in the -process). You can see the complete process for releasing to Maven Central on the -[OSSRH site](https://central.sonatype.org/pages/releasing-the-deployment.html). - -Build interop container image ------------------------------ - -We have containers for each release to detect compatibility regressions with old -releases. Generate one for the new release by following the -[GCR image generation instructions](https://github.com/grpc/grpc/blob/master/tools/interop_matrix/README.md#step-by-step-instructions-for-adding-a-gcr-image-for-a-new-release-for-compatibility-test). Update README.md ---------------- -After waiting ~1 day and verifying that the release appears on [Maven +After waiting ~1 day and verifying that the release is indexed on [Maven Central](https://search.maven.org/search?q=g:io.grpc), cherry-pick the commit that updated the README into the master branch. @@ -183,14 +211,6 @@ $ git cherry-pick v$MAJOR.$MINOR.$PATCH^ $ git push --set-upstream origin bump-readme ``` -NOTE: If you add to your ~/.gitconfig the following, you don't need the -`--set-upstream` - -```text -[push] - autoSetupRemote = true -``` - Create a PR and go through the review process Update version referenced by tutorials @@ -202,35 +222,7 @@ of the grpc.io repository. Notify the Community -------------------- -Finally, document and publicize the release. - -1. Add [Release Notes](https://github.com/grpc/grpc-java/releases) for the new tag. - The description should include any major fixes or features since the last release. - You may choose to add links to bugs, PRs, or commits if appropriate. -2. Post a release announcement to [grpc-io](https://groups.google.com/forum/#!forum/grpc-io) - (`grpc-io@googlegroups.com`). The title should be something that clearly identifies - the release (e.g.`GRPC-Java <tag> Released`). - - Note that there may have been backports to the release branch since you - generated the release notes. Please verify that any backports are reflected - in the release notes before sending them out. - -Update Hosted Javadoc ---------------------- - -Now we need to update gh-pages with the new Javadoc: - -```bash -git checkout gh-pages -git pull --ff-only upstream gh-pages -rm -r javadoc/ -wget -O grpc-all-javadoc.jar "http://search.maven.org/remotecontent?filepath=io/grpc/grpc-all/$MAJOR.$MINOR.$PATCH/grpc-all-$MAJOR.$MINOR.$PATCH-javadoc.jar" -unzip -d javadoc grpc-all-javadoc.jar -patch -p1 < ga.patch -rm grpc-all-javadoc.jar -rm -r javadoc/META-INF/ -git add -A javadoc -git commit -m "Javadoc for $MAJOR.$MINOR.$PATCH" -``` - -Push gh-pages to the main repository and verify the current version is [live -on grpc.io](https://grpc.io/grpc-java/javadoc/). +Post a release announcement to [grpc-io](https://groups.google.com/forum/#!forum/grpc-io) +(`grpc-io@googlegroups.com`) with the title `gRPC-Java v$MAJOR.$MINOR.$PATCH +Released`. The email content should link to the GitHub release notes and include +a copy of them. |