Hi Jarek,
one thought came into my mind... as you said it is a lot of trouble to
find which "dev" PR might be missing on a mainteance branch... should we
cherry-pick dev tooling PRs by default as well to active maintenance
branches? I mean... automating this in the CI like if `backport to`label
is set?
Jens
On 24.06.25 11:38, Jarek Potiuk wrote:
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
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@airflow.apache.org
For additional commands, e-mail: dev-h...@airflow.apache.org