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 > > > > > >
