Skip to content
This repository has been archived by the owner on Feb 28, 2020. It is now read-only.

Error "The dependency graph could not be satisfied" since release of Kitura 1.7 #157

Closed
tunniclm opened this issue Mar 29, 2017 · 11 comments
Labels

Comments

@tunniclm
Copy link
Contributor

Ever since Kitura 1.7 was released builds (tested on Swift 3.0.2) are failing with the following error:

error: The dependency graph could not be satisfied (https://github.com/IBM-Swift/Kitura-net.git)
@tunniclm tunniclm added the bug label Mar 29, 2017
@tunniclm
Copy link
Contributor Author

There are multiple problems here:

  • SwiftMetrics 0.0.x had a loose dependency on Kitura-WebSocket 0.x (instead of 0.7.x) which was causing Kitura-net 1.7.0 to be pulled in to the dependency tree where other dependencies require Kitura-net 1.6.0 causing a conflict
  • Generated projects that need Kitura-CouchDB pull in 1.x which currently depends on Kitura-net 1.6.x whereas the project also depends on Kitura 1.x which now resolves to 1.7.0 which, in turn, requires Kitura-net 1.7.x causing a conflict

@tunniclm
Copy link
Contributor Author

SwiftMetrics recently released 1.0.0, moving it out of semver "development" versioning. This update does not have breaking changes compared to the prior version (0.0.23). Today SwiftMetrics 1.0.1 was released to tighten up its dependency on Kitura-WebSocket and therefore resolve the first part of the dependency problem.

@tunniclm
Copy link
Contributor Author

I don't see an alternative to tightening our dependency on Kitura to 1.6.x for now to fix the second part of the dependency problem.

@tunniclm
Copy link
Contributor Author

Prospective changes are undergoing Travis testing on PR #156

@tunniclm
Copy link
Contributor Author

Changes failed because of another issue:

CloudConfiguration 1.x depends on Swift-cfenv 3.x depends on LoggerAPI 1.x resolves to LoggerAPI 1.7.0
Kitura 1.6.x depends on Kitura-net 1.6.x depends on LoggerAPI 1.6.x conflicts

@tunniclm
Copy link
Contributor Author

Tested moving the Kitura dependency up to the top of Package.swift since in Swift 3.0.2 this would cause LoggerAPI to resolve to 1.6.x before CloudConfiguration dependency is processed. (NOTE: Swift 3.1 moves to phased dependency resolution where this ordering should cease to matter).

This did resolve the LoggerAPI dependency above but now the following issue occurs:

Kitura 1.6.x (1.6.3) depends on Kitura-net 1.6.x (1.6.2)
appid-serversdk-swift 1.x (1.0.0) depends on Kitura-Request 0.x (0.8.0) depends on Kitura-net 1.7.x conflicts

@tunniclm
Copy link
Contributor Author

Resolved the final issue by injecting a dependency on Kitura-Request 0.7.x before appid-serversdk-swift and now all the tests pass.

@rfdickerson
Copy link

Just to be clear, we are now migrated fully to:

  • Kitura 1.7
  • Swift 3.1

Leaving behind Swift 3.0.2, right?

@ianpartridge
Copy link
Member

Good news that injecting the dependency works around the problem, but it's not a full fix. We'll need to do a lessons learned on this one.

@tunniclm
Copy link
Contributor Author

tunniclm commented Mar 29, 2017

@rfdickerson We aren't on Kitura 1.7 or Swift 3.1 yet for a number of reasons. We need all our dependencies to be compatible with that environment first. Currently SwiftMetrics is not compatible with Swift 3.1; Kitura-CouchDB and Kitura-Redis do not have a 1.7 version.

Some of these may be resolved very soon, but we need to be stable on 3.0.2 and 1.6 while the transition occurs.

@tunniclm
Copy link
Contributor Author

Version 2.0.1 has been tagged and published to npm and should address the dependency graph problems. Please open a new issue if you find any more problems with dependency graph errors.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

3 participants