Repository: beam-site Updated Branches: refs/heads/asf-site 1b73ee9b3 -> 97641db9f
update release notes post 0.6.0 release Project: http://git-wip-us.apache.org/repos/asf/beam-site/repo Commit: http://git-wip-us.apache.org/repos/asf/beam-site/commit/97964d76 Tree: http://git-wip-us.apache.org/repos/asf/beam-site/tree/97964d76 Diff: http://git-wip-us.apache.org/repos/asf/beam-site/diff/97964d76 Branch: refs/heads/asf-site Commit: 97964d764f2dd8c9e50b21d101a39a35f3940008 Parents: 1b73ee9 Author: Ahmet Altay <[email protected]> Authored: Thu Mar 16 16:59:20 2017 -0700 Committer: Davor Bonaci <[email protected]> Committed: Tue Apr 18 16:26:42 2017 -0700 ---------------------------------------------------------------------- src/contribute/release-guide.md | 63 ++++++++++++++++++++++++++++++------ 1 file changed, 53 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/beam-site/blob/97964d76/src/contribute/release-guide.md ---------------------------------------------------------------------- diff --git a/src/contribute/release-guide.md b/src/contribute/release-guide.md index db0b558..c60e527 100644 --- a/src/contribute/release-guide.md +++ b/src/contribute/release-guide.md @@ -75,7 +75,7 @@ This will list your GPG keys. One of these should reflect your Apache account, f Here, the key ID is the 8-digit hex string in the `pub` line: `845E6689`. -Now, add your Apache GPG key to the Beamâs `KEYS` file both in [`dev`](https://dist.apache.org/repos/dist/dev/beam/KEYS) and [`release`](https://dist.apache.org/repos/dist/release/beam/KEYS) repositories at `dist.apache.org`. Follow the instructions listed at the top of these files. +Now, add your Apache GPG key to the Beamâs `KEYS` file both in [`dev`](https://dist.apache.org/repos/dist/dev/beam/KEYS) and [`release`](https://dist.apache.org/repos/dist/release/beam/KEYS) repositories at `dist.apache.org`. Follow the instructions listed at the top of these files. (Note: Only PMC members have write access to the release repository. If you end up getting 403 errors ask on the mailing list for assistance.) Configure `git` to use this key when signing code by giving it your key ID, as follows: @@ -118,6 +118,10 @@ Configure access to the [Apache Nexus repository](http://repository.apache.org/) Get ready for updating the Beam website by following the [website development instructions]({{ site.baseurl }}/contribute/contribution-guide/#website). +#### Register to PyPI + +Release manager needs to have an account with PyPI. If you need one, [register](https://pypi.python.org/pypi?%3Aaction=register_form) at PyPI. You also need to be a maintainer (or an owner) of the [apache-beam](https://pypi.python.org/pypi/apache-beam) package in order to push a new release. Ask on the mailing list for assistance. + ### Create a new version in JIRA When contributors resolve an issue in JIRA, they are tagging it with a release that will contain their changes. With the release currently underway, new issues should be resolved against a subsequent future release. Therefore, you should create a release item for this subsequent release, as follows: @@ -152,7 +156,7 @@ Adjust any of the above properties to the improve clarity and presentation of th ### Verify that a Release Build Works -Run `mvn -Prelease` to ensure that the build processes that are specific to that +Run `mvn -Prelease clean install` to ensure that the build processes that are specific to that profile are in good shape. ### Update and Verify Javadoc @@ -210,6 +214,19 @@ Check out the release branch. 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 Python SDK version + +In the master branch, update Python SDK [version](https://github.com/apache/beam/blob/master/sdks/python/apache_beam/version.py) identifier to the next development version (e.g. `1.2.3.dev` to `1.3.0.dev`). + +In the release branch, update the Python SDK version to the release version (e.g. `1.2.3.dev` to `1.2.3`). + +### Update release specific configurations + +1. Update archetypes: + [example](https://github.com/apache/beam/commit/d375cfa126fd7be9eeeec34f39c2b9b856f324bf) +1. Update runner specific configurations: + [example](https://github.com/apache/beam/commit/f572328ce23e70adee8001e3d10f1479bd9a380d) + ### Checklist to proceed to the next step 1. Release Managerâs GPG key is published to `dist.apache.org` @@ -263,13 +280,22 @@ Copy the source release to the dev repository of `dist.apache.org`. 1. Make a directory for the new release: mkdir beam/${VERSION} + cd beam/${VERSION} 1. Copy and rename the Beam source distribution, hashes, and GPG signature: - cp ${BEAM_ROOT}/target/beam-parent-${VERSION}-source-release.zip beam/${VERSION}/apache-beam-${VERSION}-source-release.zip - cp ${BEAM_ROOT}/target/beam-parent-${VERSION}-source-release.zip.asc beam/${VERSION}/apache-beam-${VERSION}-source-release.zip.asc - cp ${BEAM_ROOT}/target/beam-parent-${VERSION}-source-release.zip.md5 beam/${VERSION}/apache-beam-${VERSION}-source-release.zip.md5 - cp ${BEAM_ROOT}/target/beam-parent-${VERSION}-source-release.zip.sha1 beam/${VERSION}/apache-beam-${VERSION}-source-release.zip.sha1 + cp ${BEAM_ROOT}/target/apache-beam-${VERSION}-source-release.zip . + cp ${BEAM_ROOT}/target/apache-beam-${VERSION}-source-release.zip.asc . + cp ${BEAM_ROOT}/sdks/python/target/apache-beam-${VERSION}.zip + apache-beam-${VERSION}-python.zip + +1. Create hashes for source files and sign the python source file file + + sha1sum apache-beam-${VERSION}.tar.gz > apache-beam-${VERSION}.tar.gz.sha1 + md5sum apache-beam-${VERSION}.tar.gz > apache-beam-${VERSION}.tar.gz.md5 + gpg --armor --detach-sig apache-beam-${VERSION}-python.zip + sha1sum apache-beam-${VERSION}-python.zip > apache-beam-${VERSION}-python.zip.sha1 + md5sum apache-beam-${VERSION}-python.zip > apache-beam-${VERSION}-python.zip.md5 1. Add and commit all the files. @@ -282,7 +308,7 @@ Copy the source release to the dev repository of `dist.apache.org`. Create the Python SDK documentation using sphinx by running a helper script. ``` -cd sdks/python && ./generate_pydoc.sh +cd sdks/python && tox -e docs ``` By default the Pydoc is generated in `sdks/python/target/docs/_build`. Let `${PYDOC_ROOT}` be the absolute path to `_build`. @@ -301,14 +327,15 @@ candidate into the source tree of the website. Add the new Javadoc to [SDK API Reference page]({{ site.baseurl }}/documentation/sdks/javadoc/) page, as follows: * Unpack the Maven artifact `org.apache.beam:beam-sdks-java-javadoc` into some temporary location. Call this `${JAVADOC_TMP}`. -* Copy the generated Javadoc into the website repository: `cp -r ${JAVADOC_TMP} documentation/sdks/javadoc/${VERSION}`. +* Copy the generated Javadoc into the website repository: `cp -r ${JAVADOC_TMP} src/documentation/sdks/javadoc/${VERSION}`. * 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} documentation/sdks/pydoc/${VERSION}`. +* Copy the generated Pydoc into the website repository: `cp -r ${PYDOC_ROOT} src/documentation/sdks/pydoc/${VERSION}`. +* Remove `.doctrees` directory. * Update the Pydoc link on this page to point to the new version (in `src/documentation/sdks/pydoc/current.md`). Finally, propose a pull request with these changes. (Donât merge before finalizing the release.) @@ -319,6 +346,13 @@ Finally, propose a pull request with these changes. (Donât merge before finali 1. Source distribution deployed to the dev repository of [dist.apache.org](https://dist.apache.org/repos/dist/dev/beam/) 1. Website pull request proposed to list the [release]({{ site.baseurl }}/use/releases/), publish the [Java API reference manual]({{ site.baseurl }}/documentation/sdks/javadoc/), and publish the [Python API reference manual]({{ site.baseurl }}/documentation/sdks/pydoc/). +You can (optionally) also do additional verification by: +1. Check that Python zip file contains the `README.md`, `NOTICE`, and `LICENSE` files. +1. Check hashes (e.g. `md5sum -c *.md5` and `sha1sum -c *.sha1`) +1. Check signatures (e.g. `gpg --verify apache-beam-1.2.3-python.zip.asc apache-beam-1.2.3-python.zip`) +1. `grep` for legal headers in each file. +1. Run all jenkins suites and include links to passing tests in the voting email. (Select "Run with parameters") + ********** ## Vote on the release candidate @@ -343,6 +377,7 @@ Start the review-and-vote thread on the dev@ mailing list. Hereâs an email tem * all artifacts to be deployed to the Maven Central Repository [4], * source code tag "v1.2.3-RC3" [5], * website pull request listing the release and publishing the API reference manual [6]. + * Python artifacts are deployed along with the source release to the dist.apache.org [2]. The vote will be open for at least 72 hours. It is adopted by majority approval, with at least 3 PMC affirmative votes. @@ -404,6 +439,13 @@ Once the release candidate has been reviewed and approved by the community, the Use the Apache Nexus repository to release the staged binary artifacts to the Maven Central repository. In the `Staging Repositories` section, find the relevant release candidate `orgapachebeam-XXX` entry and click `Release`. Drop all other release candidates that are not being released. +### Deploy Python artifacts to PyPI + +1. Create a new release and upload the Python zip file for the new release using the [PyPI UI] (https://pypi.python.org/pypi/apache-beam) +1. Alternatively, use the command line tool to upload the new release `twine upload apache-beam-${VERSION}.zip` + +Note: It is important to rename `apache-beam-${VERSION}-python.zip` to `apache-beam-${VERSION}.zip` before uploading, because PyPI expects a filename in the `<package-name>-<package-version>` format. + #### Deploy source release to dist.apache.org Copy the source release from the `dev` repository to the `release` repository at `dist.apache.org` using Subversion. @@ -426,9 +468,10 @@ In JIRA, inside [version management](https://issues.apache.org/jira/plugins/serv * Maven artifacts released and indexed in the [Maven Central Repository](https://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache.beam%22) * Source distribution available in the release repository of [dist.apache.org](https://dist.apache.org/repos/dist/release/beam/) +* Source distribution removed from the dev repository of [dist.apache.org](https://dist.apache.org/repos/dist/dev/beam/) * Website pull request to [list the release]({{ site.baseurl }}/use/releases/) and publish the [API reference manual]({{ site.baseurl }}/documentation/sdks/javadoc/) merged * Release tagged in the source code repository -* Release version finalized in JIRA +* Release version finalized in JIRA. (Note: Not all committers have administrator access to JIRA. If you end up getting permissions errors ask on the mailing list for assistance.) **********
