Hi,

+1 (binding)

Checked:

 * SVN
 * Signatures
 * SHA512
 * Reproducible package build
 * Licence check

(Sorry was a bit overladed and was happy Bugra raised verification constraints - seems all good resolved now! Thanks for updating the docs as well!)

Jens

On 10.06.26 19:43, Buğra Öztürk wrote:
Many thanks for addressing all swiftly Hussein!
I have checked everything from the start. All looks good.
+1 (binding)
I have checked SVN, signature, licence, reproducible package builds and
checksums.

Kind regards,
Bugra Ozturk

On Wed, Jun 10, 2026 at 1:57 PM Hussein Awala<[email protected]> wrote:

Hi Bugra, Jarek,

Thanks both for the careful review.

I've addressed the blocking point and the layout improvement:

1. (Bugra's -1) The asf-dist packages were rebuilt WITHOUT the rc suffix.
    The SVN artifacts are now apache_airflow_mypy-0.1.0-* (final version
    internally and in the file names); only PyPI keeps the rc2 suffix. This
    matches the airflow-ctl/helm/core convention where dev->release
    promotion is just a rename.

2. (Bugra + Jarek's folder point) I moved the layout to the grouped path
    apache-airflow-mypy/0.1.0rc2/ instead of apache-airflow-mypy-0.1.0rc2/
    at the dist root, matching helm-chart/<version>/ and <core>/<version>/.
    I also removed the now-redundant old folders
    apache-airflow-mypy-0.1.0rc1/ and apache-airflow-mypy-0.1.0rc2/ so the
    archive stays clean.

The candidate is now at:

https://dist.apache.org/repos/dist/dev/airflow/apache-airflow-mypy/0.1.0rc2/

PyPI (unchanged, rc2 pre-release):
https://pypi.org/project/apache-airflow-mypy/0.1.0rc2/

This was all done from the same tagged source
(apache-airflow-mypy-0.1.0rc2,
commit 1cc6f54), so it's the same RC and the voting cycle continues, so no
new RC needed.

Separately, I createdhttps://github.com/apache/airflow/pull/68332 to fix
the doc
to match the airflow-ctl process and added "Verify the release candidate by
PMC
members" / "by Contributors" sections (Bugra's suggestion).

Bugra, when you have a moment, could you re-check the updated SVN artifacts
and revisit your vote?

Thanks again,
Hussein

On Wed, Jun 10, 2026 at 9:53 AM Jarek Potiuk<[email protected]> wrote:

I have not yet looked at it but the folder  move is important - once
released, it will permanently stay in SVN archive - cluttering the space
usually taken by airflow. But it does not invalidate.the release voting -
you can move it now Hussein without breaking the voting cycle if it's
just
'svn mv'

On Tue, Jun 9, 2026, 22:19 Buğra Öztürk<[email protected]> wrote:

Hey Hussein,
Thanks for preparing the release!

It would be great if we could create a similar verification subsection
with
other releases so that all PMCs can follow the same approach and
approve
the same checks. #verify-the-release-candidate-by-pmc-members.
Also, one improvement could be that we can populate RC and releases
under
the same directory, such as `apache-airflow-mypy/0.1.0rc2/` rather than
`apache-airflow-mypy-0.1.0rc2/` in the Airflow root directory in dist.
Neither of these is a preventative for release.

I have checked the SVN, signature, licence, checksums, and reproducible
package builds, and technically it looks good on the PMC verification
side
of things.

One thing that can block the release is that I see the packages created
with RC suffix while in the release process, we are only pushing this
to
PyPI and building packages without suffix for asf-dist. Such as
https://dist.apache.org/repos/dist/dev/airflow/helm-chart/1.21.0rc2/
or
https://dist.apache.org/repos/dist/dev/airflow/3.2.2rc3/.

-1 Unfortunately, until the rc suffix in the dist is removed :( No need
for
another RC. Just rebuilding and pushing without the suffix to asf-dist
should be enough :)

Best regards,
Bugra Ozturk


On Tue, Jun 9, 2026 at 10:33 AM Hussein Awala<[email protected]>
wrote:
Hey all,

This is a call for the vote to release Apache Airflow Mypy version
0.1.0.
The release candidate is available at:



https://dist.apache.org/repos/dist/dev/airflow/apache-airflow-mypy-0.1.0rc2/
*apache-airflow-mypy-0.1.0rc2* is the first release of the new
apache-airflow-mypy distribution, which packages the mypy plugins
used
across the Apache Airflow monorepo as a standalone, independently
versioned package (see PR #61422
<https://github.com/apache/airflow/pull/61422> for details and
motivation).

This is rc2; rc1 was prepared a while ago and was superseded by this
candidate built from the same source commit.

The artifacts were generated from the tag
apache-airflow-mypy-0.1.0rc2,
which points to commit 1cc6f5425af1c142ad6480444e23014bdcc42d4f in
the
apache/airflow repository:


https://github.com/apache/airflow/releases/tag/apache-airflow-mypy-0.1.0rc2
The packages are available at PyPI:

https://pypi.org/project/apache-airflow-mypy/0.1.0rc2/

You can install the release candidate with:

pip install --pre apache-airflow-mypy==0.1.0rc2

Public keys are available at:

https://dist.apache.org/repos/dist/release/airflow/KEYS

The vote will be open for at least 72 hours (until 2026-06-12 08:30
UTC)
or until the necessary number of votes are reached.

[ ] +1 approve
[ ] +0 no opinion
[ ] -1 disapprove with the reason

Only PMC votes are binding, but everyone is welcome to check the
release
and vote with "(non-binding)".

Here is my +1 (binding).

Additional notes:

    -

    I have verified the RC end-to-end: SVN contents, GPG signatures,
SHA512
    checksums, the signed git tag, sdist/wheel contents (LICENSE,
NOTICE,
    PKG-INFO, version 0.1.0rc2), wheel installation, and a functional
mypy
    run loading airflow_mypy.plugins.decorators and
    airflow_mypy.plugins.outputs. The Apache RAT license check is
clean.
    -

    I have also validated this RC inside an Airflow
    repository, running a full mypy suite against apache-airflow-mypy
    0.1.0rc2 installed from PyPI - the plugins load and behave
identically
    to the previously-vendored version.

How to verify the release candidate:

svn co

https://dist.apache.org/repos/dist/dev/airflow/apache-airflow-mypy-0.1.0rc2
mypy-rc2
<
https://dist.apache.org/repos/dist/dev/airflow/apache-airflow-mypy-0.1.0rc2mypy-rc2
cd mypy-rc2
for i in *.asc;    do gpg --verify "$i"; done
for i in *.sha512; do shasum -a 512 "$(basename "$i" .sha512)" | diff
- "$i"; done

Thanks,
Hussein

Reply via email to