aws-beam / aws-codegen

Code generator for AWS clients in Erlang and Elixir.
Other
53 stars 49 forks source link

Issue #103: Migrate from aws-sdk-go to aws-sdk-go-v2 #104

Closed onno-vos-dev closed 6 months ago

onno-vos-dev commented 6 months ago

Goal here has been to minimize the diff in aws-elixir and aws-erlang to a bare minimum.

Some minor diffs were unavoidable and deemed acceptable

This has been quite an effort and I just wanna say thank you to Amin, Gustavo and Philip for their contribution, reviews and ideas! 🙇 ❤️ I added each of you as Co-Authors to the commit so you'll get your contribution in the stats! ❤️

jadeallenx commented 6 months ago

This is very cool. Thank you for all of your efforts

onno-vos-dev commented 6 months ago

aws-elixir diff:

aws-elixir-diff.patch

This would be the diff in aws-elixir when ignoring all doc-strings.

Using the following git grep we can exclude some of the expected diffs and we're left with 251 lines difference:

git diff | grep "^-\|^+" | grep -v "200\|nil\|lib/aws/generated\|abbreviation\|signing_name\|target_prefix\|url_path\|^-[[:space:]]*\"\|^+[[:space:]]*\"\|^-$\|^+$" | wc -l
251

Looking at that actual diff we end up with: aws-elixir-actual-diff.patch

Here we see mostly some new/removed functions in control_tower | entity_resolution | neptunedata | q_business | s3. Ignoring those and repeating the above git diff, we're left with 39 lines changed 🎉 Quite impressive considering the specs have changed as massively as they did 👍


aws-erlang diff:

aws-erlang-diff.patch

This would be the diff in aws-erlang when ignoring all doc-strings.

Using the following git grep we can exclude some of the expected diffs and we're left with 212 lines difference:

git diff | grep -v "src/aws_\|%%\|SuccessStatusCode\|Path = \|send_body_as_binary\|receive_body_as_binary\|Options0\|Options2\|proplists_take\|proplists:get_value\|proplists:delete\|^+$\|^-$\|QueryMap\|Client#{" | grep '^[+-]' | wc -l
212

Looking at that actual diff we end up with: aws-erlang-actual-diff.patch

Here we see mostly some new/removed functions in control_tower | entity_resolution | neptunedata | q_business | s3. Ignoring those and repeating the above git diff, we're left with 46 lines changed 🎉 Quite impressive considering the specs have changed as massively as they did 👍