https://github.com/apache/airflow/pull/52148 -> Proposed PR. Let's iterate there if there are comments.
On Tue, Jun 24, 2025 at 11:25 AM Jarek Potiuk <ja...@potiuk.com> wrote: > Yeah. I think what I am really after is expressed by Wei: +0.5 vote - > i.e. we should be fine with **some** selected cherry-picks that are not > bug-fixes that we proactively cherry-pick and do not "complain" that this > is wrong because technically it's not a bugfix. I think It would be great > if in every such cherry-pick we rationalise why we are doing it: > > "I know it's not a bugfix, but because this is an actively developed part > that is cherry-picked heavily, let me cherry-pick that one to make it > easier for others to cherry-pick bugfixes". > > If we are all on-board with that (seems so) then I can update the > cherry-pick description to add it as possible exception. > > J. > > On Tue, Jun 24, 2025 at 10:14 AM Kaxil Naik <kaxiln...@gmail.com> wrote: > >> It looks like everyone is mostly on the same page based on all the emails >> - >> so no comments :) . >> >> On Tue, 24 Jun 2025 at 07:45, Wei Lee <weilee...@gmail.com> wrote: >> >> > I’m +1 for 1-3 (assuming the doc changes relate to the backported >> version). >> > +0.5 for 4. I hope that changes not related to new features will be >> > backported when feasible; however, we can skip them if the required >> effort >> > is substantial. This is because failing to backport these items could >> > potentially lead to future conflicts with points 1 or 3. >> > >> > Best, >> > Wei >> > >> > > On Jun 24, 2025, at 5:32 AM, Jens Scheffler >> <j_scheff...@gmx.de.INVALID> >> > wrote: >> > > >> > > I am +1 for (1) to (3) [also assuming that (2) is mostly like a doc >> > bugfix!] >> > > >> > > For (4) I am hesitant and would rather be conservative. Every >> > cherry-pick has a risk to break something in old codebase. As branches >> > change over time and backport PRs are clearly less cautious reviewed it >> > might lead to introduced inconsistencies which might not be covered in >> > tests. I would also not back-port just for the sake of easier later >> > maintenance for other cherry-picks. But for (4) the rule might not be >> too >> > strict and every rule is made for exceptions which in (4) might be >> likely. >> > But I would not advertise to backport refactorings if no clear benefit. >> > > >> > > On 23.06.25 15:33, Pavankumar Gopidesu wrote: >> > >> Thanks Jarek, for starting this discussion, >> > >> >> > >> I agree with all the points. >> > >> >> > >> The real intention behind to backport >> > >> https://github.com/apache/airflow/pull/51992 is , this area has a >> lot >> > of >> > >> ongoing development going and I felt it's worth porting to v3-0-test. >> > >> I myself faced situations where I tried to backport some doc changes >> , I >> > >> failed because of conflicts that previous changes were not ported >> back >> > on >> > >> the same file etc or conflicts with some lines. >> > >> So I am very strong on this if there are any areas with heavy >> > development >> > >> activity going. I feel it's worth backporting the changes and IMHO i >> > >> don't see any problem. >> > >> >> > >> Pavan >> > >> >> > >> >> > >> On Mon, Jun 23, 2025 at 2:23 PM Jarek Potiuk <ja...@potiuk.com> >> wrote: >> > >> >> > >>>> I think We are approaching it from the same point of view, just >> that >> > we >> > >>> have different conclusions. >> > >>> >> > >>> I agree. I think that simply there is one special case that we >> should >> > >>> "allow". Details below. >> > >>> >> > >>>> For 4, I do not have strong opinions on either front, but defining >> > what >> > >>> to >> > >>>> do and what not should >> > >>>> probably be that if that change makes it easy to backport something >> > else, >> > >>>> maybe have it? >> > >>> Yep. That's **exactly** my proposal. I do not want to backport >> **all** >> > >>> refactorings. That would be stupid. In my definition of 4. I want to >> > >>> cherry-pick those pre-commit when it's small, and automated and when >> > we can >> > >>> easily anticipate it will make it quite likely someone (soon) will >> do >> > >>> another cherry-pick that will be conflicting. >> > >>> >> > >>> Yes. It's not "0/1" and quite a bit personal judgment, and yes it >> > **might >> > >>> not** result in conflict (so we might end up with YAGNI), but I >> think >> > we >> > >>> should define (and trust committers judgment) when they do it, >> because >> > they >> > >>> want to prevent "others" to have problems. >> > >>> >> > >>> For example in case of https://github.com/apache/airflow/pull/51992 >> > -> the >> > >>> only reason why I think it makes sense to cherry-pick it is because >> it >> > is >> > >>> in the area of task-sdk that has been recently bug-fixed quite a >> > number of >> > >>> times and there are open related issues to this area that make it >> > (IMHO) >> > >>> quite likely to result in conflict. I think there are other areas >> like >> > that >> > >>> (UI for example) where we clearly cherry-pick a number of changes, >> > because >> > >>> there are some pretty active "bug-fixing" in this area as 3.0 had >> > still a >> > >>> number of low priority but either known or anticipated bugs that are >> > likely >> > >>> to be fixed in 3.0.3, 3.0.4 >> > >>> >> > >>> So just to clarify - I do not want to cherry-pick "all" refactoring, >> > but >> > >>> leave to the judgment of the commiter merging the request (and >> author) >> > to >> > >>> decide to cherry-pick such change anticipating it will make life >> > easier for >> > >>> others. >> > >>> >> > >>> J >> > >>> >> > >>> >> > >>> >> > >>> >> > >>> On Mon, Jun 23, 2025 at 2:57 PM Amogh Desai < >> amoghdesai....@gmail.com> >> > >>> wrote: >> > >>> >> > >>>> Agree with point 1 - 3 definitely. >> > >>>> >> > >>>> For 4, I do not have strong opinions on either front, but defining >> > what >> > >>> to >> > >>>> do and what not should >> > >>>> probably be that if that change makes it easy to backport something >> > else, >> > >>>> maybe have it? >> > >>>> >> > >>>> For ex: >> > >>>> *PR 1 changes file1.py and file2.py* >> > >>>> *PR 2 changes some lines in file2.py* >> > >>>> >> > >>>> *We backport PR 1 as it's a bug fix and do not for PR 2 as its some >> > >>>> refactoring.* >> > >>>> >> > >>>> *Now while trying to backport PR 3 (bugfix), it conflicts and needs >> > PR 2 >> > >>> to >> > >>>> be picked* >> > >>>> *to land PR 3.* >> > >>>> >> > >>>> >> > >>>> Thanks & Regards, >> > >>>> Amogh Desai >> > >>>> >> > >>>> >> > >>>> On Mon, Jun 23, 2025 at 5:02 PM Ash Berlin-Taylor <a...@apache.org> >> > >>> wrote: >> > >>>>> I think We are approaching it from the same point of view, just >> that >> > we >> > >>>>> have different conclusions. >> > >>>>> >> > >>>>> Points 1-3 I agree with. >> > >>>>> >> > >>>>> We do already have this written up >> > >>>>> >> > >>> >> > >> https://github.com/apache/airflow/blob/130e9600443e06c08acc1b28c69a62c858d6e6a2/dev/README_RELEASE_AIRFLOW.md?plain=1#L116-L129 >> > >>>>> On 4 I think of it in terms that “every change carries some risk” >> — >> > in >> > >>>> the >> > >>>>> linked example of 51992 the risk is almost zero, but generally: >> 3.0.x >> > >>> are >> > >>>>> meant to be bug fix releases on top of 3.0.0, and if it’s not >> fixing >> > a >> > >>>> bug >> > >>>>> we don’t back port it. The one exception I have to this is if the >> > >>> change >> > >>>> is >> > >>>>> needed to make it easy to backport a change that is a bug without >> > >>>> conflicts. >> > >>>>> >> > >>>>> I think our default approach has to be we don’t back port a change >> > >>> unless >> > >>>>> it is fixing a bug, otherwise the risk of “oh I’ll just fix this” >> > ends >> > >>> up >> > >>>>> introducing more bugs than we fix. Stability of a Minor release >> > series >> > >>> is >> > >>>>> my primary desire, and not changing things more than we have to is >> > the >> > >>>> best >> > >>>>> way I know of doing that. >> > >>>>> >> > >>>>> Things are slightly different now that we have automated >> cherry-picks >> > >>> but >> > >>>>> I still don’t think it is worth porting refactoring automatically. >> > It’s >> > >>>>> extra change and risk for almost zero benefit to users is my view. >> > >>>>> >> > >>>>> -ash >> > >>>>> >> > >>>>>> On 23 Jun 2025, at 11:43, Jarek Potiuk <ja...@potiuk.com> wrote: >> > >>>>>> >> > >>>>>> BTW. I'd be happy to capture result of this discussion if we can >> get >> > >>>> to a >> > >>>>>> consensus or vote eventually in the "cherry-picking" guidelines. >> > >>>>>> >> > >>>>>> On Mon, Jun 23, 2025 at 12:42 PM Jarek Potiuk <ja...@potiuk.com> >> > >>>> wrote: >> > >>>>>>> I wanted to start a discussion on "things that we cherry-pick" >> (to >> > >>>> vX_Z >> > >>>>>>> branch). >> > >>>>>>> >> > >>>>>>> I think there are different opinions on what kind of changes >> should >> > >>> be >> > >>>>>>> cherry-picked and it might be a good idea to agree on a common >> > >>>> approach. >> > >>>>>>> I think (following the comment of Ash here) >> > >>>>>>> >> > >>> >> https://github.com/apache/airflow/pull/51992#issuecomment-2995632849 >> > >>>>> that >> > >>>>>>> we can use a very simplistic and (I'd say) dogmatic approach >> "only >> > >>>>>>> cherry-pick bug fixes. Full stop". But I believe (and past >> > >>> experience >> > >>>>> from >> > >>>>>>> a lot of cherry-picking that I've been doing - multiple times >> > >>> helping >> > >>>> to >> > >>>>>>> bring past branches to be green and spending countless hours on >> it, >> > >>>>> that it >> > >>>>>>> should be a bit more nuanced. >> > >>>>>>> >> > >>>>>>> I would love to see what others think, but from my experience >> those >> > >>>> are >> > >>>>>>> the things that we **should** cherry-pick: >> > >>>>>>> >> > >>>>>>> >> > >>>>>>> 1) bug-fixes (of course) >> > >>>>>>> 2) doc changes (when they are improvements or filling gaps) >> > >>>>>>> 3) dev tool changes (every time we did not, it resulted in >> hours of >> > >>> my >> > >>>>>>> time when things were breaking and I tried to reconcile it) >> > >>>>>>> 4) results of automated refactorings that have very low risks >> (in >> > >>> the >> > >>>>>>> areas that are likely to have cherry-picks) >> > >>>>>>> >> > >>>>>>> t) - is non-controversial I think >> > >>>>>>> >> > >>>>>>> 2) - is also relatively non-controversial and very low risk and >> > >>> gives >> > >>>>> our >> > >>>>>>> users a chance to get better docs earlier (even today for >> example I >> > >>>>> cherry >> > >>>>>>> picked this one: https://github.com/apache/airflow/pull/52068 - >> > >>>> because >> > >>>>>>> one of my friends who tries to learn Airflow 3 pinged me that >> > >>>>>>> "ConfiuguringRuff" link that we have in 3.0.2 leads to 404 NOT >> > found >> > >>>>>>> >> > >>>>>>> 3) - it had always bitten us if we stopped cherry-picking dev >> tool >> > >>>>>>> changes. The thing is that external dependencies change all the >> > time >> > >>>>> and we >> > >>>>>>> are continuously catching up with those, also we improve, speed >> up >> > >>> and >> > >>>>>>> simplify the tooling - and often things that worked when branch >> was >> > >>>> cut, >> > >>>>>>> does not work today - countless, countless hours lost in one or >> two >> > >>>>>>> branches when we stopped doing it - I think even once or twice I >> > had >> > >>>> to >> > >>>>>>> just copy over most (but not all) the code from main to the >> branch >> > >>> and >> > >>>>>>> commit one single "catch-up dev tooling with main" big change >> > >>>>>>> >> > >>>>>>> 4) Is likely most controversial - example here: >> > >>>>>>> https://github.com/apache/airflow/pull/51992/ - those are the >> kind >> > >>> of >> > >>>>>>> (really small) changes that are done in "active" area (i.e. area >> > >>> that >> > >>>>> had >> > >>>>>>> and will have a lot of cherry-picks anyway, but they are done >> with >> > >>>>>>> automated refactoring - like renaming variables and such. This >> > >>>>> introduces >> > >>>>>>> clarity and readability, so this is good we are doing them. But >> if >> > >>> we >> > >>>> do >> > >>>>>>> not cherry-pick them and then we cherry-pick any change that >> > touches >> > >>>> the >> > >>>>>>> same code, this lead to a conflict. Conflicts are frustrating, >> > >>>>> especially >> > >>>>>>> those kinds - you never know what you should do - should you >> > "merge" >> > >>>>> this >> > >>>>>>> naming change with your change? or should you leave the original >> > >>>>> namiing, >> > >>>>>>> or should you try to find the past commit that changed it and >> > >>>>> cherry-pick >> > >>>>>>> it as well? This paired with the fact that we are using >> > >>> cherry-picker >> > >>>>> that >> > >>>>>>> allows to cherry-pick stuff very quickly, automatically and >> > >>> painlessly >> > >>>>> when >> > >>>>>>> there are no conflicts, make me think that yes - we should >> cherry >> > >>>> -pick >> > >>>>>>> those changes proactively as a service to those contributors who >> > >>> will >> > >>>>>>> follow up with their cherry-picking. It's just "good service" >> and >> > >>>>> helping >> > >>>>>>> others who will come after you. >> > >>>>>>> >> > >>>>>>> That's how my definition of "what we should cherry-pick" is... >> > >>>>>>> >> > >>>>>>> I wonder what others think about it ? >> > >>>>>>> >> > >>>>>>> J. >> > >>>>>>> >> > >>>>>>> >> > >>>>>>> >> > >>>>>>> >> > >>>>>>> >> > >>>>>>> >> > >>>>> >> > >>>>> >> --------------------------------------------------------------------- >> > >>>>> 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 >> > > >> > >> > >> > --------------------------------------------------------------------- >> > To unsubscribe, e-mail: dev-unsubscr...@airflow.apache.org >> > For additional commands, e-mail: dev-h...@airflow.apache.org >> > >> > >> >