IFTTT/JazzHands

Semantic versioning?

Closed this issue · 3 comments

jai commented

So I didn't know where to post this so figured I'd do it here - 0.0.4 breaks the 0.0.3 method of init'ing the scroll view (you now need to do it in viewDidLoad as opposed to the view controller's init method). I based this on the Example project. Thing is, I didn't even notice my tour break until we were running pre-release tests and was kind of surprised. Turns out the '>' operator in cocoapods uses semantic versioning, which means that '>' applies to 0.0.3 and any version up to but not including 0.1, so my JazzHands got updated to 0.0.4 without me realizing it, which broke my implementation.

Should a release going from 0.0.3 to 0.0.4 really break previous implementations, or was I setting it up wrong all along?

Awesome library and thanks for the fantastic work!

Thanks! No, I think you're correct -- according to strict semver, a point update should not be backwards-incompatible and this update should probably have been 0.1.0 instead of 0.0.4.

Sorry about that! Can you pin JazzHands to 0.0.3 in your podfile?

jai commented

Hey no worries, I just modified moved the init into viewDidLoad. To be honest, I kind of suspected that was what was happening - I didn't really think about it the first time I implemented JazzHands but I usually run into issues like this when doing view-based stuff in the init methods rather than in viewDidLoad. Serves me right for not understanding the '~>' in cocoapods in the first place!

Do you want me to close the issue or leave it for you to re-tag and reference this issue (if you plan on re-tagging)?

I think we'll leave this one at 0.0.4 for now, especially because Cocoapods in my experience is not so keen on deleting released pod versions.

We always pin our pods to exact versions (pod 'JazzHands', '0.0.3') and never use the ~> notation. It's nice to be able to run pod install and pod update with impunity and not worry about versions changing out from under us. :)