Carthage / Carthage/Carthage

New resolver output does not match old resolver · in this situation, all dependencies lack specifiers in the root-level Cartfile

Open
#2,421 8 comments 0 reactions 0 assignees View on GitHub
bug help wanted
Dominant language
Swift
Stars
15.2k
Forks
1.5k
PR merge metrics
No merged PRs in 30d

Description

* carthage install method: homebrew
* `which carthage`: /usr/local/bin/carthage
* `carthage version`: 0.29.0
* `xcodebuild -version`: Xcode 9.3 Build version 9E145

**Cartfile**
```
github "ReactiveX/RxSwift"
github "RxSwiftCommunity/RxOptional"
github "RxSwiftCommunity/RxSwiftExt"

github "Quick/Nimble"
github "Quick/Quick"
github "uber/ios-snapshot-test-case"
```

**Carthage Output**
```
carthage update --no-build --new-resolver
```
```
*** Fetching RxOptional
*** Fetching RxSwiftExt
*** Fetching ios-snapshot-test-case
*** Fetching Nimble
*** Fetching Quick
*** Fetching RxSwift
*** Checking out RxOptional at "3.4.1"
*** Checking out RxSwiftExt at "3.2.0"
*** Checking out ios-snapshot-test-case at "3.0.0"
*** Checking out Nimble at "v7.1.0"
*** Checking out Quick at "v1.2.0"
*** Checking out RxSwift at "4.0.0"
```

**Carthage Output**
```
carthage update --no-build
```
```
*** Fetching RxSwift
*** Fetching Quick
*** Fetching Nimble
*** Fetching ios-snapshot-test-case
*** Fetching RxSwiftExt
*** Fetching RxOptional
*** Checking out RxOptional at "3.4.1"
*** Checking out RxSwiftExt at "3.2.0"
*** Checking out ios-snapshot-test-case at "3.0.0"
*** Checking out Nimble at "v7.1.0"
*** Checking out Quick at "v1.2.0"
*** Checking out RxSwift at "4.1.2"
```
The new resolver checks out RxSwift 4.0.0, whereas the old resolver checks out 4.1.2. This was the smallest Cartfile I could find that would reproduce this issue. Although I used --no-build here, I see the same issue without it.

Contributor guide

Open the contributing guide

Research direction

Start with the root-level Cartfile and reproduce the dependency resolution using both `carthage update --no-build --new-resolver` and `carthage update --no-build`. Compare the selected RxSwift versions, 4.0.0 and 4.1.2, while checking the other listed dependencies; done means the new resolver produces the intended result consistently with the old resolver.

Written by the indexing model from the issue text.

Assessment

Tech stack
swift
Domain
build-system, devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.