SE-0291 (2nd review): Package Collections

@yim_lee A few questions about the JSON format that I don't believe have come up yet:

  • According to the v1 format, the toolsVersion property for each package version object corresponds to "The tools (semantic) version specified in Package.swift". Does this account for version-specific manifest selection (e.g. Package@swift-4.2.swift)?

  • Relatedly, does the swift-package-collection command currently account for / plan to support version-specific tag selection (e.g. 1.2.0@swift-4.2)?

  • What do you think about representing Swift support as a cross-product / matrix of verifiedSwiftVersions and verifiedPlatforms? For example, a library may work on macOS and Linux, but rely on a change in swift-corelibs-foundation in Swift 5.3 for Linux (e.g. JSONEncoder.withoutEscapingSlashes?) Should there be a way to communicate compatibility exceptions somehow?

  • Could you speak more to the rationale behind the revision value in the JSON payload? Is the intention for that to be used for cache invalidation?

1 Like