Draft: Swift version management, Docker multi-stage build #41
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
While implementing #38, I sometime struggled with steps necessary to make the app build. I'd like to pitch developer experience improvement using
swiftenv
for toolchain management.The problem
The current toolchain management is hard to understand and error-prone when managing multiple versions. The configuration of supported swift versions is spread across multiple places (build scripts, Vapor app, frontend and Docker) making maintenance real challenge.
The solution
swiftenv
swiftenv versions
) as the source of truth for BE and FE (using new/api/versions
endpoint)OnlinePlayground
in favour of Swift 5 ABI (build once, link everywhere™️)Let me know if it sounds interesting to you and we can coordinate to finish this PR.