[webkit-changes] [WebKit/WebKit] 3a0f6f: [Build] iOS simulator build intermittently perform...

Elliott Williams noreply at github.com
Thu May 16 16:28:33 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3a0f6f625177592a3b5f5458ab39209a923ff70f
      https://github.com/WebKit/WebKit/commit/3a0f6f625177592a3b5f5458ab39209a923ff70f
  Author: Elliott Williams <emw at apple.com>
  Date:   2024-05-16 (Thu, 16 May 2024)

  Changed paths:
    M Tools/Scripts/webkitdirs.pm

  Log Message:
  -----------
  [Build] iOS simulator build intermittently performs a clean build (when it should be incremental)
rdar://127636159
https://bugs.webkit.org/show_bug.cgi?id=274184

Reviewed by Alexey Proskuryakov.

Incremental builds break when the targeted simulator changes. Xcode sets
build settings like TARGET_DEVICE_MODEL and TARGET_DEVICE_IDENTIFIER
based on destination, so when the selected simulator changes, all our
build script executions are invalidated and the next build rebuilds
nearly everything.

webkitdirs was picking the first eligible simulator as reported by
`simctl list devices`. This was causing incremental rebuilds when
engineers add and remove simulator devices (relatively common during
testing workflows). Additionally, it meant that switching between the
Xcode IDE and command line for building was likely to be non-incremental
-- you'd have to know which simulator was the special one and select it
in the UI.

Fix by teaching webkitdirs to look at previous build requests and find
the UDID of the simulator that was used. If it's still available and
eligible, build with it. If it isn't, pick an eligible simulator -- the
next request will re-use it. Instead of picking simulators based on the
order simctl reports them, sort lexicographically like Xcode does, so
that the default matches the first list item in the UI.

* Tools/Scripts/webkitdirs.pm:
(determineXcodeDestination):

Canonical link: https://commits.webkit.org/278893@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list