Skip to content

Commit ef8ffdf

Browse files
committed
Raise error when dependency is declared using invalid package identifier
1 parent 1a65398 commit ef8ffdf

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

Sources/PackageDescription/PackageDependency.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
See http://swift.org/CONTRIBUTORS.txt for Swift project authors
99
*/
1010

11+
import Foundation
12+
1113
// MARK: - file system
1214

1315
extension Package {
@@ -546,6 +548,11 @@ extension Package.Dependency {
546548
identity: String,
547549
requirement: Package.Dependency.RegistryRequirement
548550
) -> Package.Dependency {
551+
let pattern = #"\A[a-zA-Z\d](?:[a-zA-Z\d]|-(?=[a-zA-Z\d])){0,38}\.[a-zA-Z0-9](?:[a-zA-Z0-9]|[-_](?=[a-zA-Z0-9])){0,99}\z"#
552+
if identity.range(of: pattern, options: .regularExpression) == nil {
553+
errors.append("Invalid package identifier: \(identity)")
554+
}
555+
549556
return .init(identity: identity, requirement: requirement)
550557
}
551558
}

0 commit comments

Comments
 (0)