You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by zh...@apache.org on 2022/12/22 08:18:18 UTC

[dolphinscheduler-sdk-python] branch main updated: [doc] Release document add (#52)

This is an automated email from the ASF dual-hosted git repository.

zhongjiajie pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler-sdk-python.git


The following commit(s) were added to refs/heads/main by this push:
     new b389018  [doc] Release document add (#52)
b389018 is described below

commit b389018dffdc0f9dcf97cfc6554a5b3b3fabdc5e
Author: Jay Chung <zh...@gmail.com>
AuthorDate: Thu Dec 22 16:18:13 2022 +0800

    [doc] Release document add (#52)
---
 .gitignore |   3 +
 RELEASE.md | 191 +++++++++++++++++++++++++++++++++++++++++++++++++++++++------
 2 files changed, 178 insertions(+), 16 deletions(-)

diff --git a/.gitignore b/.gitignore
index aaf4a8f..d91f0a0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,3 +18,6 @@ htmlcov/
 
 # the pydolphinscheduler config
 config.yaml
+
+# Release
+release/
diff --git a/RELEASE.md b/RELEASE.md
index acdd6ce..adf8d28 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -19,32 +19,191 @@ under the License.
 
 # Release
 
-**PyDolphinScheduler** office release is in [ASF Distribution Directory](https://downloads.apache.org/dolphinscheduler/),
-and it should be released together with [apache-dolphinscheduler](https://github.com/apache/dolphinscheduler).
+**PyDolphinScheduler** office release is in [ASF Distribution Directory](#release-to-apache-distribution),
+but we also have a [PyPi](#release-to-pypi) repository for Python package distribution for convenience.
 
-<!--
-## To ASF Distribution Directory
-
-You could release to [ASF Distribution Directory](https://downloads.apache.org/dolphinscheduler/) according to
-[release guide](../../docs/docs/en/contribute/release/release-prepare.md) in DolphinScheduler
-website.
--->
+## Prepare
 
-## To PyPi
+* Change `version` in `setup.py`.
+* Remove `sphinx-multiversion` dependency in `setup.py`, we still can not fix this issue
+  [Distribute tarball and wheel error with direct dependency](https://github.com/apache/dolphinscheduler/issues/12238)
+* Change `version_ext` about the dolphinscheduler version current support, the syntax is respect [pep-044](https://peps.python.org/pep-0440/#version-specifiers)
+* Run all test locally, `tox -e local-ci && tox -e local-integrate-test`, after you start dolphinscheduler to
+  pass `local-integrate-test`
 
-[PyPI](https://pypi.org), Python Package Index, is a repository of software for the Python programming language.
-
-### Install or Upgrade package
+## Build and Sign Package
 
 We use [build](https://pypi.org/project/build/) to build package, and [twine](https://pypi.org/project/twine/) to
 upload package to PyPi. You could first install and upgrade them by:
 
-```bash
+```shell
+# Install or upgrade dependencies
 python3 -m pip install --upgrade pip build twine
+
+# Add Tag
+VERSION=<VERSION>  # The version of the package you want to release, e.g. 1.2.3
+REMOTE=<REMOTE>  # The git remote name, we usually use `origin` or `remote`
+git tag -a "${VERSION}" -m "Release v${VERSION}"
+git push "${REMOTE}" --tags
+
+# Build
+python setup.py pre_clean && python -m build
+
+# Sign
+cd dist
+gpg --batch --yes --armor --detach-sig apache-dolphinscheduler-"${VERSION}".tar.gz
+gpg --batch --yes --armor --detach-sig apache_dolphinscheduler-"${VERSION}"-py3-none-any.whl
+shasum -a 512 apache-dolphinscheduler-"${VERSION}".tar.gz > apache-dolphinscheduler-"${VERSION}".tar.gz.sha512
+shasum -b -a 512 apache_dolphinscheduler-"${VERSION}"-py3-none-any.whl > apache_dolphinscheduler-"${VERSION}"-py3-none-any.whl.sha512
+```
+
+## Create Draft Release
+
+Go to [GitHub release page](https://github.com/apache/dolphinscheduler-sdk-python/releases) and create a release
+based to the specific tag, and set it as pre-release.
+
+## Release to Apache Distribution
+
+### To Apache SVN
+
+```shell
+svn co https://dist.apache.org/repos/dist/dev/dolphinscheduler/ release/dolphinscheduler
+mkdir -p release/dolphinscheduler/python/"${VERSION}"
+cp apache*dolphinscheduler-"${VERSION}"* release/dolphinscheduler/python/"${VERSION}"
+
+cd release/dolphinscheduler && svn add python && svn commit python -m "Release Apache DolphinScheduler-SDK-Python version ${VERSION}"
 ```
 
-It is highly recommended [releasing package to TestPyPi](#release-to-testpypi) first, to check whether the
-package is correct, and then [release to PyPi](#release-to-pypi).
+### Vote Mail
+
+Create a new vote in dev@dolphinscheduler.apache.org
+
+```text
+TITLE: [VOTE] Release Apache DolphinScheduler SDK Python <VERSION>
+
+BODY:
+
+Hello DolphinScheduler Community,
+
+This is a call for vote to release Apache DolphinScheduler SDK Python version <VERSION>
+
+Release notes: https://github.com/apache/dolphinscheduler-sdk-python/releases/tag/<VERSION>
+
+The release candidates: https://dist.apache.org/repos/dist/dev/dolphinscheduler/python/<VERSION>/
+
+Git tag for the release: https://github.com/apache/dolphinscheduler-sdk-python/tree/<VERSION>
+
+Release Commit ID: https://github.com/apache/dolphinscheduler-sdk-python/commit/02bc4f44cdd136622e403506f6474da0c7fa36fb
+
+Keys to verify the Release Candidate: https://dist.apache.org/repos/dist/dev/dolphinscheduler/KEYS
+
+The vote will be open for at least 72 hours or until necessary number of votes are reached.
+
+Please vote accordingly:
+
+[ ] +1 approve
+[ ] +0 no opinion
+[ ] -1 disapprove with the reason
+
+Checklist for reference:
+
+[ ] Download links are valid.
+[ ] Checksums and PGP signatures are valid.
+[ ] Source code artifacts have correct names matching the current release.
+[ ] LICENSE and NOTICE files are correct for each DolphinScheduler repo.
+[ ] All files have license headers if necessary.
+[ ] No compiled archives bundled in source archive.
+```
+
+### Check Release Candidate
+
+- Artifacts in staging repository are published with `.asc`, and `sha512` files.
+- `LICENSE` and `NOTICE` are in source codes and distribution package.
+- Check `sha512` and `gpg` signature with following command:
+
+```shell
+VERSION=<VERSION>  # The version of the package you want to release, e.g. 1.2.3
+# Download source code
+curl https://dist.apache.org/repos/dist/dev/dolphinscheduler/python/"${VERSION}"/apache-dolphinscheduler-"${VERSION}".tar.gz > apache-dolphinscheduler-"${VERSION}".tar.gz
+curl https://dist.apache.org/repos/dist/dev/dolphinscheduler/python/"${VERSION}"/apache-dolphinscheduler-"${VERSION}".tar.gz.asc > apache-dolphinscheduler-"${VERSION}".tar.gz.asc
+curl https://dist.apache.org/repos/dist/dev/dolphinscheduler/python/"${VERSION}"/apache-dolphinscheduler-"${VERSION}".tar.gz.sha512 > apache-dolphinscheduler-"${VERSION}".tar.gz.sha512
+# Download binary code
+curl https://dist.apache.org/repos/dist/dev/dolphinscheduler/python/"${VERSION}"/apache_dolphinscheduler-"${VERSION}"-py3-none-any.whl > apache_dolphinscheduler-"${VERSION}"-py3-none-any.whl
+curl https://dist.apache.org/repos/dist/dev/dolphinscheduler/python/"${VERSION}"/apache_dolphinscheduler-"${VERSION}"-py3-none-any.whl.asc > apache_dolphinscheduler-"${VERSION}"-py3-none-any.whl.asc
+curl https://dist.apache.org/repos/dist/dev/dolphinscheduler/python/"${VERSION}"/apache_dolphinscheduler-"${VERSION}"-py3-none-any.whl.sha512 > apache_dolphinscheduler-"${VERSION}"-py3-none-any.whl.sha512
+
+# Verify sha512
+sha512sum --check apache-dolphinscheduler-"${VERSION}".tar.gz.sha512
+sha512sum --check apache_dolphinscheduler-"${VERSION}"-py3-none-any.whl.sha512
+# Verify gpg signature
+curl https://dist.apache.org/repos/dist/release/dolphinscheduler/KEYS > KEYS
+gpg --import KEYS
+gpg --verify apache-dolphinscheduler-"${VERSION}".tar.gz.asc
+gpg --verify apache_dolphinscheduler-"${VERSION}"-py3-none-any.whl.asc
+```
+
+Vote result should follow these:
+
+- PMC vote is +1 binding, all others is +1 no binding.
+- Within 72 hours, you get at least 3 (+1 binding), and have more +1 than -1. Vote pass.
+- **Send the closing vote mail to announce the result**. When count the binding and no binding votes, please list the names of voters. An example like this:
+
+    ```text
+    [RESULT][VOTE] Release Apache SkyWalking Python version $VERSION
+    
+    72+ hours passed, we’ve got ($NUMBER) +1 bindings (and ... +1 non-bindings):
+    
+    (list names)
+    +1 bindings:
+    xxx
+    ...
+    
+    +1 non-bindings:
+    xxx
+    ...
+     
+    Thank you for voting, I’ll continue the release process.
+    ```
+
+### Publish
+
+- Move source codes tar balls and distributions to https://dist.apache.org/repos/dist/release/dolphinscheduler/, **you can do this only if you are a PMC member**.
+
+    ```shell
+    svn mv https://dist.apache.org/repos/dist/dev/dolphinscheduler/python/"${VERSION}" https://dist.apache.org/repos/dist/release/dolphinscheduler/python/"${VERSION}"
+    ```
+
+- Update [GitHub release page](https://github.com/apache/dolphinscheduler-sdk-python/releases) and set it as formal release.
+- Send ANNOUNCE email to `dev@dolphinscheduler.apache.org` and `announce@apache.org`.
+
+    ```text
+    Subject: [ANNOUNCE] Apache DolphinScheduler SDK Python $VERSION Released
+
+    Content:
+
+    Hi Community,
+
+    We are glad to announce the release of Apache DolphinScheduler SDK Python $VERSION.
+
+    Apache DolphinScheduler SDK Python is an API for Apache DolphinScheduler which allow you definition your workflow by Python code, aka workflow-as-codes.
+  
+    DolphinScheduler is a distributed and easy-to-extend visual workflow scheduler system,
+    dedicated to solving the complex task dependencies in data processing, making the scheduler system out of the box for data processing.
+
+    Download Links: https://dolphinscheduler.apache.org/#/en-us/download
+
+    Release Notes: https://github.com/apache/dolphinscheduler-sdk-python/releases/tag/$VERSION
+
+    DolphinScheduler Resources:
+    - Issue: https://github.com/apache/dolphinscheduler-sdk-python/issues/
+    - Mailing list: dev@dolphinscheduler.apache.org
+    - Website: https://dolphinscheduler.apache.org
+    - Documents: https://dolphinscheduler.apache.org/python/$VERSION
+    ```
+
+## Release to PyPi
+
+[PyPI](https://pypi.org), Python Package Index, is a repository of software for the Python programming language.
 
 ### Release to TestPyPi