Swift 4.2 introduces a new syntax to express Swift language versions in a SwiftPM manifest. To handle that, PackageManager now detects the Swift version used to compile a script, and adjusts the syntax accordingly.
Ideally we’d have a more declarative way to model these type of code paths, but that’s a refactor for the future :)
Also, to make these kind of changes able to take effect without requiring users to blast their ~/.marathon folder, a marathon-generation-version header is introduced into generated Package.swift manifests. This version can be bumped in order for Marathon to force-re-generate all Package manifests, in case of syntax changes like this one. This change is backwards compatible.
Swift 4.2 introduces a new syntax to express Swift language versions in a SwiftPM manifest. To handle that,
PackageManager
now detects the Swift version used to compile a script, and adjusts the syntax accordingly.Ideally we’d have a more declarative way to model these type of code paths, but that’s a refactor for the future :)
Also, to make these kind of changes able to take effect without requiring users to blast their
~/.marathon
folder, amarathon-generation-version
header is introduced into generated Package.swift manifests. This version can be bumped in order for Marathon to force-re-generate all Package manifests, in case of syntax changes like this one. This change is backwards compatible.