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

jedcunningham pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new 339eb0a  Update helm chart release docs (#18612)
339eb0a is described below

commit 339eb0ae41adb3a3b20459ab6ea4c7f6aef87360
Author: Jed Cunningham <66968678+jedcunning...@users.noreply.github.com>
AuthorDate: Wed Sep 29 14:13:37 2021 -0600

    Update helm chart release docs (#18612)
---
 dev/README_RELEASE_HELM_CHART.md         | 88 +++++++++++++++++++++-----------
 docs/exts/docs_build/docs_builder.py     |  3 ++
 docs/exts/docs_build/helm_chart_utils.py | 32 ++++++++++++
 docs/publish_docs.py                     |  8 ++-
 4 files changed, 99 insertions(+), 32 deletions(-)

diff --git a/dev/README_RELEASE_HELM_CHART.md b/dev/README_RELEASE_HELM_CHART.md
index 89f09a5..ecc81a8 100644
--- a/dev/README_RELEASE_HELM_CHART.md
+++ b/dev/README_RELEASE_HELM_CHART.md
@@ -22,6 +22,7 @@
 
 - [Prepare the Apache Airflow Helm Chart Release 
Candidate](#prepare-the-apache-airflow-helm-chart-release-candidate)
   - [Pre-requisites](#pre-requisites)
+  - [Build Changelog](#build-changelog)
   - [Build RC artifacts](#build-rc-artifacts)
   - [Prepare Vote email on the Apache Airflow release 
candidate](#prepare-vote-email-on-the-apache-airflow-release-candidate)
 - [Verify the release candidate by PMCs](#verify-the-release-candidate-by-pmcs)
@@ -33,8 +34,8 @@
 - [Publish the final release](#publish-the-final-release)
   - [Summarize the voting for the 
release](#summarize-the-voting-for-the-release)
   - [Publish release to SVN](#publish-release-to-svn)
+  - [Publish release tag](#publish-release-tag)
   - [Publish documentation](#publish-documentation)
-  - [Update `index.yaml` to Airflow 
Website](#update-indexyaml-to-airflow-website)
   - [Notify developers of release](#notify-developers-of-release)
   - [Update Announcements page](#update-announcements-page)
   - [Remove old releases](#remove-old-releases)
@@ -50,6 +51,14 @@ details the steps for releasing Helm Chart.
 
 - Helm version >= 3.5.4
 
+## Build Changelog
+
+Before creating the RC, you need to build and commit the changelog for the 
release. For example, to list the
+commits between the last release, `1.1.0`, and `main`:
+
+```shell
+git log --oneline helm-chart/1.1.0..main --pretty='format:- %s' -- chart/ 
docs/helm-chart/
+```
 
 ## Build RC artifacts
 
@@ -209,34 +218,37 @@ official Apache releases must not include the rcN suffix.
 
 Subject:
 
-```
-[VOTE] Release Apache Airflow Helm Chart 1.0.1 based on 1.0.1rc1
+```shell
+cat <<EOF
+[VOTE] Release Apache Airflow Helm Chart ${VERSION_WITHOUT_RC} based on 
${VERSION}
+EOF
 ```
 
 Body:
 
-```
+```shell
+cat <<EOF
 Hello Apache Airflow Community,
 
-This is a call for the vote to release Helm Chart version 1.0.1.
+This is a call for the vote to release Helm Chart version 
${VERSION_WITHOUT_RC}.
 
 The release candidate is available at:
-https://dist.apache.org/repos/dist/dev/airflow/helm-chart/1.0.1rc1/
+https://dist.apache.org/repos/dist/dev/airflow/helm-chart/$VERSION/
 
-airflow-chart-1.0.1-source.tar.gz - is the "main source release" that comes 
with INSTALL instructions.
-airflow-1.0.1.tgz - is the binary Helm Chart release.
+airflow-chart-${VERSION_WITHOUT_RC}-source.tar.gz - is the "main source 
release" that comes with INSTALL instructions.
+airflow-${VERSION_WITHOUT_RC}.tgz - is the binary Helm Chart release.
 
 Public keys are available at: https://www.apache.org/dist/airflow/KEYS
 
 For convenience "index.yaml" has been uploaded (though excluded from voting), 
so you can also run the below commands.
 
-helm repo add apache-airflow-dev 
https://dist.apache.org/repos/dist/dev/airflow/helm-chart/1.0.1rc1/
+helm repo add apache-airflow-dev 
https://dist.apache.org/repos/dist/dev/airflow/helm-chart/$VERSION/
 helm repo update
 helm install airflow apache-airflow-dev/airflow
 
-airflow-1.0.1.tgz.prov - is also uploaded for verifying Chart Integrity, 
though not strictly required for releasing the artifact based on ASF Guidelines.
+airflow-${VERSION_WITHOUT_RC}.tgz.prov - is also uploaded for verifying Chart 
Integrity, though not strictly required for releasing the artifact based on ASF 
Guidelines.
 
-$ helm verify airflow-1.0.1.tgz --keyring  ~/.gnupg/secring.gpg
+$ helm verify airflow-${VERSION_WITHOUT_RC}.tgz --keyring  ~/.gnupg/secring.gpg
 Signed by: Kaxil Naik <kaxiln...@apache.org>
 Signed by: Kaxil Naik <kaxiln...@gmail.com>
 Using Key With Fingerprint: CDE15C6E4D3A8EC4ECF4BA4B6674E08AD7DE406F
@@ -257,18 +269,20 @@ encouraged to test the release and vote with 
"(non-binding)".
 
 For license checks, the .rat-excludes files is included, so you can run the 
following to verify licenses (just update $PATH_TO_RAT):
 
-tar -xvf airflow-chart-1.0.1-source.tar.gz
-cd airflow-chart-1.0.1
+tar -xvf airflow-chart-${VERSION_WITHOUT_RC}-source.tar.gz
+cd airflow-chart-${VERSION_WITHOUT_RC}
 java -jar $PATH_TO_RAT/apache-rat-0.13/apache-rat-0.13.jar chart -E 
.rat-excludes
 
-Please note that the version number excludes the `rcX` string, so it's now
-simply 1.0.1. This will allow us to rename the artifact without modifying
+Please note that the version number excludes the \`rcX\` string, so it's now
+simply ${VERSION_WITHOUT_RC}. This will allow us to rename the artifact 
without modifying
 the artifact checksums when we actually release.
 
 Thanks,
 <your name>
+EOF
 ```
 
+Note, you need to update the `helm verify` output and the end of the voting 
period in the body.
 
 # Verify the release candidate by PMCs
 
@@ -495,6 +509,17 @@ svn commit -m "Release Airflow Helm Chart Check ${VERSION} 
from ${RC}"
 
 Verify that the packages appear in [Airflow Helm 
Chart](https://dist.apache.org/repos/dist/release/airflow/helm-chart/).
 
+## Publish release tag
+
+Create and push the release tag:
+
+```shell
+cd "${AIRFLOW_REPO_ROOT}"
+git checkout helm-chart/${RC}
+git tag -s helm-chart/${VERSION}
+git push origin helm-chart/${VERSION}
+```
+
 ## Publish documentation
 
 In our cases, documentation for the released versions is published in a 
separate repository -
@@ -514,10 +539,23 @@ between the two repositories to be able to build the 
documentation.
 
     ```shell
     cd "${AIRFLOW_REPO_ROOT}"
+    git checkout helm-chart/${VERSION}
     ./breeze build-docs -- --package-filter helm-chart --for-production
     ```
 
-- We upload `index.yaml` to the Airflow website to allow: `helm repo add 
https://airflow.apache.org`.
+- Update `index.yaml`
+
+  We upload `index.yaml` to the Airflow website to allow: `helm repo add 
https://airflow.apache.org`.
+
+    ```shell
+    cd "${AIRFLOW_SITE_DIRECTORY}"
+    curl 
https://dist.apache.org/repos/dist/dev/airflow/helm-chart/${RC}/index.yaml -o 
index.yaml
+    https://dist.apache.org/repos/dist/dev/airflow/helm-chart/${VERSION}
+    sed -i 
"s|https://dist.apache.org/repos/dist/dev/airflow/helm-chart/$RC|https://downloads.apache.org/airflow/helm-chart/$VERSION|"
 index.yaml
+
+    git commit -m "Add documentation for Apache Airflow Helm Chart ${VERSION}"
+    git push
+    ```
 
 - Now you can preview the documentation.
 
@@ -528,26 +566,12 @@ between the two repositories to be able to build the 
documentation.
 - Copy the documentation to the ``airflow-site`` repository.
 
     ```shell
-    ./docs/publish_docs.py --package-filter apache-airflow --package-filter 
docker-stack
+    ./docs/publish_docs.py --package-filter helm-chart
     cd "${AIRFLOW_SITE_DIRECTORY}"
     git commit -m "Add documentation for Apache Airflow Helm Chart ${VERSION}"
     git push
     ```
 
-## Update `index.yaml` to Airflow Website
-
-We upload `index.yaml` to the Airflow website to allow: `helm repo add 
https://airflow.apache.org`.
-
-  ```shell
-  cd "${AIRFLOW_SITE_DIRECTORY}"
-  curl 
https://dist.apache.org/repos/dist/dev/airflow/helm-chart/${RC}/index.yaml -o 
index.yaml
-  https://dist.apache.org/repos/dist/dev/airflow/helm-chart/${VERSION}
-  sed -i 
"s|https://dist.apache.org/repos/dist/dev/airflow/helm-chart/$RC|https://downloads.apache.org/airflow/helm-chart/$VERSION|"
 index.yaml
-
-  git commit -m "Add documentation for Apache Airflow Helm Chart ${VERSION}"
-  git push
-  ```
-
 ## Notify developers of release
 
 - Notify us...@airflow.apache.org (cc'ing d...@airflow.apache.org and 
annou...@apache.org) that
@@ -574,6 +598,8 @@ The source release, as well as the "binary" Helm Chart 
release, are available:
 📦   Official Sources: 
https://airflow.apache.org/helm-chart/installing-helm-chart-from-sources.html
 📦   ArtifactHub: https://artifacthub.io/packages/helm/apache-airflow/airflow
 📚   Docs: https://airflow.apache.org/docs/helm-chart/$VERSION/
+🚀   Quick Start Installation Guide: 
https://airflow.apache.org/docs/helm-chart/$VERSION/quick-start.html
+🛠️   Changelog: 
https://airflow.apache.org/docs/helm-chart/$VERSION/changelog.html
 
 Thanks to all the contributors who made this possible.
 
diff --git a/docs/exts/docs_build/docs_builder.py 
b/docs/exts/docs_build/docs_builder.py
index de92880..7164ac6 100644
--- a/docs/exts/docs_build/docs_builder.py
+++ b/docs/exts/docs_build/docs_builder.py
@@ -34,6 +34,7 @@ from docs.exts.docs_build.code_utils import (
     pretty_format_path,
 )
 from docs.exts.docs_build.errors import DocBuildError, parse_sphinx_warnings
+from docs.exts.docs_build.helm_chart_utils import chart_version
 from docs.exts.docs_build.spelling_checks import SpellingError, 
parse_spelling_warnings
 
 console = Console(force_terminal=True, color_system="standard", 
width=CONSOLE_WIDTH)
@@ -100,6 +101,8 @@ class AirflowDocsBuilder:
         if self.package_name.startswith('apache-airflow-providers-'):
             provider = next(p for p in ALL_PROVIDER_YAMLS if p['package-name'] 
== self.package_name)
             return provider['versions'][0]
+        if self.package_name == 'helm-chart':
+            return chart_version()
         return Exception(f"Unsupported package: {self.package_name}")
 
     @property
diff --git a/docs/exts/docs_build/helm_chart_utils.py 
b/docs/exts/docs_build/helm_chart_utils.py
new file mode 100644
index 0000000..2debab2
--- /dev/null
+++ b/docs/exts/docs_build/helm_chart_utils.py
@@ -0,0 +1,32 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+import os
+
+import yaml
+
+CHART_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, 
os.pardir, os.pardir, "chart"))
+CHART_YAML_PATH = os.path.join(CHART_DIR, "Chart.yaml")
+
+
+def chart_yaml() -> dict:
+    with open(CHART_YAML_PATH) as f:
+        return yaml.safe_load(f)
+
+
+def chart_version() -> str:
+    return chart_yaml()["version"]
diff --git a/docs/publish_docs.py b/docs/publish_docs.py
index 92e5406..19e2281 100755
--- a/docs/publish_docs.py
+++ b/docs/publish_docs.py
@@ -49,7 +49,13 @@ ALL_PROVIDER_YAMLS = load_package_data()
 def get_available_packages():
     """Get list of all available packages to build."""
     provider_package_names = [provider['package-name'] for provider in 
ALL_PROVIDER_YAMLS]
-    return ["apache-airflow", "docker-stack", *provider_package_names, 
"apache-airflow-providers"]
+    return [
+        "apache-airflow",
+        "docker-stack",
+        *provider_package_names,
+        "apache-airflow-providers",
+        "helm-chart",
+    ]
 
 
 def _get_parser():

Reply via email to