swiftlang / swift-package-manager

The Package Manager for the Swift Programming Language
Apache License 2.0
9.71k stars 1.34k forks source link

[SR-12706] misleading error message: root depends on vapor 3.0.0..<4.0.0 and root depends on vapor 4.4.0..<5.0.0 #4553

Open weissi opened 4 years ago

weissi commented 4 years ago
Previous ID SR-12706
Radar rdar://problem/62639675
Original Reporter @weissi
Type Bug

Attachment: Download

Environment $ xcodebuild -version && swift -version Xcode 11.4.1 Build version 11E503a Apple Swift version 5.2.2 (swiftlang-1103.0.32.6 clang-1103.0.32.51) Target: x86_64-apple-darwin19.4.0
Additional Detail from JIRA | | | |------------------|-----------------| |Votes | 0 | |Component/s | Package Manager | |Labels | Bug | |Assignee | None | |Priority | Medium | md5: db6c09577764ae9380393a22d845cc97

Issue Description:

I'm trying to reproduce a problem where I'm trying to reverse a package.swift from the attached Package.resolved. After roughly this bash:

cat Package.resolved | grep -e URL -e version | sed -e 's/"repositoryURL": /.package(url: /' -e 's/"version": /from: /' -e 's/"$/"),/g'

I got the following Package.swift snippet (some edits necessary):

        .package(url: "https://github.com/vapor/apns.git",
          from: "1.0.0-beta.3"),
        .package(url: "https://github.com/m-barthelemy/APNSwift.git",
          from: "1.7.1"),
        .package(url: "https://github.com/swift-server/async-http-client.git",
          from: "1.1.0"),
        .package(url: "https://github.com/vapor/async-kit.git",
          from: "1.0.1"),
        .package(url: "https://github.com/IBM-Swift/BlueCryptor.git",
          from: "1.0.32"),
        .package(url: "https://github.com/IBM-Swift/BlueECC.git",
          from: "1.2.5"),
        .package(url: "https://github.com/IBM-Swift/BlueSocket.git",
          from: "1.0.52"),
        .package(url: "https://github.com/IBM-Swift/BlueSSLService.git",
          from: "1.0.52"),
        .package(url: "https://github.com/GottaGetSwifty/CodableWrappers.git",
          from: "1.2.0"),
        .package(url: "https://github.com/vapor/console-kit.git",
          from: "4.1.0"),
        .package(url: "https://github.com/omochi/FineJSON.git",
          from: "1.14.0"),
        .package(url: "https://github.com/vapor/fluent.git",
          from: "4.0.0-rc.2"),
        .package(url: "https://github.com/vapor/fluent-kit.git",
          from: "1.0.0-rc.1.19"),
        .package(url: "https://github.com/vapor/fluent-postgres-driver.git",
          from: "2.0.0-rc.1.1"),
        .package(url: "https://github.com/vapor/fluent-sqlite-driver.git",
          from: "4.0.0-rc.1.1"),
        .package(url: "https://github.com/krisk/fuse-swift.git",
          .branch("master")),
        .package(url: "https://github.com/vapor-community/Imperial.git",
          .branch("master")),
        .package(url: "https://github.com/vapor/jwt.git",
          from: "4.0.0-rc.2"),
        .package(url: "https://github.com/vapor/jwt-kit.git",
          from: "4.0.0-rc.1.3"),
        .package(url: "https://github.com/IBM-Swift/LoggerAPI.git",
          from: "1.9.0"),
        .package(url: "https://github.com/Quick/Nimble.git",
          from: "8.0.2"),
        .package(url: "https://github.com/mattpolzin/OpenAPIKit.git",
          from: "0.29.0"),
        .package(url: "https://github.com/mattpolzin/OpenAPIReflection.git",
          from: "0.1.0"),
        .package(url: "https://github.com/IBM-Swift/OpenSSL.git",
          from: "2.2.2"),
        .package(url: "https://github.com/vapor/postgres-kit.git",
          from: "2.0.0-rc.1.1"),
        .package(url: "https://github.com/vapor/postgres-nio.git",
          from: "1.0.0-rc.1.2"),
        .package(url: "https://github.com/vapor/queues.git",
          from: "1.0.0"),
        .package(url: "https://github.com/Quick/Quick.git",
          from: "2.1.0"),
        .package(url: "https://github.com/omochi/RichJSONParser.git",
          from: "3.0.0"),
        .package(url: "https://github.com/vapor/routing-kit.git",
          from: "4.0.0"),
        .package(url: "https://github.com/mattpolzin/Sampleable.git",
          from: "2.1.0"),
        .package(url: "https://github.com/vapor/sql-kit.git",
          from: "3.0.0"),
        .package(url: "https://github.com/vapor/sqlite-kit.git",
          from: "4.0.0-rc.1"),
        .package(url: "https://github.com/vapor/sqlite-nio.git",
          from: "1.0.0-rc.1"),
        .package(url: "https://github.com/swift-server/swift-backtrace.git",
          from: "1.1.1"),
        .package(url: "https://github.com/apple/swift-crypto.git",
          from: "1.0.0"),
        .package(url: "https://github.com/pointfreeco/swift-html.git",
          from: "0.3.1"),
        .package(url: "https://github.com/apple/swift-log.git",
          from: "1.2.0"),
        .package(url: "https://github.com/apple/swift-metrics.git",
          from: "2.0.0"),
        .package(url: "https://github.com/apple/swift-nio.git",
          from: "2.16.0"),
        .package(url: "https://github.com/apple/swift-nio-extras.git",
          from: "1.4.0"),
        .package(url: "https://github.com/apple/swift-nio-http2.git",
          from: "1.11.0"),
        .package(url: "https://github.com/apple/swift-nio-ssl",
          from: "2.7.1"),
        .package(url: "https://github.com/IBM-Swift/Swift-SMTP",
          from: "5.1.2"),
        .package(url: "https://github.com/pointfreeco/swift-snapshot-testing.git",
          from: "1.7.2"),
        .package(url: "https://github.com/apple/swift-statsd-client.git",
          .branch("master")),
        .package(url: "https://github.com/vapor/vapor.git",
          from: "4.4.0"),
        .package(url: "https://github.com/m-barthelemy/vapor-queues-fluent-driver.git",
          from: "0.3.4"),
        .package(url: "https://github.com/mattpolzin/VaporOpenAPI.git",
          from: "0.0.6"),
        .package(url: "https://github.com/mattpolzin/VaporTypedRoutes.git",
          from: "0.4.0"),
        .package(url: "https://github.com/vapor/websocket-kit.git",
          from: "2.0.0"),
        .package(url: "https://github.com/jpsim/Yams.git",
          from: "2.0.0"),

pasting that all in a Package.swift (also attached) leads to

$ swift build
Updating https://github.com/krisk/fuse-swift.git
Updating https://github.com/vapor-community/Imperial.git
Updating https://github.com/apple/swift-statsd-client.git
error: because root depends on vapor 3.0.0..<4.0.0 and root depends on vapor 4.4.0..<5.0.0, version solving failed.

but the root depends on vapor/vapor only with from: "4.4.0" so I don't think that message can be right.

weissi commented 4 years ago

CC @aciidb0mb3r/kiliankoe (JIRA User)

weissi commented 4 years ago

@swift-ci create

abertelrud commented 4 years ago

It's suspicious that the message appears right after updating what seems to be the only branch-based dependency of the lot...