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

Add Xcode 11.5 #6526

Merged
merged 13 commits into from
May 27, 2020
Merged

Add Xcode 11.5 #6526

merged 13 commits into from
May 27, 2020

Conversation

tgoyne
Copy link
Member

@tgoyne tgoyne commented May 21, 2020

This ended up being a bunch of stuff because either installing Xcode 11.5 or updating to macOS 10.15.4 made the first-launch initialization of the simulators' dyld cache a lot slower, which lead to jobs timing out. To deal with this, I made a pile of adjustments:

  1. A bunch of jobs were building Realm.framework multiple times. In some cases because it wasn't reusing the one built for tests when building the examples, but in the cocoapods case it also was pointlessly testing the obj-c pod and then the swift pod even though the swift pod test covered everything the obj-c test does.
  2. Simulators were being reset a lot more than they needed to be. Resetting them during the first init would start over the dyld cache population, and even when that didn't happen it added a minute or two onto each job. Now simulators are reset at most once per job, and a bunch of jobs which don't actually need a simulator don't touch them at all. The Apple TV jobs now preboot the correct simulator rather than an iPhone simulator that would go unused.
  3. Node 8 is out of LTS and seems to have finally stopped working with Xcode 11.5 so I upgraded to node 10.
  4. reset-simulators.rb now waits for the dyld cache population to finish. This appears to be faster overall than trying to do it in parallel with the build, and avoids some spurious test failures when it's still running at the same time as tests.
  5. Some assorted minor speedups such as not generating debug symbols for things which we just build and then delete immediately without running.

I think all of the remaining failures are pre-existing problems now, such as that one of the Combine tests sometimes deadlocks due to a bug in that test. I'll deal with those separately.

@tgoyne tgoyne self-assigned this May 21, 2020
@tgoyne tgoyne force-pushed the tg/xcode-11.5 branch 6 times, most recently from 44341fb to e57e28a Compare May 23, 2020 06:04
@tgoyne tgoyne force-pushed the tg/xcode-11.5 branch 2 times, most recently from 2b80e80 to e3b1068 Compare May 27, 2020 01:31
tgoyne added 5 commits May 27, 2020 09:53
Tests which do things on dispatch queues need to wait for the queue to be
flushed or sometimes the Realms allocated on those queues will be deallocated
after the test tearDown has started.
This speeds up compilation a little and cuts down on i/o a lot.
Since the swift pod depends on the obj-c pod, it would be very difficult for
there to ever be a problem which the obj-c test would catch which the swift one
will not.
@tgoyne tgoyne requested a review from jsflax May 27, 2020 17:03
Copy link
Contributor

@jsflax jsflax left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. There are files here I haven't looked at before, so I need to take a deeper look at those, but looks generally sound.

@tgoyne tgoyne merged commit bbed92e into master May 27, 2020
@tgoyne tgoyne deleted the tg/xcode-11.5 branch May 27, 2020 23:57
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 15, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants