未验证 提交 fa10035d 编写于 作者: D Daniel Vaz Gaspar 提交者: GitHub

docs(releasing): update release automation and docs for Apache graduation (#12117)

上级 35addee3
......@@ -28,12 +28,11 @@ RUN apt-get update -y
RUN apt-get install -y apt-transport-https apt-utils
# Install superset dependencies
# https://superset.incubator.apache.org/installation.html#os-dependencies
# https://superset.apache.org/docs/installation/installing-superset-from-scratch
RUN apt-get install -y build-essential libssl-dev \
libffi-dev python3-dev libsasl2-dev libldap2-dev libxi-dev
# Install nodejs for custom build
# https://superset.incubator.apache.org/installation.html#making-your-own-build
# https://nodejs.org/en/download/package-manager/
RUN curl -sL https://deb.nodesource.com/setup_12.x | bash - \
&& apt-get install -y nodejs
......@@ -48,13 +47,13 @@ ARG SUPERSET_RELEASE_RC_TARBALL
# Can fetch source from svn or copy tarball from local mounted directory
COPY $SUPERSET_RELEASE_RC_TARBALL ./
RUN tar -xvf *.tar.gz
WORKDIR /home/superset/apache-superset-incubating-$VERSION/superset-frontend
WORKDIR /home/superset/apache-superset-$VERSION/superset-frontend
RUN npm ci \
&& npm run build \
&& rm -rf node_modules
WORKDIR /home/superset/apache-superset-incubating-$VERSION
WORKDIR /home/superset/apache-superset-$VERSION
RUN pip install --upgrade setuptools pip \
&& pip install -r requirements/base.txt \
&& pip install --no-cache-dir .
......
......@@ -28,12 +28,11 @@ RUN apt-get update -y
RUN apt-get install -y apt-transport-https apt-utils
# Install superset dependencies
# https://superset.incubator.apache.org/installation.html#os-dependencies
# https://superset.apache.org/docs/installation/installing-superset-from-scratch
RUN apt-get install -y build-essential libssl-dev \
libffi-dev python3-dev libsasl2-dev libldap2-dev libxi-dev
# Install nodejs for custom build
# https://superset.incubator.apache.org/installation.html#making-your-own-build
# https://nodejs.org/en/download/package-manager/
RUN curl -sL https://deb.nodesource.com/setup_12.x | bash - \
&& apt-get install -y nodejs
......@@ -47,7 +46,7 @@ ARG VERSION
# Can fetch source from svn or copy tarball from local mounted directory
RUN svn co https://dist.apache.org/repos/dist/dev/incubator/superset/$VERSION ./
RUN tar -xvf *.tar.gz
WORKDIR apache-superset-incubating-$VERSION
WORKDIR apache-superset-$VERSION
RUN cd superset-frontend \
&& npm ci \
......@@ -55,7 +54,7 @@ RUN cd superset-frontend \
&& rm -rf node_modules
WORKDIR /home/superset/apache-superset-incubating-$VERSION
WORKDIR /home/superset/apache-superset-$VERSION
RUN pip install --upgrade setuptools pip \
&& pip install -r requirements.txt \
&& pip install --no-cache-dir .
......
......@@ -39,9 +39,9 @@ need to be done at every release.
# Checkout ASF dist repo
svn checkout https://dist.apache.org/repos/dist/dev/incubator/superset/ ~/svn/superset_dev
svn checkout https://dist.apache.org/repos/dist/dev/superset/ ~/svn/superset_dev
svn checkout https://dist.apache.org/repos/dist/release/incubator/superset/ ~/svn/superset
svn checkout https://dist.apache.org/repos/dist/release/superset/ ~/svn/superset
cd ~/svn/superset
......@@ -89,10 +89,10 @@ The script will output the exported variables. Here's example for 0.38.0rc1:
SUPERSET_GITHUB_BRANCH=0.38
SUPERSET_PGP_FULLNAME=myid@apache.org
SUPERSET_VERSION_RC=0.38.0rc1
SUPERSET_RELEASE=apache-superset-incubating-0.38.0
SUPERSET_RELEASE_RC=apache-superset-incubating-0.38.0rc1
SUPERSET_RELEASE_TARBALL=apache-superset-incubating-0.38.0-source.tar.gz
SUPERSET_RELEASE_RC_TARBALL=apache-superset-incubating-0.38.0rc1-source.tar.gz
SUPERSET_RELEASE=apache-superset-0.38.0
SUPERSET_RELEASE_RC=apache-superset-0.38.0rc1
SUPERSET_RELEASE_TARBALL=apache-superset-0.38.0-source.tar.gz
SUPERSET_RELEASE_RC_TARBALL=apache-superset-0.38.0rc1-source.tar.gz
SUPERSET_TMP_ASF_SITE_PATH=/tmp/incubator-superset-site-0.38.0
```
......@@ -240,38 +240,6 @@ here's an example:
```
Following the result thread, yet another [VOTE] thread should be
started at general@incubator.apache.org.
To easily send the voting request to Apache community, still on the `superset/RELEASING` directory:
```bash
# Note: use Superset's virtualenv
(venv)$ python send_email.py vote_ipmc
```
Once 3+ binding votes (by IPMC members) have been cast and at
least 72 hours have past, you can post a [RESULT] thread
To easily send the result email, still on the `superset/RELEASING` directory:
```bash
# Note: use Superset's virtualenv
(venv)$ python send_email.py result_ipmc
```
Again, the script will interactively ask for extra information needed to fill out the email template. Based on the
voting description, it will generate a passing, non passing or non conclusive email.
here's an example:
```bash
Sender email (ex: user@apache.org): your_apache_email@apache.org
Apache username: your_apache_user
Apache password: your_apache_password
A List of people with +1 binding vote (ex: Alan, Justin): Alan,Jeff,
A List of people with +1 non binding vote (ex: Ville):
A List of people with -1 vote (ex: John):
```
### Validating a release
......
......@@ -18,18 +18,18 @@
-#}
To: {{ receiver_email }}
From: {{ sender_email }}
Subject: [ANNOUNCE] Apache {{ project_name }} (Incubating) version {{ version }} Released
Subject: [ANNOUNCE] Apache {{ project_name }} version {{ version }} Released
Hello Community,
The Apache {{ project_name }} (incubating) team is pleased to announce that {{ project_name }}
The Apache {{ project_name }} team is pleased to announce that {{ project_name }}
{{ version }} has just been released.
{{ project_description }}
The official source release:
https://www.apache.org/dist/incubator/{{ project_module }}/{{ version }}
https://www.apache.org/dist/{{ project_module }}/{{ version }}
The Pypi package:
......@@ -40,18 +40,6 @@ find any problems about enhancements included in this release, please
don't hesitate to let us know by sending feedback to this mailing
list.
=====
*Disclaimer*
Apache {{ project_name }} is an effort undergoing incubation at The Apache Software
Foundation (ASF), sponsored by the Incubator. Incubation is required of all
newly accepted projects until a further review indicates that the
infrastructure, communications, and decision making process have stabilized
in a manner consistent with other successful ASF projects. While incubation
status is not necessarily a reflection of the completeness or stability of
the code, it does indicate that the project has yet to be fully endorsed by
the ASF.
---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscribe@incubator.apache.org
For additional commands, e-mail: general-help@incubator.apache.org
To unsubscribe, e-mail: general-unsubscribe@apache.org
For additional commands, e-mail: general-help@apache.org
{#
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.
-#}
To: {{ receiver_email }}
From: {{ sender_email }}
Subject: [RESULT] [VOTE] Release Apache {{ project_name }} (incubating) version {{ version }}
Thanks to everyone that participated. The vote to release
Apache {{ project_name }} (incubating) version {{ version }} is now closed.
{% if vote_negatives|length > 0 %}
The vote did not PASS with {{vote_bindings|length}} binding +1, {{ vote_nonbindings|length}} non binding +1 and {{vote_negatives|length}} -1 votes:
{% elif vote_bindings|length > 2 %}
The vote PASSED with {{vote_bindings|length}} binding +1, {{ vote_nonbindings|length}} non binding +1 and {{vote_negatives|length}} -1 votes:
{% else %}
The vote is non conclusive with {{vote_bindings|length}} binding +1, {{ vote_nonbindings|length}} non binding -1 and {{vote_negatives|length}} -1 votes:
{% endif %}
{% if vote_bindings|length > 0 -%}
Binding votes:
{% for voter in vote_bindings -%}
- {{ voter }}
{% endfor %}
{%- endif %}
{% if vote_nonbindings|length > 0 -%}
Non binding votes:
{% for voter in vote_nonbindings -%}
- {{ voter }}
{% endfor %}
{%- endif %}
{% if vote_negatives|length > 0 -%}
Negative votes:
{% for voter in vote_negatives -%}
- {{ voter }}
{% endfor %}
{%- endif %}
We will work to complete the release process.
Thanks,
The Apache {{ project_name }} (Incubating) Team
......@@ -18,10 +18,10 @@
-#}
To: {{ receiver_email }}
From: {{ sender_email }}
Subject: [RESULT] [VOTE] Release Apache {{ project_name }} (incubating) {{ version }} based on Superset {{ version_rc }}
Subject: [RESULT] [VOTE] Release Apache {{ project_name }} {{ version }} based on Superset {{ version_rc }}
Thanks to everyone that participated. The vote to release
Apache {{ project_name }} (incubating) version {{ version }} based on {{ version_rc }} is now closed.
Apache {{ project_name }} version {{ version }} based on {{ version_rc }} is now closed.
{% if vote_negatives|length > 0 -%}
The vote did NOT PASS with {{vote_bindings|length}} binding +1, {{ vote_nonbindings|length}} non binding +1 and {{vote_negatives|length}} -1 votes:
......@@ -55,4 +55,4 @@ Negative votes:
We will work to complete the release process.
Thanks,
The Apache {{ project_name }} (Incubating) Team
The Apache {{ project_name }} Team
{#
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.
-#}
To: {{ receiver_email }}
From: {{ sender_email }}
Subject: [VOTE] Release Apache {{ project_name }} (incubating) version {{ version }}
Hello IPMC,
The Apache {{ project_name }} (incubating) community has voted on and approved a proposal to
release Apache {{ project_name }} (incubating) version {{ version }}.
The voting thread can be found here: {{ voting_thread }}
{% if vote_mentors|length > 0 %}
Here are the binding +1 votes from mentors, carrying over from the podling vote:
{% for voter in vote_mentors -%}
- {{ voter }}
{% endfor %}
{% endif -%}
We now kindly request the Incubator PMC members review and vote on this
incubator release.
{{ project_description }}
The release candidate:
https://dist.apache.org/repos/dist/dev/incubator/{{ project_module }}/{{ version_rc }}/
Git tag for the release:
https://github.com/apache/incubator-{{ project_module }}/tree/{{ version_rc }}
The Change Log for the release:
https://github.com/apache/incubator-{{ project_module }}/blob/{{ version_rc }}/CHANGELOG.md
public keys are available at:
https://www.apache.org/dist/incubator/{{ project_module }}/KEYS
The vote will be open for at least 72 hours or until the necessary number
of votes are reached.
Please vote accordingly:
[ ] +1 approve
[ ] +0 no opinion
[ ] -1 disapprove with the reason
Thanks,
The Apache {{ project_name }} (Incubating) Team
......@@ -18,7 +18,7 @@
-#}
To: {{ receiver_email }}
From: {{ sender_email }}
Subject: [VOTE] Release Apache {{ project_name }} (incubating) {{ version }} based on Superset {{ version_rc }}
Subject: [VOTE] Release Apache {{ project_name }} {{ version }} based on Superset {{ version_rc }}
Hello {{ project_name }} Community,
......@@ -26,20 +26,20 @@ This is a call for the vote to release Apache {{ project_name }}
(incubating) version {{ version }}.
The release candidate:
https://dist.apache.org/repos/dist/dev/incubator/{{ project_module }}/{{ version_rc }}/
https://dist.apache.org/repos/dist/dev/{{ project_module }}/{{ version_rc }}/
Git tag for the release:
https://github.com/apache/incubator-{{ project_module }}/tree/{{ version_rc }}
https://github.com/apache/{{ project_module }}/tree/{{ version_rc }}
The Change Log for the release:
https://github.com/apache/incubator-{{ project_module }}/blob/{{ version_rc }}/CHANGELOG.md
https://github.com/apache/{{ project_module }}/blob/{{ version_rc }}/CHANGELOG.md
The Updating instructions for the release:
https://github.com/apache/incubator-{{ project_module }}/blob/{{ version_rc }}/UPDATING.md
https://github.com/apache/{{ project_module }}/blob/{{ version_rc }}/UPDATING.md
public keys are available at:
https://www.apache.org/dist/incubator/{{ project_module }}/KEYS
https://www.apache.org/dist/{{ project_module }}/KEYS
The vote will be open for at least 72 hours or until the necessary number
of votes are reached.
......@@ -51,4 +51,4 @@ Please vote accordingly:
[ ] -1 disapprove with the reason
Thanks,
The Apache {{ project_name }} (Incubating) Team
The Apache {{ project_name }} Team
......@@ -32,7 +32,7 @@ else
SUPERSET_VERSION="${1}"
SUPERSET_RC="${2}"
SUPERSET_PGP_FULLNAME="${3}"
SUPERSET_RELEASE_RC_TARBALL="apache-superset-incubating-${SUPERSET_VERSION_RC}-source.tar.gz"
SUPERSET_RELEASE_RC_TARBALL="apache-superset-${SUPERSET_VERSION_RC}-source.tar.gz"
fi
SUPERSET_VERSION_RC="${SUPERSET_VERSION}rc${SUPERSET_RC}"
......
......@@ -22,7 +22,7 @@ if [ -z "${SUPERSET_VERSION_RC}" ] || [ -z "${SUPERSET_SVN_DEV_PATH}" ] || [ -z
exit 1
fi
SUPERSET_RELEASE_RC=apache-superset-incubating-"${SUPERSET_VERSION_RC}"
SUPERSET_RELEASE_RC=apache-superset-"${SUPERSET_VERSION_RC}"
SUPERSET_RELEASE_RC_TARBALL="${SUPERSET_RELEASE_RC}"-source.tar.gz
SUPERSET_RELEASE_RC_BASE_PATH="${SUPERSET_SVN_DEV_PATH}"/"${SUPERSET_VERSION_RC}"
SUPERSET_RELEASE_RC_TARBALL_PATH="${SUPERSET_RELEASE_RC_BASE_PATH}"/"${SUPERSET_RELEASE_RC_TARBALL}"
......
......@@ -33,7 +33,7 @@ SMTP_PORT = 587
SMTP_SERVER = "mail-relay.apache.org"
PROJECT_NAME = "Superset"
PROJECT_MODULE = "superset"
PROJECT_DESCRIPTION = "Apache Superset (incubating) is a modern, enterprise-ready business intelligence web application"
PROJECT_DESCRIPTION = "Apache Superset is a modern, enterprise-ready business intelligence web application"
def string_comma_to_list(message: str) -> List[str]:
......@@ -218,88 +218,6 @@ def result_pmc(
)
@cli.command("vote_ipmc")
@click.option(
"--receiver_email",
default="general@incubator.apache.org",
type=str,
prompt="The receiver email (To:)",
)
@click.option("--voting_thread", prompt="The URL for the PMC voting thread")
@click.option(
"--vote_mentors",
default="",
type=str,
prompt="A list of mentors that have already voted (ex: Alan,Justin)",
)
@click.pass_obj
def vote_ipmc(base_parameters, receiver_email, voting_thread, vote_mentors):
template_file = "email_templates/vote_ipmc.j2"
base_parameters.template_arguments["receiver_email"] = receiver_email
base_parameters.template_arguments["voting_thread"] = voting_thread
base_parameters.template_arguments["vote_mentors"] = string_comma_to_list(
vote_mentors
)
message = render_template(template_file, **base_parameters.template_arguments)
inter_send_email(
base_parameters.username,
base_parameters.password,
base_parameters.template_arguments["sender_email"],
base_parameters.template_arguments["receiver_email"],
message,
)
@cli.command("result_ipmc")
@click.option(
"--receiver_email",
default="general@incubator.apache.org",
type=str,
prompt="The receiver email (To:)",
)
@click.option(
"--vote_bindings",
default="",
type=str,
prompt="A List of people with +1 binding vote (ex: Alan,Justin)",
)
@click.option(
"--vote_nonbindings",
default="",
type=str,
prompt="A List of people with +1 non binding vote (ex: Ville)",
)
@click.option(
"--vote_negatives",
default="",
type=str,
prompt="A List of people with -1 vote (ex: John)",
)
@click.pass_obj
def result_ipmc(
base_parameters, receiver_email, vote_bindings, vote_nonbindings, vote_negatives
):
template_file = "email_templates/result_ipmc.j2"
base_parameters.template_arguments["receiver_email"] = receiver_email
base_parameters.template_arguments["vote_bindings"] = string_comma_to_list(
vote_bindings
)
base_parameters.template_arguments["vote_nonbindings"] = string_comma_to_list(
vote_nonbindings
)
base_parameters.template_arguments["vote_negatives"] = string_comma_to_list(
vote_negatives
)
message = render_template(template_file, **base_parameters.template_arguments)
inter_send_email(
base_parameters.username,
base_parameters.password,
base_parameters.template_arguments["sender_email"],
base_parameters.template_arguments["receiver_email"],
message,
)
@cli.command("announce")
@click.option(
"--receiver_email",
......
......@@ -50,8 +50,8 @@ else
export SUPERSET_GITHUB_BRANCH="${VERSION_MAJOR}.${VERSION_MINOR}"
export SUPERSET_PGP_FULLNAME="${2}"
export SUPERSET_VERSION_RC="${SUPERSET_VERSION}rc${VERSION_RC}"
export SUPERSET_RELEASE=apache-superset-incubating-"${SUPERSET_VERSION}"
export SUPERSET_RELEASE_RC=apache-superset-incubating-"${SUPERSET_VERSION_RC}"
export SUPERSET_RELEASE=apache-superset-"${SUPERSET_VERSION}"
export SUPERSET_RELEASE_RC=apache-superset-"${SUPERSET_VERSION_RC}"
export SUPERSET_RELEASE_TARBALL="${SUPERSET_RELEASE}"-source.tar.gz
export SUPERSET_RELEASE_RC_TARBALL="${SUPERSET_RELEASE_RC}"-source.tar.gz
export SUPERSET_TMP_ASF_SITE_PATH="/tmp/incubator-superset-site-${SUPERSET_VERSION}"
......
......@@ -27,7 +27,7 @@ if [ -z "${SUPERSET_SVN_DEV_PATH}" ]; then
fi
if [ ${1} == "local" ]; then
SUPERSET_RELEASE_RC=apache-superset-incubating-"${SUPERSET_VERSION_RC}"
SUPERSET_RELEASE_RC=apache-superset-"${SUPERSET_VERSION_RC}"
SUPERSET_RELEASE_RC_TARBALL="${SUPERSET_RELEASE_RC}"-source.tar.gz
SUPERSET_TARBALL_PATH="${SUPERSET_SVN_DEV_PATH}"/${SUPERSET_VERSION_RC}/${SUPERSET_RELEASE_RC_TARBALL}
SUPERSET_TMP_TARBALL_FILENAME=_tmp_"${SUPERSET_VERSION_RC}".tar.gz
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册