Skip to content

Commit e83af8b

Browse files
committed
Merge pull request #140 from norio-nomura/fix-SR-787
Stop matching pre-release suffixed next version
2 parents 62212c6 + 723b0dc commit e83af8b

File tree

3 files changed

+45
-2
lines changed

3 files changed

+45
-2
lines changed

Sources/PackageDescription/Package.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@ public final class Package {
3131
return Dependency(url, versions)
3232
}
3333
public class func Package(url url: String, majorVersion: Int) -> Dependency {
34-
return Dependency(url, Version(majorVersion, 0, 0)..<Version(majorVersion + 1, 0, 0))
34+
return Dependency(url, Version(majorVersion, 0, 0)..<Version(majorVersion, .max, .max))
3535
}
3636
public class func Package(url url: String, majorVersion: Int, minor: Int) -> Dependency {
37-
return Dependency(url, Version(majorVersion, minor, 0)..<Version(majorVersion, minor + 1, 0))
37+
return Dependency(url, Version(majorVersion, minor, 0)..<Version(majorVersion, minor, .max))
3838
}
3939
public class func Package(url url: String, _ version: Version) -> Dependency {
4040
return Dependency(url, version...version)

Tests/LinuxMain.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ XCTMain([
2424
MiscellaneousTestCase(),
2525
ManifestParsertest.PackageTests(),
2626
ModuleTests(),
27+
PackageDescriptiontest.PackageTests(),
2728
PackageTypetest.PackageTests(),
2829
PathTests(),
2930
RelativePathTests(),
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/*
2+
This source file is part of the Swift.org open source project
3+
4+
Copyright 2015 - 2016 Apple Inc. and the Swift project authors
5+
Licensed under Apache License v2.0 with Runtime Library Exception
6+
7+
See http://swift.org/LICENSE.txt for license information
8+
See http://swift.org/CONTRIBUTORS.txt for Swift project authors
9+
*/
10+
11+
@testable import PackageDescription
12+
import XCTest
13+
14+
class PackageTests: XCTestCase {
15+
16+
func testMatchDependencyWithPreReleaseVersion() {
17+
18+
// Tests matching dependency with pre-release suffixed version
19+
// Refs: https://bugs.swift.org/browse/SR-787
20+
21+
let majorVersionSpecified: Package.Dependency = .Package(url: "", majorVersion: 1)
22+
XCTAssertFalse(majorVersionSpecified.versionRange ~= "2.0.0-alpha")
23+
XCTAssertFalse(majorVersionSpecified.versionRange ~= "2.0.0")
24+
25+
let majorAndMinorVersionSpecified: Package.Dependency = .Package(url: "", majorVersion: 0, minor: 10)
26+
XCTAssertFalse(majorAndMinorVersionSpecified.versionRange ~= "0.11.0-test")
27+
XCTAssertFalse(majorAndMinorVersionSpecified.versionRange ~= "0.11.0")
28+
}
29+
30+
}
31+
32+
33+
#if os(Linux)
34+
extension PackageTests: XCTestCaseProvider {
35+
var allTests : [(String, () throws -> Void)] {
36+
return [
37+
("testMatchDependencyWithPreReleaseVersion", testMatchDependencyWithPreReleaseVersion),
38+
39+
]
40+
}
41+
}
42+
#endif

0 commit comments

Comments
 (0)