Skip to content

Commit 19dffcc

Browse files
committed
[Utility] Export Version from Utility.
- Conceptually, this is one of our core types; it should come from a core library not from PackageDescription. - Also, export Version from PackageModel since it is also conceptually part of the model.
1 parent 6412799 commit 19dffcc

21 files changed

+40
-32
lines changed

Sources/Commands/SwiftBuildTool.swift

-2
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,7 @@ import PackageModel
1616
import Utility
1717

1818
import enum Build.Configuration
19-
import enum Utility.ColorWrap
2019
import protocol Build.Toolchain
21-
import struct PackageDescription.Version
2220

2321
import func POSIX.chdir
2422

Sources/Commands/SwiftPackageTool.swift

-2
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,7 @@ import Utility
1717
import Xcodeproj
1818

1919
import enum Build.Configuration
20-
import enum Utility.ColorWrap
2120
import protocol Build.Toolchain
22-
import struct PackageDescription.Version
2321

2422
import func POSIX.chdir
2523

Sources/Commands/show-dependencies.swift

-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
import Basic
1212
import PackageModel
13-
import struct PackageDescription.Version
1413

1514
func dumpDependenciesOf(rootPackage: Package, mode: ShowDependenciesMode) {
1615
let dumper: DependenciesDumper

Sources/Get/Error.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
See http://swift.org/CONTRIBUTORS.txt for Swift project authors
99
*/
1010

11-
import struct PackageDescription.Version
11+
import Utility
1212

1313
enum Error: Swift.Error {
1414

Sources/Get/Fetchable.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
See http://swift.org/CONTRIBUTORS.txt for Swift project authors
99
*/
1010

11-
import struct PackageDescription.Version
11+
import Utility
1212

1313
protocol Fetchable {
1414
var currentVersion: Version { get }

Sources/Get/Fetcher.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
See http://swift.org/CONTRIBUTORS.txt for Swift project authors
99
*/
1010

11-
import struct PackageDescription.Version
11+
import Utility
1212

1313
/**
1414
Testable protocol to recursively fetch versioned resources.

Sources/Get/Git.swift

+7-5
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,19 @@
88
See http://swift.org/CONTRIBUTORS.txt for Swift project authors
99
*/
1010

11+
import class Foundation.ProcessInfo
12+
1113
import Basic
12-
import struct PackageDescription.Version
14+
import Utility
15+
1316
import func POSIX.realpath
14-
import func POSIX.getenv
1517
import enum POSIX.Error
16-
import class Foundation.ProcessInfo
17-
import Utility
1818

1919
extension Git {
2020
class func clone(_ url: String, to dstdir: AbsolutePath) throws -> Repo {
21-
// canonicalize URL
21+
// Canonicalize URL.
22+
//
23+
// FIXME: This is redundant with the same code in the manifest loader.
2224
var url = url
2325
if URL.scheme(url) == nil {
2426
url = try realpath(url)

Sources/Get/Manifest+Fetchable.swift

+1-2
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@
99
*/
1010

1111
import PackageModel
12-
13-
import struct PackageDescription.Version
12+
import Utility
1413

1514
extension Manifest: Fetchable {
1615
var children: [(String, Range<Version>)] {

Sources/Get/PackagesDirectory.swift

-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import PackageLoading
1313
import PackageModel
1414
import Utility
1515

16-
import struct PackageDescription.Version
1716
import func POSIX.rename
1817

1918
/// A container for fetched packages.

Sources/Get/Range.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
See http://swift.org/CONTRIBUTORS.txt for Swift project authors
99
*/
1010

11-
import PackageDescription
11+
import struct Utility.Version
1212

1313
// FIXME: workaround for inability to constrain the extension to `Bound == Version`.
1414
protocol _VersionProtocol : Comparable {}

Sources/Get/RawClone.swift

-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ import Basic
1212
import PackageModel
1313
import Utility
1414

15-
import struct PackageDescription.Version
16-
1715
/// A clone of a repository which is not yet fully loaded.
1816
///
1917
/// Initially we clone into a non-final form because we may need to adjust the

Sources/Get/Version.swift

+1-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@
88
See http://swift.org/CONTRIBUTORS.txt for Swift project authors
99
*/
1010

11-
import struct PackageDescription.Version
12-
11+
import struct Utility.Version
1312

1413
extension Version {
1514
static var max: Version {

Sources/PackageGraph/DependencyResolver.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
See http://swift.org/CONTRIBUTORS.txt for Swift project authors
99
*/
1010

11-
import struct PackageDescription.Version
11+
import struct Utility.Version
1212

1313
public enum DependencyResolverError: Error {
1414
/// The resolver was unable to find a solution to the input constraints.

Sources/PackageModel/Package.swift

+3-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@
1010

1111
import Basic
1212
import Utility
13-
import struct PackageDescription.Version
13+
14+
// Re-export Version from PackageModel, since it is a key part of the model.
15+
@_exported import struct Utility.Version
1416

1517
/// The basic package representation.
1618
///

Sources/Utility/Git.swift

-2
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@ import func POSIX.getenv
1414
import libc
1515
import class Foundation.ProcessInfo
1616

17-
import struct PackageDescription.Version
18-
1917
extension Version {
2018
static func vprefix(_ string: String) -> Version? {
2119
if string.characters.first == "v" {

Sources/Utility/Version.swift

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
/*
2+
This source file is part of the Swift.org open source project
3+
4+
Copyright 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+
// Explicitly re-export Version from Utility.
12+
//
13+
// FIXME: Conceptually, we shouldn't explicitly depend on any of the types in
14+
// PackageDescription, since we want the API to be fully decoupled from the
15+
// exact SwiftPM version. That is important if we ever need to load manifests
16+
// from other versions of the package manager within a single build.
17+
18+
@_exported import struct PackageDescription.Version

Tests/GetTests/GetTests.swift

-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import Utility
1717
import struct PackageModel.Manifest
1818
import class PackageModel.Package
1919

20-
@testable import struct PackageDescription.Version
2120
@testable import Get
2221

2322
class GetTests: XCTestCase {

Tests/GetTests/GitTests.swift

-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import Utility
1616
import TestSupport
1717

1818
import class PackageDescription.Package
19-
import struct PackageDescription.Version
2019
import struct PackageModel.Manifest
2120

2221
@testable import Get

Tests/GetTests/VersionGraphTests.swift

+4-2
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@
88
See http://swift.org/CONTRIBUTORS.txt for Swift project authors
99
*/
1010

11-
@testable import struct PackageDescription.Version
12-
@testable import Get
1311
import XCTest
1412

13+
import Utility
14+
15+
@testable import Get
16+
1517
class VersionGraphTests: XCTestCase {
1618

1719
func testNoGraph() {

Tests/PackageGraphTests/DependencyResolverTests.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import XCTest
1212

1313
import PackageGraph
1414

15-
import struct PackageDescription.Version
15+
import struct Utility.Version
1616

1717
import TestSupport
1818

Tests/UtilityTests/GitTests.swift

-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ import XCTest
1212

1313
import Basic
1414

15-
import struct PackageDescription.Version
16-
1715
@testable import Utility
1816

1917
import TestSupport

0 commit comments

Comments
 (0)