Skip to content

Release 2.5.1 of Amazon Provider #20457

Closed

Description

@kaxil

Apache Airflow version

2.2.3 (latest released)

What happened

The 2.5.0 version of Amazon Provider contains breaking changes - https://airflow.apache.org/docs/apache-airflow-providers-amazon/stable/commits.html specifically 83b51e5 or the combination of the following:

and confirmed by @uranusjr

I have yanked 2.5.0 and we will need to release 3.0.0 2.5.1 with backwards compatibility fixes

I have updated the constraints for 2.2.3 for now - 62d490d

UPDATED: (@potiuk) to reflect that we are going to release 2.5.1 instead of 3.0.0

Activity

  1. kaxil commented on Dec 21, 2021

    @kaxil
    MemberAuthor
  2. potiuk commented on Dec 21, 2021

    @potiuk
    Member

    What kind of breaking changes they are @uranusjr ?
    They are not immediately visible. Can we make it backwards-compatible instead?
    I would not introduce backwards incompatibility unless we really have a good reason.

  3. uranusjr commented on Dec 22, 2021

    @uranusjr
    Member

    On the surface level, the AwsBaseHook.expand_role() now calls _get_credentials() with no arguments, which is not supported on older versions, and thus if someone subclasses the hook to reimplement _get_credentials(), the code would break after upgrade.

    More deeply though, expand_role() used to depend on boto’s get_client_type() with a dynamic client type, which is deprecated in newer Boto versions. Tt now uses _get_credentials() instead to avoid the deprecation. But expand_role() does not tak a region argument and therefore cannot pass one to _get_credentials(). If we keep compatibility on _get_credentials(), we’d break compatibility on expand_role() instead.

  4. potiuk commented on Dec 22, 2021

    @potiuk
    Member

    More deeply though, expand_role() used to depend on boto’s get_client_type() with a dynamic client type, which is deprecated in newer Boto versions. Tt now uses _get_credentials() instead to avoid the deprecation. But expand_role() does not tak a region argument and therefore cannot pass one to _get_credentials(). If we keep compatibility on _get_credentials(), we’d break compatibility on expand_role() instead.

    Can't we pass None explicitly as region from the expand_role() and leave the region argument Optional but without default ?

  5. uranusjr commented on Dec 22, 2021

    @uranusjr
    Member

    Hmm, I think so. And maybe expand_role() should gain an optional region_name argument as well (defaulting to None and never explicitly used in the provider until 3.0).

  6. potiuk commented on Dec 22, 2021

    @potiuk
    Member

    Yeah. Seems to small af a thing to make whole provider backwards incompatible.

  7. changed the title [-]Release 3.0.0 of Amazon Provider[/-] [+]Release 2.5.1 of Amazon Provider[/+] on Dec 22, 2021
  8. added a commit that references this issue on Dec 22, 2021
    2ab2ae8
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions