Skip to content

Improve local developer experience with using the aws-sdk-swift Package #821

@epau

Description

@epau

Describe the feature

The aws-sdk-swift swift package is large (currently contains ~335+ products) since we create a product for each service. All of the code for all services is downloaded and added as part of the package even if a customer only wishes to use one or two services. This can causes a few issues that can be quite frustrating.

  • Significantly increases indexing time, which eats up CPU resources. (granular levers to disable indexing for a directory do not exist)
  • Makes it harder to locate specific files as the directory is cluttered with unused services
  • Makes it harder to find specific code snippets as search results are filled with matching results from unused services

Ideally, only code for the selected services would be provided to the customer.

Use Case

N/A

Proposed Solution

Provide downloadable xcframeworks for each service module

We can produce xcframework artifacts for each service module and provide a way to access them. Perhaps even attached to the release in github. Then folks that want to have a better local development experience, can, by downloading and adding the specific service frameworks they want.

Develop our own package registry

With swift 5.7, SPM supports package registry services (rather than just supporting git)
This is a pretty large undertaking and would include a significant cost to maintain the service.
That being said, it would remove our dependency on github and allow each service to be their own package.
Customers would add each individual service package to their project, rather than just adding the aws-sdk-swift package and selecting the products.

Storing each service in it's own git repo

Pretty straightforward and self explanatory. I believe this is unrealistic but wanted to include for completeness.
Each service would have it's own git repo where the corresponding service code and Package manifest would be stored.
Customers would add each individual service package to their project, rather than just adding the aws-sdk-swift package and selecting the products.

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

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