New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BEAM-3255] Updating release guide to use Gradle commands #424
Conversation
-DupdateWorkingCopyVersions=false \ | ||
-DupdateBranchVersions=true \ | ||
-DreleaseVersion="${VERSION}-SNAPSHOT" | ||
git branch ${BRANCH} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need to clarify that the branch is to made on the upstream apache/beam repo and pushed, and not on a fork, or is something done by the release plugin?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It should be done in the upstream repo. I've mentioned 'Apache' there. LMK what you think.
src/contribute/release-guide.md
Outdated
git branch ${BRANCH} | ||
|
||
# Now change the version in existing gradle files, and Python files | ||
sed -i 's/'$RELEASE'/'${NEXT_VERSION_IN_BASE_BRANCH}'/g' build_rules.gradle |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The single quotes as written don't just match strings with single quotes.
Maybe
sed -i -e "s/'${RELEASE}'/'${NEXT_VERSION_IN_BASE_BRANCH}'/g" build_rules.gradle
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice! thanks.
src/contribute/release-guide.md
Outdated
|
||
Version represents the release currently underway, while next version specifies the anticipated next version to be released from that branch. Normally, 1.2.0 is followed by 1.3.0, while 1.2.3 is followed by 1.2.4. | ||
|
||
Use Maven release plugin to create the release branch and update the current branch to use the new development version. This command applies for the new major or minor version. (Warning: this command automatically pushes changes to the code repository.) | ||
**NOTE**: Only if you are doing an incremental/hotfix releasei (e.g. 2.5.1), please check out the previous release tag, before running the following instructions: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
typo: releasei -> release
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good catch. Thanks Scott.
src/contribute/release-guide.md
Outdated
NEXT_VERSION="1.2.4" | ||
BRANCH_NAME="release-${VERSION}" | ||
DEVELOPMENT_VERSION="${NEXT_VERSION}-SNAPSHOT" | ||
RELEASE_VERSION=2.5.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Either this should be RELEASE=2.5.0 or occurrences of $RELEASE below changed to match
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ugh, sorry about that. Thanks.
src/contribute/release-guide.md
Outdated
-DreleaseVersion=${VERSION} \ | ||
-Dtag=${RC_TAG} \ | ||
-DupdateWorkingCopyVersions=false | ||
./gradlew release -Prelease.newVersion=${RELEASE_VERSION}-SNAPSHOT \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is release.newVersion 2.5.0-SNAPSHOT or 2.6.0-SNAPSHOT? ${NEXT_VERSION_IN_BASE_BRANCH}-SNAPSHOT ?
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
TODO: Add update of runners - and dataflow.container_version. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
TODO: Information on how to create the new key |
I've proposed a set of changes for source distribution here: pabloem#2 |
I've merged your changes, scott, and added a few to fix some todos that we discovered earlier. I'm still unclear if the instructions to update dataflow.container_version should be here, or in a Dataflow release guide. |
@pabloem Can you elaborate on what you're referring to with I want to get this unblocked so that we can follow this release guide for the 2.5.0 release. I seem to recall that we need to update |
I think I agree with that. I've covered all the other TODOs that we ran into during our demo with Ahmet. So we can do the final review for this PR. r: @aaltay PTAL |
src/contribute/release-guide.md
Outdated
@@ -158,12 +158,11 @@ Adjust any of the above properties to the improve clarity and presentation of th | |||
|
|||
### Verify that a Release Build Works | |||
|
|||
Run `mvn -Prelease clean install` to ensure that the build processes that are specific to that | |||
profile are in good shape. | |||
Run `./gradlew -PisRelease clean build` to ensure that the build processes that are specific to that profile are in good shape. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
From a clean workspace git clean -fdx
, perform ./gradlew -PisRelease build
The gradle tasks you list don't run in the order that you specified, they just get added to the task tree and execute in dependency order (and if there is no dependency between them, then in arbitrary order).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure whether we should instruct users to use --no-parallel
or not here as well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ah yes that's true
Hey @pabloem @alanmyrvold , I added more updates in commit 9eab89c. Please take a look and review it. Thanks! |
I didn't realize this PR is still open. The published release guide still references the old Maven commands. If this doc is close or good enough, can it be merged and continue to iterate in separate PR's? |
Hey @alanmyrvold, could you please review my recent updates: 9eab89c, 9d0fd1c ? |
src/contribute/release-guide.md
Outdated
|
||
BASE_RELEASE=2.5.0 | ||
RELEASE=2.5.1 | ||
NEXT_VERSION_IN_BASE_BRANCH=2.5.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
NEXT_VERSION_IN_BASE_BRANCH=2.6.0
src/contribute/release-guide.md
Outdated
|
||
The rest of this guide assumes that commands are run in the root of a repository on `${BRANCH_NAME}` with the above environment variables set. | ||
|
||
### Update the beam version on master to the next dev version |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This step should be done on master and is the purpose of the sed scripts above?
src/contribute/release-guide.md
Outdated
|
||
Check out the release branch. | ||
|
||
git checkout ${BRANCH_NAME} | ||
git checkout ${BRANCH} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This step needs to be moved later, after changing versions on master?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We do all master update in previous sed scripts. The rest of instructions all happen in release branch.
Hey @alanmyrvold , please review commit d238c9e, which addressed your comments above. |
|
||
1. Add and commit all the files. | ||
|
||
svn add beam/${VERSION} | ||
svn add beam/${RELEASE} | ||
svn commit | ||
|
||
1. Verify that files are [present](https://dist.apache.org/repos/dist/dev/beam). | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need a step to build the python binaries and stage on dist.apache.org/dev/beam, like https://dist.apache.org/repos/dist/dev/beam/2.5.0/
* Set up the necessary git commands to account for the new and deleted files from the javadoc. | ||
* Update the Javadoc link on this page to point to the new version (in `src/documentation/sdks/javadoc/current.md`). | ||
|
||
#### Create Pydoc | ||
Add the new Pydoc to [SDK API Reference page]({{ site.baseurl }}/documentation/sdks/pydoc/) page, as follows: | ||
|
||
* Copy the generated Pydoc into the website repository: `cp -r ${PYDOC_ROOT} src/documentation/sdks/pydoc/${VERSION}`. | ||
* Copy the generated Pydoc into the website repository: `cp -r ${PYDOC_ROOT} src/documentation/sdks/pydoc/${RELEASE}`. | ||
* Remove `.doctrees` directory. | ||
* Update the Pydoc link on this page to point to the new version (in `src/documentation/sdks/pydoc/current.md`). | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need to push the RC1 tag to github?
And verify that the cythonized built python artifacts are on dist.apache.org along with the source?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this step will push RC1 tag to github: https://github.com/pabloem/beam-site/blob/372c93ecbafbf3a1440492df1e12050dfe939e91/src/contribute/release-guide.md#build-and-stage-java-artifacts-with-maven
Hey @alanmyrvold @robertwb , please review this commit: ab15c1b . Thanks! |
Re: @robertwb, I think so. @alanmyrvold what do you think? |
retest this please |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@pabloem please address comments before merging.
sudo apt-get install gcc | ||
sudo apt-get install python-dev | ||
``` | ||
Make sure your ```time``` alias to ```/usr/bin/time```, if not: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do we need time
for release verification?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
python tests script uses time
. If /usr/bin/time
is not alias to time
, tests will fail.
svn commit | ||
|
||
1. Verify that files are [present](https://dist.apache.org/repos/dist/dev/beam). | ||
|
||
### Stage python binaries on dist.apache.org |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we explain how to generate all python dependencies? (If not could we file a JIRA?)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't explain that so far. Do we need this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I meant, all python "artifacts". Sorry for the confusion. I mean the tar ball, and platform dependent whl files.
retest this please |
1 similar comment
retest this please |
This PR is ready to merge. Issues above were discussed offline. |
@asfgit merge |
No description provided.