I tend to agree with Wei here, if process can fix the issue maybe it shouldn't go into code.
-- Regards, Aritra Basu On Mon, Apr 15, 2024, 9:42 AM Amogh Desai <amoghdesai....@gmail.com> wrote: > I agree with the points made by Andrey here. > > > End users use amazon provider and google provider, and do not use > common.sql and both of them have mandatory common.sql as dependency. > > On the contrary, would it be better to remove common.sql as mandatory > dependencies for > providers that do not use it? That way we would avoid one of the bigger > problems which is > maintaining the providers that have common.sql as dependency but do not > need it as and when we > someday deprecate common.sql? > > Thanks & Regards, > Amogh Desai > > > On Sun, Apr 14, 2024 at 2:20 PM Wei Lee <weilee...@gmail.com> wrote: > > > I feel like this is the responsibility of the provider contributor 🤔 > > Maybe we could check whether the PR contains common.sql usage and raise a > > warning? > > > > Best, > > Wei > > > > > On Apr 12, 2024, at 12:31 AM, Andrey Anshin <andrey.ans...@taragol.is> > > wrote: > > > > > > There are some drawbacks I saw here, it would force to upgrade other > > > providers to the latest version. > > > Some scenarios from the my head: > > > > > > End users use amazon provider and google provider, and do not use > > > common.sql and both of them have mandatory common.sql as dependency. > > > if everything works fine there is no problem, but it could be a > situation > > > that a new release of one of the providers is major or contains bugs > and > > > there is no possible way to downgrade one of them and keep a new > version > > of > > > another without breaking dependencies. > > > > > > Other case if we need to exclude common.sql provider from provider > > release > > > wave than we also need to exclude all providers which depends on > > common.sql > > > even if it problem not affected directly, e.g. it is not a sql only > > > provider, e.g. amazon, google, microsoft.azure > > > > > > If it is not a big deal I have no objections to adding this because I > do > > > not have a better solution which could be implemented "Here and Now". > > > > > > It could be resolved if we might run tests against released versions of > > > common.sql, but after some brief investigation to run tests > > > against installed versions and not a main version this might require > > > changing quite a few things, which might take a time. > > > > > > > > > > > > > > > On Thu, 11 Apr 2024 at 12:41, Jarek Potiuk <ja...@potiuk.com <mailto: > > ja...@potiuk.com>> wrote: > > > > > >> Hello here, > > >> > > >> I have a proposal to add a general policy that all our providers > > depending > > >> on common.sql provider always use >= LATEST_MNOR version of the > > provider. > > >> > > >> For example, following the change here > > >> https://github.com/apache/airflow/pull/38707 by David we will update > > all > > >> sql providers to have: airflow-providers-common-sql >= 1.12. We could > of > > >> course automate that with pre-commit so that we do not have to > remember > > >> about it. > > >> > > >> Why ? > > >> > > >> Because it's very easy by a provider to accidentally use a new feature > > in > > >> common.sql without bumping the version. Current situation is like in > the > > >> image attached (thanks David), but we cannot be certain that the > > >> "min-versions" there are "good".. > > >> > > >> A bit more context: > > >> > > >> Generally speaking - common.sql **should** be backwards compatible - > > like > > >> - always. We should not make any changes in it's API (which is for-now > > >> captured here: > > >> > > > https://github.com/apache/airflow/blob/main/airflow/providers/common/sql/hooks/sql.pyi > > >> ). And from time to time we add new things to common.sql that > providers > > >> might start using. > > >> > > >> Example: > > >> > > >> From the > > https://lists.apache.org/thread/lzcpllwcgo7pc8g18l3b905kn8f9k4w8 > > >> thread the new "suppress_and_warn" method is going to be added. > > >> > > >> Currently we have no good mechanism to verify if the min version in > > >> provider dependencies is really "good". For example when we add > > >> `suppress_and_warn` today and someone starts using > `suppress_and_warn` > > in > > >> the "presto" (for example) provider tomorrow, without bumping > > common-sql to > > >>> = 1.12 - it will fail with 1.11 or earlier installed. > > >> > > >> On the other hand - all the tests we run in `main` use the "latest" > > >> version of the `common.sql` and all the constraints we produce also > use > > the > > >> latest version released, so we can be rather sure that the new > providers > > >> actually work well with the latest `common.sql` version. If there will > > be a > > >> bug about compatibility (happened in the past), then it should be > fixed > > by > > >> fixing it in a new patchlevel of the `common.sql`. > > >> > > >> So in-general it should be "safe" to add >= LATEST MINOR of common.sql > > in > > >> all providers. > > >> > > >> Should we do (and automate) it ? Any other comments / proposals maybe > ? > > >> > > >> Here is the current state of dependencies: > > >> > > >> > > >> [image: image.png] > > > > >