Lines Matching +full:release +full:- +full:please +full:- +full:- +full:branches +full:- +full:- +full:main
1 How to Create a Release of GRPC Java (for Maintainers Only)
5 ------------------
7 - Ubuntu 14.04 with Docker 13.03.0 that runs CentOS 7
8 - Windows 7 64-bit with Visual Studio
9 - Mac OS X 10.14.6
14 ----------------
15 Many of the following commands expect release-specific variables to be set. Set
19 $ MAJOR=1 MINOR=7 PATCH=0 # Set appropriately for new release
22 core/src/main/java/io/grpc/internal/GrpcUtil.java
29 examples/example-*/build.gradle
30 examples/example-*/pom.xml
35 Branching the Release
36 ---------------------
37 The first step in the release process is to create a release branch and bump
38 the SNAPSHOT version. Our release branches follow the naming
43 1. Review the issues in the current release [milestone](https://github.com/grpc/grpc-java/milestone…
45 closed. Be aware of the issues with the [TODO:release blocker][] label.
48 ``1.8.0-SNAPSHOT``).
51 $ git checkout -b bump-version master
52 # Change version to next minor (and keep -SNAPSHOT)
53 $ sed -i 's/[0-9]\+\.[0-9]\+\.[0-9]\+\(.*CURRENT_GRPC_VERSION\)/'$MAJOR.$((MINOR+1)).0'\1/' \
55 $ sed -i s/$MAJOR.$MINOR.$PATCH/$MAJOR.$((MINOR+1)).0/ \
58 $ git commit -a -m "Start $MAJOR.$((MINOR+1)).0 development cycle"
61 4. Create the release branch starting just before your commit and push it to GitHub:
65 $ git checkout -b v$MAJOR.$MINOR.x \
66 …$(git log --pretty=format:%H --grep "^Start $MAJOR.$((MINOR+1)).0 development cycle$" upstream/mas…
69 5. Continue with Google-internal steps at go/grpc/java/releasing, but stop
71 6. Create a milestone for the next release.
72 7. Move items out of the release milestone that didn't make the cut. Issues that
73 may be backported should stay in the release milestone. Treat issues with the
74 'release blocker' label with special care.
75 8. Begin compiling release notes. This produces a starting point:
78 $ echo "## gRPC Java $MAJOR.$MINOR.0 Release Notes" && echo && \
79 …git shortlog "$(git merge-base upstream/v$MAJOR.$((MINOR-1)).x upstream/v$MAJOR.$MINOR.x)"..upstre…
80 echo && echo && echo "Backported commits in previous release:" && \
81 …git log --oneline "$(git merge-base v$MAJOR.$((MINOR-1)).0 upstream/v$MAJOR.$MINOR.x)"..v$MAJOR.$(…
84 [TODO:release blocker]: https://github.com/grpc/grpc-java/issues?q=label%3A%22TODO%3Arelease+blocke…
85 [TODO:backport]: https://github.com/grpc/grpc-java/issues?q=label%3ATODO%3Abackport
87 Tagging the Release
88 -------------------
90 1. Verify there are no open issues in the release milestone. Open issues should
92 [TODO:release blocker][] nor [TODO:backport][] issues (open or closed), or
94 2. Ensure that Google-internal steps completed at go/grpc/java/releasing#before-tagging-a-release.
95 3. For vMajor.Minor.x branch, change `README.md` to refer to the next release
97 version was updated since the last release.
102 $ git checkout -b release-v$MAJOR.$MINOR.$PATCH
106 $ ${EDITOR:-nano -w} README.md
108 $ git commit -a -m "Update README etc to reference $MAJOR.$MINOR.$PATCH"
110 4. Change root build files to remove "-SNAPSHOT" for the next release version
114 # Change version to remove -SNAPSHOT
115 $ sed -i 's/-SNAPSHOT\(.*CURRENT_GRPC_VERSION\)/\1/' "${VERSION_FILES[@]}"
116 $ sed -i s/-SNAPSHOT// compiler/src/test{,Lite}/golden/Test{,Deprecated}Service.java.txt
118 $ git commit -a -m "Bump version to $MAJOR.$MINOR.$PATCH"
119 $ git tag -a v$MAJOR.$MINOR.$PATCH -m "Version $MAJOR.$MINOR.$PATCH"
121 5. Change root build files to the next snapshot version (e.g. `0.7.1-SNAPSHOT`).
125 # Change version to next patch and add -SNAPSHOT
126 …$ sed -i 's/[0-9]\+\.[0-9]\+\.[0-9]\+\(.*CURRENT_GRPC_VERSION\)/'$MAJOR.$MINOR.$((PATCH+1))-SNAPSH…
128 $ sed -i s/$MAJOR.$MINOR.$PATCH/$MAJOR.$MINOR.$((PATCH+1))-SNAPSHOT/ \
131 $ git commit -a -m "Bump version to $MAJOR.$MINOR.$((PATCH+1))-SNAPSHOT"
133 6. Go through PR review and push the release tag and updated release branch to
138 $ git merge --ff-only release-v$MAJOR.$MINOR.$PATCH
142 7. Close the release milestone.
145 ---------------
152 called within the Docker environment on Linux). The mvn-artifacts/ outputs of
157 --------------------------
165 [OSSRH site](https://central.sonatype.org/pages/releasing-the-deployment.html).
168 -----------------------------
170 We have containers for each release to detect compatibility regressions with old
171 releases. Generate one for the new release by following the
172 …/tools/interop_matrix/README.md#step-by-step-instructions-for-adding-a-gcr-image-for-a-new-release…
175 ----------------
176 After waiting ~1 day and verifying that the release appears on [Maven
177 Central](https://search.maven.org/search?q=g:io.grpc), cherry-pick the commit
181 $ git checkout -b bump-readme master
182 $ git cherry-pick v$MAJOR.$MINOR.$PATCH^
183 $ git push --set-upstream origin bump-readme
187 `--set-upstream`
197 --------------------------------------
204 --------------------
205 Finally, document and publicize the release.
207 1. Add [Release Notes](https://github.com/grpc/grpc-java/releases) for the new tag.
208 The description should include any major fixes or features since the last release.
210 2. Post a release announcement to [grpc-io](https://groups.google.com/forum/#!forum/grpc-io)
211 (`grpc-io@googlegroups.com`). The title should be something that clearly identifies
212 the release (e.g.`GRPC-Java <tag> Released`).
213 - Note that there may have been backports to the release branch since you
214 generated the release notes. Please verify that any backports are reflected
215 in the release notes before sending them out.
218 ---------------------
220 Now we need to update gh-pages with the new Javadoc:
223 git checkout gh-pages
224 git pull --ff-only upstream gh-pages
225 rm -r javadoc/
226 wget -O grpc-all-javadoc.jar "http://search.maven.org/remotecontent?filepath=io/grpc/grpc-all/$MAJO…
227 unzip -d javadoc grpc-all-javadoc.jar
228 patch -p1 < ga.patch
229 rm grpc-all-javadoc.jar
230 rm -r javadoc/META-INF/
231 git add -A javadoc
232 git commit -m "Javadoc for $MAJOR.$MINOR.$PATCH"
235 Push gh-pages to the main repository and verify the current version is [live
236 on grpc.io](https://grpc.io/grpc-java/javadoc/).