@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
andverifiedPlatforms
? 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?