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 created https://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