Good points - let's see what others think - hopefully we get more voices.
In ideal world that discussion should have happened when we had beta
releases - but hey - better late than never :)

On Thu, Oct 30, 2025 at 6:09 PM Ash Berlin-Taylor <[email protected]> wrote:

> Typo:
>
>
> The reason I think these need fixing before we release is that this CLI
> interface is an API, and we shouldn’t/“can’t” change this before airflowctl
> 2.0.
>
>
> > On 30 Oct 2025, at 17:03, Ash Berlin-Taylor <[email protected]> wrote:
> >
> > To re-emphasise, my reason for voting -1 on this is the incorrect client
> side error handling.
> >
> > The fact that you can run commands such as `airflowctl dagrun list` or
> `airflowctl dags update` and there is 0 client side validation of
> requirements that should be required is the primary reason.
> >
> > Though the more I play with it, I also think this is too close to a CLI
> around the API client, and not quite a tool designed for users itself.
> >
> > - For instance, to trigger a dag, the command is `airflow dagrun trigger
> —dag-id dag1` — which is where the API places this operation, but this
> surprised me. Both the UI and the old `airflow` cli had this under `dag`,
> so I expected `airflow dag trigger` to be an operation
> > - There is no direct command to pause or unpause a dag, instead you have
> to do `airflowctl dags update --no-is-paused --dag-id dag1`. Issues here:
> 1. Pause and unpause are very common operations, and should have their own
> command. 2. `no-is-paused` is a clunky interface.
> > - Passing the (semi-)required dag id via a cli option `—dag-id` rather
> than positional. I.e. I’d expect `airflow dags unpause dag1` to be how the
> command is invoked, not `airflow dags unpause —dag-id dag1`.
> >
> > The reason I think these need fixing before we release is that this CLI
> interface is an interface, and we shouldn’t/“can’t” change this before
> airflowctrl 2.0.
> >
> > -ash
> >
> >> On 30 Oct 2025, at 16:46, Jarek Potiuk <[email protected]> wrote:
> >>
> >> Thanks Ash for doing more thorough checks! Really cool.
> >>
> >> Just to clarify things - as an educational exercise for the community -
> we
> >> have many new members in the community and they might not realise how
> >> releases work, so I wanted to use that opportunity to explain.
> >>
> >> Releases may not be vetoed. It's always majority release - It's enough
> to
> >> have 3 +1s from PMC members and more + than - from PMC members:
> >> https://www.apache.org/foundation/voting.html#ReleaseVotes . The voting
> >> policy says that:
> >>
> >>> Generally the community will cancel the release vote if anyone
> identifies
> >> serious problems, but in most cases the ultimate decision lies with the
> >> individual serving as release manager. The specifics of the process may
> >> vary from project to project, but the 'minimum quorum of three +1 votes'
> >> rule is universal.
> >>
> >> So if we generally - in the community - agree (and I would love to hear
> >> more voices) that issue is serious enough we might cancel the vote. I
> think
> >> it would be actually great if more people - like Ash - from the
> community
> >> would take airflow-ctl for a spin and report here with their (even
> >> non-binding) voices. This is the first time we are releasing it, and I
> >> think it's worth doing a more thorough check.
> >>
> >> I personally don't really think clarity of messages is "serious" enough
> to
> >> stop releasing. We released airflow multiple times with way, way, way
> less
> >> clear error messages in many places. But it's not strong of course. We
> >> could argue whether it's fine to do validation in both - client and
> server
> >> or whether it's enough to have a server doing validation - both
> solutions
> >> have pros and cons. And we could agree on either approach. But that's
> >> likely topic for another discussion - here it's more "is the current
> >> approach good-enough to make it an official release".
> >>
> >> But since I am acting just as PMC "driving" the release and practically
> >> speaking - Bugra is the Release Manager not me, I am absolutely happy
> with
> >> whatever he decides - it's his call to cancel the vote if we think it's
> not
> >> good enough (or we might simply not see a possibility of getting 3 +1s
> or
> >> have more -1s from PMCs, then PMC members will decide).
> >>
> >> J.
> >>
> >>
> >> On Thu, Oct 30, 2025 at 5:13 PM Ash Berlin-Taylor <[email protected]>
> wrote:
> >>
> >>> Not quite -1 worth by itself, but the help message isn’t great either —
> >>> "state for list operation in DagRunOperations” is… not a great help
> >>> message. My expectation is that airflowctl would be more than a shim
> on the
> >>> API, and as such it should have standalone useful help messages
> >>>
> >>>
> >>> ```
> >>> Options:
> >>> -h, --help            show this help message and exit
> >>> --dag-id DAG_ID       dag_id for list operation in DagRunOperations
> >>> --end-date END_DATE   end_date for list operation in DagRunOperations
> >>> -e, --env ENV         The environment to run the command in
> >>> --limit LIMIT         limit for list operation in DagRunOperations
> >>> --start-date START_DATE
> >>>                       start_date for list operation in DagRunOperations
> >>> --state STATE         state for list operation in DagRunOperations
> >>> --output, -o (table, json, yaml, plain)
> >>>                       Output format. Allowed values: json, yaml, plain,
> >>> table (default: json)
> >>> ```
> >>>
> >>>> On 30 Oct 2025, at 16:10, Ash Berlin-Taylor <[email protected]> wrote:
> >>>>
> >>>> -1 This isn’t ready for release yet I’m afraid.
> >>>>
> >>>> The CLI doesn’t do nearly enough validation of arguments:
> >>>>
> >>>> ```
> >>>>> airflowctl dagrun list
> >>>> 2025-10-30 16:09:33 [warning  ] Server error
> >>> [airflowctl.api.client] extra={'detail': 'Invalid value for state.
> Valid
> >>> values are queued, running, success, failed'}
> >>>> Server response error: Client error message: {'detail': 'Invalid value
> >>> for state. Valid values are queued, running,
> >>>> success, failed'}
> >>>> Client error,  Please check the command and its parameters. If you
> need
> >>> help, run the command with —help.
> >>>> ```
> >>>>
> >>>> And the request that is making is `GET
> >>> /api/v2/dags/None/dagRuns?start_date=&end_date=&state=&limit=&dag_id`
> >>>>
> >>>> That shouldn’t be passing any of the query arguments in that case.
> >>>>
> >>>> I will continue testing and report what I find, but right now we’re
> not
> >>> there yet
> >>>>
> >>>> -ash
> >>>>
> >>>>> On 29 Oct 2025, at 20:42, Jens Scheffler <[email protected]>
> wrote:
> >>>>>
> >>>>> Thanks Jarek for the hint as well as preparing the release!
> >>>>>
> >>>>> +1 (binding) - Checked SVN, Checksums, Reproducible package build,
> >>> Licenses, Signatures
> >>>>>
> >>>>> Opened PR https://github.com/apache/airflow/pull/57513 to add the
> >>> missing cli argument to docs.
> >>>>>
> >>>>> On 28.10.25 23:31, Jarek Potiuk wrote:
> >>>>>> Should be `--version 1.0.0rc2` added to the command.
> >>>>>>
> >>>>>> On Tue, Oct 28, 2025 at 11:11 PM Jens Scheffler <
> [email protected]>
> >>> wrote:
> >>>>>>
> >>>>>>> Followed the release checking guide and wanted to validate as my
> PMC
> >>>>>>> duty but got the following error:
> >>>>>>>
> >>>>>>> (airflow) jscheffl@hp860g9:~/Workspace/airflow$ breeze
> >>>>>>> release-management prepare-airflow-tarball --distribution-name
> >>>>>>> apache_airflow_ctl
> >>>>>>> Creating tarball for apache_airflow_ctl airflow-ctl/1.0.0
> >>>>>>> fatal: not a valid object name: airflow-ctl/1.0.0
> >>>>>>> Failed to create tarball
> >>>>>>>
> >>>
> /home/jscheffl/Workspace/airflow/out/apache_airflow_ctl-1.0.0-source.tar.gz
> >>>>>>>
> >>>>>>> for Apache apache_airflow_ctl airflow-ctl/1.0.0
> >>>>>>> (airflow) jscheffl@hp860g9:~/Workspace/airflow$ git status
> >>>>>>> HEAD detached at airflow-ctl/1.0.0rc2
> >>>>>>> nothing to commit, working tree clean
> >>>>>>>
> >>>>>>> Any idea/guidance? Is this a teething breeze bug?
> >>>>>>>
> >>>>>>> On 28.10.25 07:54, Amogh Desai wrote:
> >>>>>>>> Really nice to see this one fold in so quickly!
> >>>>>>>>
> >>>>>>>> Great amount of effort, Bugra and Jarek!
> >>>>>>>>
> >>>>>>>> Thanks & Regards,
> >>>>>>>> Amogh Desai
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> On Tue, Oct 28, 2025 at 6:06 AM Buğra Öztürk <
> >>> [email protected]>
> >>>>>>>> wrote:
> >>>>>>>>
> >>>>>>>>> Wohooo! +1 non-binding
> >>>>>>>>>
> >>>>>>>>> Again and again couldn't share my good feelings. Amazing
> community,
> >>> many
> >>>>>>>>> thanks everyone being there for support, implement, test,
> release,
> >>> for
> >>>>>>>>> everything 🎉🎉🙏
> >>>>>>>>>
> >>>>>>>>> Bugra Ozturk
> >>>>>>>>>
> >>>>>>>>> On Mon, 27 Oct 2025, 23:01 Jarek Potiuk, <[email protected]>
> wrote:
> >>>>>>>>>
> >>>>>>>>>> The release candidate for **Apache Airflow Ctl**: 1.0.0rc2  is
> now
> >>>>>>>>>> available for testing!
> >>>>>>>>>>
> >>>>>>>>>> This email is calling for a vote on the release, which will
> last at
> >>>>>>> least
> >>>>>>>>>> until the
> >>>>>>>>>> 23:00 CET, Friday, October 30, 2025 and until 3 binding +1 votes
> >>> have
> >>>>>>>>> been
> >>>>>>>>>> received.
> >>>>>>>>>>
> >>>>>>>>>> Consider this my +1 (binding) vote.
> >>>>>>>>>>
> >>>>>>>>>> The apache-airflow-ctl 1.0.0rc2 package is available at:
> >>>>>>>>>>
> >>> https://dist.apache.org/repos/dist/dev/airflow/airflow-ctl/1.0.0rc2/
> >>>>>>>>>>
> >>>>>>>>>> The "apache-airflow-ctl" packages are::
> >>>>>>>>>>
> >>>>>>>>>>  - *apache_airfow_ctl-1.0.0-source.tar.gz* is a source release
> >>> that
> >>>>>>>>> comes
> >>>>>>>>>>    with INSTALL instructions.
> >>>>>>>>>>  - *apache_airfow_ctl-1.0.0.tar.gz* is the binary Python "sdist"
> >>>>>>>>> release.
> >>>>>>>>>>  - *apache_airfow_ctl-1.0.0-py3-none-any.whl* is the binary
> >>> Python
> >>>>>>>>> wheel
> >>>>>>>>>> "binary" release.
> >>>>>>>>>>
> >>>>>>>>>> Public keys are available at:
> >>>>>>>>>> https://dist.apache.org/repos/dist/release/airflow/KEYS
> >>>>>>>>>>
> >>>>>>>>>> Please vote accordingly:
> >>>>>>>>>>
> >>>>>>>>>> [ ] +1 approve
> >>>>>>>>>> [ ] +0 no opinion
> >>>>>>>>>> [ ] -1 disapprove with the reason
> >>>>>>>>>>
> >>>>>>>>>> Only votes from PMC members are binding, but all members of the
> >>>>>>> community
> >>>>>>>>>> are encouraged to test the release and vote with
> "(non-binding)".
> >>>>>>>>>>
> >>>>>>>>>> The test procedure for PMC members is described in:
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>
> >>>
> https://github.com/apache/airflow/blob/main/dev/README_RELEASE_AIRFLOWCTL.md#verify-the-release-candidate-by-pmc-members
> >>>>>>>>>> The test procedure for contributors and members of the community
> >>> who
> >>>>>>>>> would
> >>>>>>>>>> like to test this RC is described in:
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>
> >>>
> https://github.com/apache/airflow/blob/main/dev/README_RELEASE_AIRFLOWCTL.md#verify-the-release-candidate-by-contributors
> >>>>>>>>>> Please note that the version number excludes the 'rcX' string,
> so
> >>> it's
> >>>>>>>>> now
> >>>>>>>>>> simply 1.0.0 for the apache-airflow-ctl package.
> >>>>>>>>>> This will allow us to rename the artifact without modifying the
> >>>>>>> artifact
> >>>>>>>>>> checksums when we actually release.
> >>>>>>>>>>
> >>>>>>>>>> *Docs* (for preview):
> >>>>>>>>>>
> >>>>>>>
> >>>
> https://airflow.staged.apache.org/docs/apache-airflow-ctl/1.0.0/index.html
> >>>>>>>>>> *Release Notes*:
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>
> >>>
> https://github.com/apache/airflow/blob/airflow-ctl/1.0.0rc2/airflow-ctl/RELEASE_NOTES.rst
> >>>>>>>>>> *Testing Instructions using PyPI*:
> >>>>>>>>>>
> >>>>>>>>>> The packages are available in PyPI:
> >>>>>>>>>> https://pypi.org/project/apache-airflow-ctl/1.0.0rc2/
> >>>>>>>>>>
> >>>>>>>>>> You can build a virtualenv that installs this and other required
> >>>>>>> packages
> >>>>>>>>>> like this:
> >>>>>>>>>>
> >>>>>>>>>> uv venv
> >>>>>>>>>> uv pip install -U apache-airflow-ctl==1.0.0rc2
> >>>>>>>>>>
> >>>>>>>>>> Regards,
> >>>>>>>>>> Jarek & Bugra
> >>>>>>>>>>
> >>>>>>>
> ---------------------------------------------------------------------
> >>>>>>> To unsubscribe, e-mail: [email protected]
> >>>>>>> For additional commands, e-mail: [email protected]
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>>> ---------------------------------------------------------------------
> >>>>> To unsubscribe, e-mail: [email protected]
> >>>>> For additional commands, e-mail: [email protected]
> >>>>>
> >>>>
> >>>>
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail: [email protected]
> >>>> For additional commands, e-mail: [email protected]
> >>>>
> >>>
> >>>
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [email protected]
> > For additional commands, e-mail: [email protected]
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to