MakeAWishFoundation / SwiftyMocky

Framework for automatic mock generation. Adds a set of handy methods, simplifying testing. One of the best and most complete solutions, including generics support and much more.
MIT License
1.04k stars 107 forks source link

Prepare for swift 3.1 support #26

Closed amichnia closed 7 years ago

amichnia commented 7 years ago

Add Swift 3.1 support // we dropped trello in favour of github projects

Przemyslaw-Wosko commented 7 years ago

now we need to plan, how we want to keep support for 3.1 @amichnia any thoughts ?

amichnia commented 7 years ago

Similar story with Swift 4.0 and 4.0.2 - after updating to Xcode 9.1 it stopped building. Had to rebuild sourcery manually from sources. Not sure why building it with pods do not ensure valid version / same as project I don't know.

Possible solutions:

  1. Attach binaries to support branches
  2. Fill issue within Sourcery, asking for help (could do anyway)
  3. Investigate stencil + spm
krzysztofzablocki commented 7 years ago

Sourcery is distributed as an application, there is no code that gets compiled when you pod install since the tool is more preprocessor than a code dependency. Thats why we need to update Sourcery versions as Swift isn't stable yet...

amichnia commented 7 years ago

@krzysztofzablocki - thank you very much for the info! We are currently thinking of how to handle that issues. The biggest challenge is that we want to make SwiftyMocky as easy to install and setup as possible, so while building Sourcery from sources works as a charm, it could be bottle neck for some of our users.

There are different ideas now, I thought about adding subspecs with "legacy" Swift support (and already prebuilt Sourcery apps) - is that ok with you? Or do you plan to prepare some kind of support for other swift versions in Sourcery itself? We would really appreciate some hint there :)

krzysztofzablocki commented 7 years ago

for now Sourcery just has new releases for Swift versions, for swift templates we will be adding both 9.0 and 9.1 version of the bundled framework for now if we can make it work. Those problems will be gone once Swift ABI stability is done

amichnia commented 7 years ago

I'm closing this issue for now. Current solution is more like workaround, we used our wiki repo, to maintain prebuilt sourcery binaries (sourcery 0.9.0).

Example script (best would be adding it to post actions in cocoapods):

Usage

sh get_sourcery.sh 4.0.2

get_sourcery.sh

[[ $# > 0 ]] && VERSION="$1" || VERSION="4.0.2"
[[ $# > 1 ]] && OUTPUT="$2" || OUTPUT="./Pods/Sourcery/bin"

echo "CLONE SOURCERY FOR $VERSION INTO $OUTPUT"
rm -r -f "$OUTPUT"
git clone -b "swift/$VERSION" --single-branch --depth 1 https://github.com/MakeAWishFoundation/SwiftyMocky.wiki.git "$OUTPUT"

Closing for now, but we should go back to this topic in 2.0.