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