TestingWithFrank / Frank

Automated acceptance tests for native iOS apps
http://testingwithfrank.github.io/
Apache License 2.0
215 stars 57 forks source link

loosen xcodeproj dependency #26

Open xinsight opened 10 years ago

xinsight commented 10 years ago

By removing the last decimal number in the version, one can now use the current xcodeproj (e.g. version 0.17)

Is there a specific reason to clamp to xcodeproj 0.14?

xinsight commented 10 years ago

I was using 1.2.2 which pulled in RSpec v3 - and they've deprecated 'should' - they suggest using expect.

MichaelBuckley commented 10 years ago

We've had problems with xcodeproj in the past introducing backwards-incompatible changes to their API. I don't blame them for this, since CocoaPods is their raison d'être, but it did once cause Frank to break for end users before any of the developers caught it. Obviously, we're not keeping up to date on all the updates of our dependencies, so the best course of action seemed to be to lock it at a specific version, and to test to test newer versions as needed before the changes get to end-users.

xinsight commented 10 years ago

Ok, as long as it was intentional. Requiring xcodeproj 0.14 effectively limits frank-cucumber users to cocoapods 0.29.

MichaelBuckley commented 10 years ago

So forgive my ignorance of the gem system, but can't CocoaPods install a newer version of xcodeproj, and Frank continue to use the older version?

If this is holding back CocoaPods users, I'll test Frank with the latest version of xcodeproj, and update the version if needed. I'll pull in the should -> expect change at that time. Thanks!

adealmeida commented 9 years ago

Hi Michael, did you get a chance to test Frank against the latest version of xcodeproj and to change the should -> expect change?

I think that both CocoaPods and Frank have to use the same version of xcodeproj. Otherwise, do you know of a way of specifying different gem dependencies in the Gemfile?

We've been using xcodeproj 0.17.0 with a forked version of frank-cucumber (version 1.2.3) and it has been working well. But we would like to start using the latest version of frank-cucumber. Trying to update to frank-cucumber version 1.2.5, I noticed that it still depends on xcodeproj 0.14.1.

Is it possible that you can change this to support the same xcodeproj as the latest Cocoapods?

MichaelBuckley commented 9 years ago

@adealmeida I'm terribly sorry. I haven't been keeping up with Frank development lately, as I've had my hands full with other projects.

Right now, Frank uses xcodeproj 0.14.0, and the current version is 0.21.2. The changelog lists versions 0.15.0, 0.16.0, 0.20.0, and 0.21.0 as containing breaking changes. This means it's not simply a matter of changing the version number Frank's gemspec. Code changes to Frank would also probably be required.

I don't personally have the time to test and make these changes. Other developers working on Frank might, but the most surefire way to ensure that Frank gets updated to the latest version of Xcodeproj would be to fork Frank on Github, update it to use the latest Xcodeproj, test it, and send a pull request.

I'm sorry I can't give you better news. Thank you for understanding.

adealmeida commented 9 years ago

Hi @MichaelBuckley, thanks for your response. At the moment, I also don't have time to make a change and validate it. Perhaps when I get a chance later I can try forking Frank and testing an update. Thanks for your help.