I agree with those (including myself) who have suggested that it would be great to have a deprecation fix tool.
I also think that UI notifications would be valuable. Another option would be to provide a less intrusive indicator somewhere (like when chrome lets you know you need to update), and then you click on it and it takes you to a page that lists out all the deprecation warnings. On Thu, Aug 4, 2022 at 1:03 AM Jarek Potiuk <ja...@potiuk.com> wrote: > I know we are distracting a bit from the main subject, but I think it's > worth it. > > I think this is a fact of life that people don't remove deprecations. But > we have a choice of "not doing anything about it" and complaining. Or doing > something that might improve it. > > I usually err on the side of "doing something" when I see a problem. I am > a doer :). > > And I have a possibly controversial proposal. I got the inspiration from > node.js old versions. Whenever an old version of Node is being used, you > have a 20 seconds delay artificially added and information that in order to > remove those 20 seconds you need to upgrade. > > Why don't we do that for some really old/serious deprecations ? Maybe not > 20 seconds. Maybe adding an unremovable RED warning in the UI if you have > any deprecation unhandled. Something that is annoying enough that > will cause people to make an action but not intrusive enough to break > things. > > I think this is a very basic psychological trait: > > If it does not cost the user anything to leave the deprecations, there > will be a big number of people who will do that. > We need to make sure that deprecations are costing our users "a little" > and that they are aware that they can remove the cost (and know how - this > is super important that we only show such a message with clear instructions > on what to do). > > Such a message might be annoying in many ways: > > * it can obstruct significant part of the screen > * It can be flashy and had very annoying colours (think bold pink fonts on > flash-green background for example) > * It can not allow to do anything before the user closes it with a REALLY > small 'x' that it is difficult to point at (think cookie banners). And when > they click they can be greeted with "You know - you can actually remove > this warning by doing THIS". > * and we have probably more options - our UX specialists might have some > good ideas here > > For anyone who complains about "people do not act on deprecation." - yeah > this is true. > But one universal truth there is that if we won't act, this will change > nothing in the behaviour of our users - this is 100% certain. > > If we do something - it might improve it. We will not get a 100% success > for sure, but we can at least do something to improve it. > > WDYT? > > J. > > > On Thu, Aug 4, 2022 at 6:52 AM Felix Uellendall <felue...@pm.me.invalid> > wrote: > >> Hi Ping, >> >> I had this idea about auto-fixing deprecation warnings too when I started >> the airflint project. >> I totally agree with what you said that often people ignore these >> warnings and therefore a cli tool would come in very handy. It could look >> similar to the airflint project and also be based on the python refactor >> package, but I would keep it out of this discussion for now. >> >> Regarding the schedule arg, I don’t have a strong opinion there but >> also tend to having one schedule arg, because of simplicity for the dag >> author. >> >> Best, >> Felix >> >> >> >> Sent from Proton Mail for iOS >> >> >> On Thu, Aug 4, 2022 at 00:23, Ping Zhang <pin...@umich.edu> wrote: >> >> Hi Daniel, >> >> +1 for ‘schedule' and thanks for bringing this up. >> >> I agree with Vikram, we should be very careful about deprecating existing >> params even if we have warnings around it. Not sure if this is a general >> case, but I notice that people ignore warnings all the time until it starts >> to break. Thus I am thinking if airflow can have a cli tool to help users >> to batch update these deprecating params just like python's futurize tool. >> This can greatly ease the burden of upgrading the airflow version. >> >> >> Thanks, >> >> Ping >> >> >> On Wed, Aug 3, 2022 at 3:13 PM Daniel Standish >> <daniel.stand...@astronomer.io.invalid> wrote: >> >>> In case you forgot about us @Vikram, gentle nudge >>> >>> On Mon, Aug 1, 2022 at 8:40 AM Daniel Standish < >>> daniel.stand...@astronomer.io> wrote: >>> >>>> Well, this is a discussion thread, so let's discuss! >>>> >>>> Vikram, what kind of implications are you thinking of? Maybe you could >>>> provide a little more detail about your concerns? >>>> >>>> There are certainly alternatives, and of course each of them has >>>> tradeoffs. >>>> >>>> Here are the options I see: >>>> >>>> 1. consolidate to schedule (deprecate schedule_interval and timetable; >>>> the proposal under discussion in this thread) >>>> 2. do nothing (keep 3 different scheduling params) >>>> 3. consolidate to schedule_interval (deprecate timetable) >>>> 4. don't deprecate timetable, but remove schedule_on (AIP-48 has added >>>> it in main) and take List[Dataset] in `schedule_interval` >>>> >>>> Which would you propose we go with? >>>> >>>> If we have a veto against 1 (and again, we're in hypothetical territory >>>> since this is still a discussion thread), my vote would definitely be to go >>>> with 3. >>>> >>>> The param `schedule_interval` as catch all is not *sooo *bad, but >>>> `schedule` definitely seems better. From a new user's perspective, having >>>> misleading names is confusing, and can be a negative when looking at >>>> adoption. And for a tenured user, it can nag at you. And dealing with >>>> deprecations as an Airflow user, well it's sort of part of the job, though >>>> it can be bothersome, certainly. >>>> >>>> Just to look at / compare feasibility. >>>> >>>> Deprecating schedule_interval, it would be more prominent than some >>>> other deprecations because it's a DAG param. That said, I think it's pretty >>>> straightforward to handle. For one, it's at the cardinality of DAG and not >>>> *task*, so there is less to change with than some other deprecations. >>>> And being kwargs-only, it's an easy find and replace that could be >>>> automated with an `upgrade-check` script. It's very easy to detect, either >>>> to warn about, or ultimately, after upgrade, to fail the DAG parse (which >>>> forces user to fix). Perhaps we could even experiment with a deprecation >>>> fix tool, so that users could get help fixing deprecations, not necessarily >>>> in the context of an upgrade, since we're not looking at 3.0 any time soon. >>>> >>>> We could compare with execution_date, if execution_date is to be >>>> removed in 3.0. I think the deprecation of execution_date will be a more >>>> difficult thing for users to handle. For one, potentially higher >>>> cardinality, since it is used in tasks. But also, the use of execution_date >>>> can be harder to detect, since it can be in templates and elsewhere in >>>> custom operators. *(With schedule_interval, since it's a top-level dag >>>> kwarg, it will be easier.)* And execution_date was replaced with >>>> `logical_date` for similar reasons -- avoiding user confusion. >>>> >>>> >>>> >>>> >>>> On Fri, Jul 29, 2022 at 2:42 PM Vikram Koka >>>> <vik...@astronomer.io.invalid> wrote: >>>> >>>>> -1 from me. >>>>> >>>>> Though I agree in principle with the idea of consolidation, I don't >>>>> think we should be doing this yet until we understand the implications >>>>> completely. >>>>> I am really not in favor of deprecation of the existing params, unless >>>>> there is really no alternative. >>>>> >>>>> >>>>> On Fri, Jul 29, 2022 at 2:37 PM Daniel Standish >>>>> <daniel.stand...@astronomer.io.invalid> wrote: >>>>> >>>>>> So far, seems all in favor. >>>>>> >>>>>> I will just highlight, in case it's not clear.... when we release >>>>>> this (presumably 2.4), basically every single dag in existence will start >>>>>> emitting deprecation warnings, and prior to 3.0, basically every dag in >>>>>> existence will need to be updated. >>>>>> >>>>>> Thankfully, for most people, this should be an easy update since DAG >>>>>> is kwargs only, IIRC. >>>>>> >>>>>> >>>>>> >>>>>> On Fri, Jul 29, 2022, 2:27 PM Brent Bovenzi >>>>>> <br...@astronomer.io.invalid> wrote: >>>>>> >>>>>>> +1 to consolidating and "schedule". >>>>>>> >>>>>>> On Fri, Jul 29, 2022, 10:12 PM Drew Hubl >>>>>>> <drew.h...@astronomer.io.invalid> wrote: >>>>>>> >>>>>>>> +1 for ‘schedule', and another +1 to the importance of >>>>>>>> consolidating to one being more important than the name of that one >>>>>>>> >>>>>>>> On Jul 29, 2022, at 1:58 PM, Josh Fell < >>>>>>>> josh.d.f...@astronomer.io.INVALID> wrote: >>>>>>>> >>>>>>>> Consolidating to a single scheduling parameter is a big +1 from me. >>>>>>>> `schedule` seems like a nice catch-all. >>>>>>>> >>>>>>>> On Fri, Jul 29, 2022 at 9:10 AM Jed Cunningham < >>>>>>>> jedcunning...@apache.org> wrote: >>>>>>>> >>>>>>>>> +1 on moving to a single `schedule` param. >>>>>>>>> >>>>>>>> >>>>>>>>