aio-libs / aiobotocore

asyncio support for botocore library using aiohttp
https://aiobotocore.aio-libs.org
Apache License 2.0
1.16k stars 182 forks source link

Support up-to-date `botocore` #1063

Closed jakob-keller closed 9 months ago

jakob-keller commented 9 months ago

Description of Change

This PR intends to improve general compatibility of aiobotocore within the Python ecosystem by bumping the dependency specification of botocore, as well as boto3 and awscli.

It also restores feature parity with respect to recently released and improved AWS services, in particular adding support for S3 Express One Zone.

Assumptions

Upstream diff contains multiple changes that affect this codebase.

Checklist for All Submissions

Checklist when updating botocore and/or aiohttp versions

codecov[bot] commented 9 months ago

Codecov Report

Attention: 23 lines in your changes are missing coverage. Please review.

Comparison is base (1ce6853) 86.46% compared to head (ef378b7) 86.13%.

Files Patch % Lines
aiobotocore/utils.py 45.16% 17 Missing :warning:
aiobotocore/signers.py 58.33% 5 Missing :warning:
aiobotocore/client.py 92.30% 1 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #1063 +/- ## ========================================== - Coverage 86.46% 86.13% -0.34% ========================================== Files 60 60 Lines 5814 5863 +49 ========================================== + Hits 5027 5050 +23 - Misses 787 813 +26 ``` | [Flag](https://app.codecov.io/gh/aio-libs/aiobotocore/pull/1063/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=aio-libs) | Coverage Δ | | |---|---|---| | [unittests](https://app.codecov.io/gh/aio-libs/aiobotocore/pull/1063/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=aio-libs) | `86.13% <58.92%> (-0.34%)` | :arrow_down: | Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=aio-libs#carryforward-flags-in-the-pull-request-comment) to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

jakob-keller commented 9 months ago

@thehesiod: Another bump that adds support for new AWS services and features.

I'm unsure how to deal with the lack of test coverage. Is this something to be concerned about?

thehesiod commented 9 months ago

@thehesiod: Another bump that adds support for new AWS services and features.

I'm unsure how to deal with the lack of test coverage. Is this something to be concerned about?

not reaaaly, bonus if they're added. We should probably have a task to port all the botocore tests over

thehesiod commented 9 months ago

will get to this today

jakob-keller commented 9 months ago

will get to this today

I just pushed another update that extends compatibility up to yesterday's botocore release. It's all yours now ;-)

thehesiod commented 9 months ago

whoops didn't get to it. will do asap

thehesiod commented 9 months ago

going to do version w/o prefix this time, see how it goes

thehesiod commented 9 months ago

thanks for all the help!

thehesiod commented 9 months ago

I liked your strategy of supporting multiple botocore versions, probably worth adding to the docs describing how to do upgrades

thehesiod commented 9 months ago

actually was thinking about this last night, we can probably add a python helper where you set a base revision, and it tells you which ranges have only service json changes. Would save a lot of manual labor.

jakob-keller commented 9 months ago

we can probably add a python helper where you set a base revision, and it tells you which ranges have only service json changes.

That's true. To reach the next level of automation, it would be nice to run a scheduled GitHub action that checks for new botocore releases and opens PRs, if these are light-weight, i.e. only contain service JSON updates. Once that is stable, these PRs could even be auto-merged after passing CI. Eventually, we could also do automated minor releases.

thehesiod commented 9 months ago

i like your thinking :]