SE-0292 (2nd review): Package Registry Service

Package identity

Hyphens may not occur at the beginning or end, nor consecutively within a scope.

Are there some older accounts without these conditions?

For example, https://github.com/lorem--ipsum has consecutive hyphens.

A valid package name matches the following regular expression pattern:

\A\p{XID_Start}\p{XID_Continue}{0,127}\z

Can we require C99 extended identifiers, if restrictions are added to package and target names?


New PackageDescription API

Package.Dependency.VersionBasedRequirement is a new type that provides the same interface as Package.Dependency.Requirement for version-based requirements, but excluding branch-based and commit-based requirements.

I'd prefer a Range<Version> parameter. The range arguments are succinct.

dependencies: [
  .package("apple.NIO", "2.0.0"..<"3.0.0"), // upToNextMajor(from:)
  .package("apple.NIO", "2.0.0"..<"2.1.0"), // upToNextMinor(from:)
  .package("apple.NIO", "2.0.0"..<"2.0.1"), // exact()
]

Registry configuration subcommands

This proposal adds a new swift package-registry subcommand for managing the registry used for all packages and/or packages in a particular scope.

This could be implemented as a symlink, if apple/swift-package-manager#3276 is merged.

But would a swift package config set-registry alternative be possible?

1 Like