Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Xcode 7] Add types to collections in GT headers #516

Merged
merged 14 commits into from
Oct 23, 2015
Merged

[Xcode 7] Add types to collections in GT headers #516

merged 14 commits into from
Oct 23, 2015

Conversation

JrGoodle
Copy link
Contributor

This adds support for generics with typed collections added in Xcode 7. The .travis.yml is updated to use the Xcode 7 beta images.

@phatblat
Copy link
Member

Awesome! As for Travis, the xcode7 image is only available for private repos. So this PR will need to wait to merge until that's available and we're ready to make this project require Xcode 7. I imagine both of these will happen on or shortly after September 9.

@phatblat phatblat self-assigned this Aug 28, 2015
@JrGoodle
Copy link
Contributor Author

That's totally fine to wait until the official Xcode 7 release before merging, I was kind of assuming that. The Travis CI folks actually made the xcode7 image available for OSS repos as well yesterday. I'm not sure why the build is failing. It was timing out during the Mac tests, but now when I added travis_wait it can't find that function. I'll remove that commit, and you can probably see the timeout failure once that build runs. Maybe you'll have some insight.

@phatblat
Copy link
Member

Oh, nice! Missed that we can now use Xcode 7.

The build failed due to a 10m timeout waiting for the tests to finish. Seems like something got stuck as this build ran for 28m before being terminated while other builds take around ~20m. Looks like the tests typically take 2.5m.

We just recently got Travis builds going again. #495 resolved the original timeout issues, but it's possible that something is different now with Xcode 7 and/or the updated versions of Quick/Nimble.

I'm not sure what's going on so I've emailed Travis support to see if they can help.

@JrGoodle
Copy link
Contributor Author

Thanks for emailing Travis about this. I'll keep checking for further updates to the Nimble/Quick projects in case those are related to the timeout.

FWIW, I ran the ObjectiveGit Mac tests locally in Xcode, and they passed. Figured I'd add that data point in case it helps narrow down the source of the issue.

@phatblat
Copy link
Member

Got a response from Travis:

Sorry about the timeouts, we've received a few reports about this and I think we've found a workaround for it, which we're planning to apply to our image in the next few days. In the meantime, you could try adding these three files to the repository, and run the instruments-auth.sh file before running the tests, which in our experience has fixed the issue for everyone who has seen it.

@JrGoodle
Copy link
Contributor Author

Awesome, thanks! Trying it out now.

@JrGoodle
Copy link
Contributor Author

https://twitter.com/grayj_/status/623082333898313728

So with the updated Travis image using the Xcode 7 GM and a newer version of xctool, the tests aren't timing out anymore. It looks like the new exception being raised might not be fixed until xctool is officially updated for Xcode 7: facebookarchive/xctool#528

@phatblat phatblat changed the title Add types to collections in GT headers [Xcode 7] Add types to collections in GT headers Sep 14, 2015
@phatblat
Copy link
Member

It sounds like there may be a fix for Xcode 7 in the upcoming xctool 0.2.6, but I had trouble verifying whether it will address our issues. I built xctool using Xcode 7 GM, so that may have been the problem, but it just stalled out when the ObjectiveGit build started. @JrGoodle could you try building xctool from HEAD and see if the upcoming fixes will address these issues?

We either need to wait for xctool to resolve these issues with Xcode 7 or switch to just using xcodebuild for the build.

@JrGoodle
Copy link
Contributor Author

sure thing. I'll give xctool from HEAD a go. if that doesn't work, I saw mention of xcodebuild + xcpretty elsewhere, so I can try that.

@pietbrauer
Copy link
Member

I would definitely give xcodebuild + xcpretty a chance. I've only had problems with xctool in the past.

@JrGoodle
Copy link
Contributor Author

After building xctool from HEAD, the tests are stalling out again. I started to look at moving to xcodebuild, but the cibuild script seems to be fairly dependent on xctool and I don't fully grok everything going on in it. I can continue to look into it, but it might be better for someone more familiar with this piece to migrate to xcodebuild and xcpretty in a separate PR, and I could just merge that change in here when it's in place upstream. thoughts?

@phatblat
Copy link
Member

I can tackle the cibuild script changes unless @pietbrauer gets to it first.

@pietbrauer
Copy link
Member

I could do it, you are more of a programmer than I am 😆

@phatblat
Copy link
Member

LOL

I could do it, you are more of a programmer than I am 😆

@JrGoodle
Copy link
Contributor Author

haha, sounds good. there's obviously no rush on this generics thing, so I'll just keep watch for the ci script changes for Xcode 7. seems like quite a few projects may be going the way of xcodebuild + xcpretty to get around this Xcode 7 issue. modularity ftw

Update Nimble to `master` branch and Quick to `swift-2.0` branch
Attempt to fix test timeouts with most recent commits on xctool's master branch
@JrGoodle
Copy link
Contributor Author

@phatblat After updating xctool again to the latest from the master branch, and updating Quick for an Xcode7/xctool fix, the Travis build made it farther than previously. It still failed, but I'm not exactly sure why. I see that the iOS framework build fails early on due to code signing, but the Travis build still continues. The tests seem to have run, but I don't see a clear indicator at the end of why the overall build failed. You might want to take a look and see if anything jumps out at you.

@JrGoodle
Copy link
Contributor Author

cat-sticks-the-landing-photo-web__opt

@phatblat
Copy link
Member

Woah, nice work! 🎉

Can we remove the custom xctool install from .travis.yml or is that still necessary?

@JrGoodle
Copy link
Contributor Author

It's still necessary at this point. There was a commit after the last release that fixed the timeout when the tests were run (I believe it was this one: facebookarchive/xctool@0f3ab7b). If you want to wait until the next official release before merging this so that custom install step can be removed that would be fine.

@phatblat
Copy link
Member

Yeah, I'm nervous about leaving --HEAD in there as we'll probably forget about it.

@JrGoodle
Copy link
Contributor Author

ok, understandable. hopefully they'll come out with a new release soon to get that fix out. I'll keep my eyes peeled for it.

@joshaber
Copy link
Member

Really great work!

@joshaber
Copy link
Member

#yolo

joshaber added a commit that referenced this pull request Oct 23, 2015
[Xcode 7] Add types to collections in GT headers
@joshaber joshaber merged commit 9219175 into libgit2:master Oct 23, 2015
@joshaber
Copy link
Member

Thanks again! Fantastic work.

@JrGoodle JrGoodle deleted the generics-headers branch October 25, 2015 02:59
@phatblat
Copy link
Member

💖
screen shot 2015-10-28 at 12 24 38 am

@JrGoodle
Copy link
Contributor Author

cool, thanks for posting that. it's not too often that warnings and errors are actually a nice thing to see. 😻

@pietbrauer pietbrauer mentioned this pull request Dec 31, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants