The review of SE-0387: Cross-Compilation Destination Bundles ended on February 14th, 2023, and the core team has decided to accept the proposal in principle the following modifications. Also, return it for re-review focused on naming convention. There is a new review thread for that discussion.
- In toolset files the name of the
extraFlagsproperty that provides additional command-line options for each tool seemed misleading. Its value may contain not only flags, but any command-line options.extraCLIOptionsis a self-descriptive name and could be used as a better alternative. - The proposed schema for
destination.jsonmetadata is not flexible enough to support bundles with multiple triples, it should be extended to support this type of bundles. As each triple uniquely identifies a set of properties, the updated schema should allow specifying a dictionary from a triple string used as a key to an inner dictionary with triple-specific properties and their values. - Since the existing
swift package-collectioncommand usesremoveas a verb,swift destination deleteshould be renamed toswift destination removefor consistency.
Since "cross-compilation destination" is quite a mouthful, "Swift SDK" is proposed as an alternative name for the feature. With compilers for different languages "SDK" concept can mean a loosely defined collection of files used for multiple purposes. Proposed "Swift SDK" should be distinct from that, it denotes a bundle providing necessary infrastructure to compile a Swift package for a specific triple. CLI commands, options, and files within bundles should be renamed accordingly:
-
swift destinationcommand renamed toswift sdk - proposed
--destinationoption renamed to--swift-sdk -
--destinations-pathoption renamed to--swift-sdks-path -
~/.swiftpm/destinationspath renamed to~/.swiftpm/swift-sdks -
destination.jsonfile renamed toswift-sdk.json