Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Benefit of output separation - bring back everything under aws-sdk-cpp? #821

Open
h-vetinari opened this issue Nov 14, 2023 · 6 comments
Open

Comments

@h-vetinari
Copy link
Member

h-vetinari commented Nov 14, 2023

I'm wondering what gains we're getting from having

aws-c-auth
aws-c-cal
aws-c-common
aws-c-compression
aws-c-event-stream
aws-c-http
aws-c-io
aws-c-mqtt
aws-c-s3
aws-c-sdkutils
aws-checksums
aws-crt-cpp
s2n

all being migrated separately. It's generating a lot of churn, and I'm not sure what gain we get in return?

It might make sense to rather just implicitly migrate through this package?

W.r.t. to the costs that any benefits would need to offset (IMO) the very frequent migrations for all of the above packages. That alone creates a lot of maintenance on the pinning repo, but worse than that, they often logjam because one of the packages involved automerges a new version while another migration is still running, requiring manual intervention.

While the above migrations are mostly internal (i.e. don't cause rebuilds of packages outside of aws-*), and we finally reduced the number of "external" migrations due to aws-sdk-cpp in #662, there are still ways this amps up the maintenance elsewhere.

For example, I added aws-crt-cpp as a host-dep to arrow because the link check complained otherwise, which worked without too much hassle for some time, but now generated 3 migrations (times 4 maintenance branches) in a very short succession (conda-forge/arrow-cpp-feedstock#1224, conda-forge/arrow-cpp-feedstock#1229, conda-forge/arrow-cpp-feedstock#1240)

CC @conda-forge/aws-sdk-cpp @conda-forge/core

@xhochy
Copy link
Member

xhochy commented Nov 19, 2023

My initial idea was to make this package here a split package so that we only include the features needed for arrow in one part and providing a fatter package for other use cases.

@xhochy
Copy link
Member

xhochy commented Nov 22, 2023

Another benefit is that aws-sdk-cpp and awscrt both use the libraries and they appear together in some of my environments.

@h-vetinari
Copy link
Member Author

I think the points you mention are clear advantages, the question to me is just if they are important enough to justify the near-constant migration effort in the aws-* space.

Another benefit is that aws-sdk-cpp and awscrt both use the libraries and they appear together in some of my environments.

Couldn't we build awscrt on top of a hypothetically unified libaws-sdk? That way, there wouldn't be any duplicated libraries in the environment (just more than necessary; the .conda for aws-sdk-cpp currently has 3MB, which isn't nothing, but also not gigantic; e.g. the gcp bindings are >10x larger).

@xhochy
Copy link
Member

xhochy commented Nov 30, 2023

Couldn't we build awscrt on top of a hypothetically unified libaws-sdk?

I'm not sure that maintenance would actually be less.

the .conda for aws-sdk-cpp currently has 3MB, which isn't nothing, but also not gigantic; e.g. the gcp bindings are >10x larger

We only build a subset at the moment:

-DBUILD_ONLY='s3;core;transfer;config;identity-management;sts;sqs;sns;monitoring;logs' \

@jaimergp
Copy link
Member

What was the initial reason to split them to begin with? CI usage? Does the build go over 6h?

@xhochy
Copy link
Member

xhochy commented Nov 30, 2023

I don't remember the circumstances anymore but I have split it during the osx-arm64 migration: #126 It was probably down to easier cross-compiling/patching of dependencies.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants