This is an automated email from the ASF dual-hosted git repository.
pierrejeambrun 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 bc80313a98 Explicit a few steps in the release process (#29098)
bc80313a98 is described below
commit bc80313a98e304196795c310db6d842f14031c61
Author: Pierre Jeambrun <[email protected]>
AuthorDate: Sun Jan 29 15:30:24 2023 +0100
Explicit a few steps in the release process (#29098)
* Update the release process.
* Fix conflics, small update
* Update go release process link with the newly added resource
---
dev/README_RELEASE_AIRFLOW.md | 49 ++++++++++++----------
.../commands/release_candidate_command.py | 2 +
2 files changed, 29 insertions(+), 22 deletions(-)
diff --git a/dev/README_RELEASE_AIRFLOW.md b/dev/README_RELEASE_AIRFLOW.md
index f4eb79a437..a98a25cc27 100644
--- a/dev/README_RELEASE_AIRFLOW.md
+++ b/dev/README_RELEASE_AIRFLOW.md
@@ -22,6 +22,7 @@
- [Selecting what to put into the
release](#selecting-what-to-put-into-the-release)
- [Selecting what to cherry-pick](#selecting-what-to-cherry-pick)
+ - [Making the cherry picking](#making-the-cherry-picking)
- [Reviewing cherry-picked PRs and assigning
labels](#reviewing-cherry-picked-prs-and-assigning-labels)
- [Prepare the Apache Airflow Package
RC](#prepare-the-apache-airflow-package-rc)
- [Update the milestone](#update-the-milestone)
@@ -92,7 +93,7 @@ and mark those as well. You can accomplish this by running
the following command
Often you also want to cherry-pick changes related to CI and development
tools, to include the latest
stability fixes in CI and improvements in development tools. Usually you can
see the list of such
-changes via (this will exclude already merged changes:
+changes via (this will exclude already merged changes):
```shell
git fetch apache
@@ -116,8 +117,25 @@ git log --oneline --decorate
apache/v2-2-stable..apache/main -- docs/apache-airf
Those changes that are "doc-only" changes should be marked with
`type:doc-only` label so that they
land in documentation part of the changelog. The tool to review and assign the
labels is described below.
+## Making the cherry picking
+
+To see cherry picking candidates (unmerged PR with the appropriate milestone)
you can run:
+
+```shell
+./dev/airflow-github compare 2.1.2 --unmerged
+```
+
+Be careful and verify the hash commit specified. This is a 'best effort' to
find it, and
+could be inaccurate if the PR was referenced in other commits after it was
merged. You can start
+cherry picking from the bottom of the list. (older commits first)
+
When you cherry-pick, pick in chronological order onto the `vX-Y-test` release
branch.
-You'll move them over to be on `vX-Y-stable` once the release is cut.
+You'll move them over to be on `vX-Y-stable` once the release is cut. Use the
`-x` option
+to keep a reference to the original commit we cherry picked from. ("cherry
picked from commit ...")
+
+```shell
+git cherry-pick <hash-commit> -x
+```
## Reviewing cherry-picked PRs and assigning labels
@@ -138,7 +156,7 @@ You can also add `--skip-assigned` flag if you want to
automatically skip the qu
for the PRs that are already correctly assigned to the milestone. You can also
avoid the "Are you OK?"
question with `--assume-yes` flag.
-You cn review the list of PRs cherry-picked and produce a nice summary with
`--print-summary` (this flag
+You can review the list of PRs cherry-picked and produce a nice summary with
`--print-summary` (this flag
assumes the `--skip-assigned` flag, so that the summary can be produced
without questions:
```shell
@@ -215,7 +233,7 @@ The Release Candidate artifacts we vote upon should be the
exact ones we vote ag
pipx install -e ./dev/breeze
```
-- For major/minor version release,run the following commands to create the
'test' and 'stable' branches.
+- For major/minor version release, run the following commands to create the
'test' and 'stable' branches.
```shell script
breeze release-management create-minor-branch --version-branch
${VERSION_BRANCH}
@@ -307,19 +325,11 @@ tied to an airflow release and therefore out of scope.
If API clients are to be released in this airflow version:
-- Set environment variables (useful for the rest of the process)
-
- ```shell script
- # Set Version
- export GO_API_CLIENT_VERSION=2.1.3
- export PYTHON_API_CLIENT_VERSION=2.1.1
- ```
-
-- Follow the specific release process of each API client to generate the
artifacts and push to PyPI a
+- Follow the specific release process for each API client to generate the
artifacts and push to PyPI a
release candidate client package:
- - [Python
client](https://github.com/apache/airflow-client-python#release-process)
- - [Go client](https://github.com/apache/airflow-client-go#release-process)
+ - [Python
client](https://github.com/apache/airflow-client-python/blob/master/dev/README_RELEASE_CLIENT.md)
+ - [Go
client](https://github.com/apache/airflow-client-go/blob/master/dev/README_RELEASE_CLIENT.md)
## Prepare issue for testing status of rc
@@ -386,11 +396,6 @@ https://dist.apache.org/repos/dist/dev/airflow/$VERSION/
Public keys are available at:
https://dist.apache.org/repos/dist/release/airflow/KEYS
-TODO:REMOVE PARAGRAPH IF NOT RELEVANT
-New API clients were generated:
-- Python ${PYTHON_API_CLIENT_VERSION}
-- GO ${GO_API_CLIENT_VERSION}
-
Please vote accordingly:
[ ] +1 approve
@@ -750,7 +755,7 @@ Documentation for providers can be found in the
``/docs/apache-airflow`` directo
./docs/start_doc_server.sh
```
-- Copy the documentation to the ``airflow-site`` repository, create commit,
push changes and open a PR.
+- Copy the documentation to the ``airflow-site`` repository, create commit,
push changes, open a PR and merge it when the build is green.
```shell script
./docs/publish_docs.py --package-filter apache-airflow --package-filter
docker-stack
@@ -882,7 +887,7 @@ Update the values of `airflowVersion`, `defaultAirflowTag`
and `appVersion` in t
will use the latest released version. You'll need to update
`chart/values.yaml`, `chart/values.schema.json` and
`chart/Chart.yaml`.
-Also add a note to `UPDATING.rst` that the default version of Airflow has
changed.
+Add or adjust significant `chart/newsfragments` to express that the default
version of Airflow has changed.
In `chart/Chart.yaml`, make sure the screenshot annotations are still all
valid URLs.
diff --git
a/dev/breeze/src/airflow_breeze/commands/release_candidate_command.py
b/dev/breeze/src/airflow_breeze/commands/release_candidate_command.py
index d1f0ed8fdd..d22f6a1e93 100644
--- a/dev/breeze/src/airflow_breeze/commands/release_candidate_command.py
+++ b/dev/breeze/src/airflow_breeze/commands/release_candidate_command.py
@@ -198,6 +198,8 @@ def push_packages_to_test_pypi():
"Verify that the test package looks good by downloading it and
installing it into a virtual "
"environment. The package download link is available at: "
"https://test.pypi.org/project/apache-airflow/#files"
+ "Install it with the appropriate constraint file, for instance: "
+ "pip install <download_link> --constraint
https://raw.githubusercontent.com/apache/airflow/constraints-2.2.1rc1/constraints-3.8.txt"
# noqa: 501
)