5

I'm maintaining two Swift Package Manager projects on GitHub. One of them, DiceKit, depends on the other, ProtocolKit. They are also both using a swift-tools-version of 4.0.

DiceKit has continuous integration set up with Travis CI, shown here. It is tested on both macOS and Linux, on Swift 4.0, 4.0.2, 4.0.3, 4.1, 4.1.1, 4.1.2, 4.1.3, and 4.2. However, the tests on every version except 4.2 are failing, while the tests on 4.2 succeed.

Here's the error from the macOS Swift 4.0 log:

$ swift test
error: dependency graph is unresolvable; found these conflicting  requirements:
Dependencies: 
    https://github.com/Samasaur1/ProtocolKit.git @ 1.0.0..<2.0.0
error: product dependency 'ProtocolKit' not found
Fetching https://github.com/Samasaur1/ProtocolKit.git

However, on the Swift 4.2 log, fetching the dependencies is successful:

$ swift test
Fetching https://github.com/Samasaur1/ProtocolKit.git
Completed resolution in 1.44s
Cloning https://github.com/Samasaur1/ProtocolKit.git
Resolving https://github.com/Samasaur1/ProtocolKit.git at 1.0.2
Compile Swift Module 'ProtocolKit' (1 sources)
Compile Swift Module 'DiceKit' (3 sources)
Compile Swift Module 'DiceKitTests' (4 sources)

For reference, here is the Package.swift file for DiceKit:

// swift-tools-version:4.0
// Managed by ice

import PackageDescription

let package = Package(
    name: "DiceKit",
    products: [
        .library(name: "DiceKit", targets: ["DiceKit"]),
    ],
    dependencies: [
        .package(url: "https://github.com/Samasaur1/ProtocolKit.git", from: "1.0.0"),
    ],
    targets: [
        .target(name: "DiceKit", dependencies: ["ProtocolKit"]),
        .testTarget(name: "DiceKitTests", dependencies: ["DiceKit"]),
    ]
)

And here is the one for ProtocolKit:

// swift-tools-version:4.0
// Managed by ice

import PackageDescription

let package = Package(
    name: "ProtocolKit",
    products: [
        .library(name: "ProtocolKit", targets: ["ProtocolKit"]),
    ],
    targets: [
        .target(name: "ProtocolKit", dependencies: []),
        .testTarget(name: "ProtocolKitTests", dependencies: ["ProtocolKit"]),
    ]
)

I'm at my wit's end about this, and I'd really appreciate any help you all can give. Thanks in advance!

Sam
  • 2,350
  • 1
  • 11
  • 22

0 Answers0