cool On Fri, Sep 5, 2025 at 8:30 PM Ferruzzi, Dennis <ferru...@amazon.com> wrote:
> Yup, I like it. Thanks for driving this one. > > > - ferruzzi > > > ________________________________ > From: Wei Lee <weilee...@gmail.com> > Sent: Thursday, September 4, 2025 3:43 AM > To: dev@airflow.apache.org > Subject: RE: [EXT] [Discussion] Should We avoid using AirflowException > direclty? > > CAUTION: This email originated from outside of the organization. Do not > click links or open attachments unless you can confirm the sender and know > the content is safe. > > > > AVERTISSEMENT: Ce courrier électronique provient d’un expéditeur externe. > Ne cliquez sur aucun lien et n’ouvrez aucune pièce jointe si vous ne pouvez > pas confirmer l’identité de l’expéditeur et si vous n’êtes pas certain que > le contenu ne présente aucun risque. > > > > I believe we've reached a certain level of consensus, but we still have > some things to discuss. I'll break it into two parts. > > — > > ## What we have concluded on. > 1. In most cases, we should prioritize using Python’s standard exceptions > (e.g., `ValueError`, `TypeError`, `OSError`) instead of wrapping everything > in `AirflowException`. > 2. Within `airflow-core`, we should define and utilize more specific > exception classes under `airflow.exceptions`. > 3. For provider-specific implementations, exceptions should be defined > within `airflow.providers.<provider>.exceptions`. > The use of points 2 and 3 should only be considered when point 1 is > inappropriate, which should be a rare occurrence. > > What we can do other than nail down these rules > Add it to > https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst > Add a prek hook to detect `raise AirflowException` > > If no one objects, I'm planning on sending a [Lazy Consensus] sometime > tomorrow. > > — > > ## What we haven't yet had a consensus > Whether we really can/want to remove or depreciate AirflowException > If we want, how are we going to achieve it > > Best, > Wei > > > On Sep 2, 2025, at 3:36 PM, Amogh Desai <amoghde...@apache.org> wrote: > > > > Generally agree with this too. > > > > `AirflowException` is literally being overused almost to an extent that > it > > has > > become like a dumping ground (along the lines of what `utils` has become) > > > > I would be in favour of removing it too and addressing backcompat > concerns > > for user facing / custom provider / hooks etc facing classes. > > > > This could be run as a community exercise too once we reach that stage to > > clean > > up providers from using / overusing it. > > > > Thanks & Regards, > > Amogh Desai > > > > > > On Tue, Sep 2, 2025 at 1:58 AM Jens Scheffler <j_scheff...@gmx.de.invalid > > > > wrote: > > > >> Also was a bit focussing on other stuff, late to the party. > >> > >> For deprecation we should consider RUFF rules as well. > >> > >> But on side of code changes I fear a lot of people wil have > >> implementations based on AirflowException. I did not get the idea of > >> backwards compatability. If we change Exception types then Operators > >> implemented on top of Standard-Provider might fail if the receive > >> different exceptions from inherited classes? > >> > >> Jens > >> > >> On 01.09.25 17:05, Buğra Öztürk wrote: > >>> Great discussion! Joining delayed. We have this usage in airflowctl too > >>> where AirflowException is the main one even though it isn't imported > from > >>> core. > >>> I agree with the consensus. Great idea to make it backward compatible. > >>> Maybe would be good to define a migration calendar roughly. > >>> While we should prevent usage with some pre-commit hooks, we should > also > >>> document the practices we should follow on exception handling for these > >>> changes. > >>> Even though we can manage to migrate seamlessly for the user, I think > we > >>> still should warn them about the exception handling usage and give some > >>> kind of deprecation warning if possible > >>> > >>> Bugra Ozturk > >>> > >>> On Mon, 1 Sept 2025, 16:04 Wei Lee, <weilee...@gmail.com> wrote: > >>> > >>>> Thanks everyone for joining the discussion! > >>>> > >>>> I think we have some consensus. These should at least apply to new > code. > >>>> > >>>> 1. Don’t use AirflowException > >>>> 2. Use Python native whenever possible > >>>> 3. Create customized exceptions instead of AirflowException > >>>> > >>>> But we’re worried about how and whether we should remove > >> AirflowException. > >>>> What I am thinking is removing `raise AirflowException`. > >>>> As for AirflowException itself, it looks somewhat challenging. > >>>> What if we do something like `CustomException(AirflowException)`, > >>>> so `except AirflowException` blocks still work, but we can gain the > >>>> benefit of making it descriptive. > >>>> > >>>> > >>>> Best, > >>>> Wei > >>>> > >>>>> On Aug 30, 2025, at 11:08 PM, Jarek Potiuk <ja...@potiuk.com> wrote: > >>>>> > >>>>>> I would say we should only worry about backcompat when there's > >> something > >>>>> to > >>>>> worry about. > >>>>> > >>>>> I think Daniel is quite right. In this case what **would** happen if > >>>>> someone relies on `try AirflowException`, the issue would be > immediate > >> to > >>>>> see and easy to fix (and we can describe it in release notes as > >>>> significant > >>>>> news. I can't easily think of a "reasonable" case where behaviour > would > >>>> be > >>>>> changed without crashing. I think that would be a blocker if we can > >> have > >>>> a > >>>>> reasonable way of using it that might change the behaviour in a way > >> that > >>>> is > >>>>> difficult to notice by the user, but when I think of potential cases > I > >>>>> cannot imagine usage that could lead to it. > >>>>> > >>>>> J > >>>>> > >>>>> > >>>>> On Wed, Aug 27, 2025 at 3:31 PM Daniel Standish > >>>>> <daniel.stand...@astronomer.io.invalid> wrote: > >>>>> > >>>>>> Generally agree with this. > >>>>>> > >>>>>> I would say we should only worry about backcompat when there's > >>>> something to > >>>>>> worry about. > >>>>>> > >>>>>> Like, if there's just a remote possibility that a user is doing > >>>> something > >>>>>> weird (e.g. in some subclass they wrote of something) then, not > really > >>>> for > >>>>>> us to worry about. Seems rather internal behavior generally. > >>>>>> > >>>>>> If we *know* for sure changing it will break airflow for certain > >>>>>> combinations that should work, that's something to address. > >>>>>> > >>>> > >>>> --------------------------------------------------------------------- > >>>> To unsubscribe, e-mail: dev-unsubscr...@airflow.apache.org > >>>> For additional commands, e-mail: dev-h...@airflow.apache.org > >>>> > >>>> > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: dev-unsubscr...@airflow.apache.org > >> For additional commands, e-mail: dev-h...@airflow.apache.org > >> > >> > >