-
Notifications
You must be signed in to change notification settings - Fork 10
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
Update CI to use macOS 15 and Xcode 16 #3493
Conversation
Task/Issue URL: https://app.asana.com/0/1201048563534612/1208595122638622/f Tech Design URL: CC: **Description**: It fixes new bookmarks not being added to favorites from the dialog when no favorites index is passed. **Steps to test this PR**: 1. Create new bookmark from the dialog or by going to the new tab page and tapping the add favorite cell 2. Check the ‘Add as favorite’ box 3. Add the bookmark 4. The bookmark should be part of the new tab page array of favorites (you should also check is a favorite in the panel and in the bookmarks manager) **Definition of Done**: * [x] Does this PR satisfy our [Definition of Done](https://app.asana.com/0/1202500774821704/1207634633537039/f)? — ###### Internal references: [Pull Request Review Checklist](https://app.asana.com/0/1202500774821704/1203764234894239/f) [Software Engineering Expectations](https://app.asana.com/0/59792373528535/199064865822552) [Technical Design Template](https://app.asana.com/0/59792373528535/184709971311943) [Pull Request Documentation](https://app.asana.com/0/1202500774821704/1204012835277482/f) --------- Co-authored-by: Alexey Martemyanov <[email protected]>
# By Dominik Kapusta (4) and others # Via Dominik Kapusta (1) and others * main: Remove VPN test rollout pixel (#3510) VPN clean-up (#3474) Update Ruby to 3.3.4 (#3519) Fix UI tests failing (#3517) Add menu option to set as default browser (#3508) Bump version to 1.113.0 (300) Deprecate PixelKit daily pixel suffixes (#3509) Update permission usage description strings in Info.plist (#3518) Fix add to favorites and open in new tabs action not working on manager (#3467) Hiding of tab previews for pinned tabs fixed (#3513) Update C-S-S to 6.29.0 (#3515) Freemium PIR: Ship Review Changes - Updated New Tab Banner UI (#3501) Send pixel on sync secure storage read failure (#3497) Remove com.apple.security.device.usb entitlement (#3495) # Conflicts: # DuckDuckGo.xcodeproj/project.pbxproj # DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
# By Fernando Bunn (2) and others # Via GitHub * main: Update Attribution logic and debug logs (#3514) Update send feedback icon (#3524) PIR E2E tests (#3512) Respect new tab order preference (#3525) Fix passwords empty screen lock icon in dark mode (#3436) Bump version to 1.113.0 (301) Translations for AI Chat copy changes (#3522) Restore calling run-publish-dmg-release on tag_release.yml failure (#3520) # Conflicts: # DuckDuckGo.xcodeproj/project.pbxproj # DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
This reverts commit b020042.
# By Dax the Duck (5) and others # Via GitHub (3) and Juan Manuel Pereira (1) * main: Remediate TunnelVision, TunnelCrack and fix "Exclude Local Networks" (#3422) Sync: Send pixels for account removal + decoding issues (#3530) Send success pixel on successful data import (#3437) Bump version to 1.114.0 (304) Set marketing version to 1.114.0 Update embedded files Introduce report broken site prompt on triple refresh page (#3523) add state for import (#3485) Bump version to 1.113.0 (303) Do not use suggestion view controller visibility to set suggestion (#3529) Fix SwiftLint Fix SwiftLint Update phishing protection datasets to 1686837 (#3494) Bump version to 1.113.0 (302) Update permission string for location popup (#3526) Send auth state with sync unexpectedly disabled pixel (#3521) # Conflicts: # DuckDuckGo.xcodeproj/project.pbxproj # DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@samsymons @jotaemepereira this overall looks good to me, thanks for your great work on this 💪 👏
I'm leaving a few minor comments that would be great to have addressed before merging, but otherwise it's good to go. Thanks again!
- name: Install screenresolution | ||
if: matrix.runner == 'macos-15-xlarge' | ||
run: brew install screenresolution | ||
|
||
- name: Change screen resolution | ||
if: matrix.runner == 'macos-15-xlarge' | ||
run: screenresolution set 1920x1080x32@60 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We could perhaps do this for all runners 🤔 My worry here is that it will bite us back when macos-16 is introduced and we'd have to come back here and update the if statement, so maybe it makes sense to just do this unconditionally to spare future headaches :)
@@ -22,6 +22,7 @@ PRODUCT_BUNDLE_IDENTIFIER = $(MAIN_BUNDLE_IDENTIFIER) | |||
CODE_SIGN_ENTITLEMENTS = DuckDuckGo/DuckDuckGoAppStore.entitlements | |||
CODE_SIGN_ENTITLEMENTS[config=Debug][arch=*][sdk=*] = DuckDuckGo/DuckDuckGoAppStoreDebug.entitlements | |||
CODE_SIGN_ENTITLEMENTS[config=CI][arch=*][sdk=*] = DuckDuckGo/DuckDuckGoAppStoreCI.entitlements | |||
CODE_SIGN_ENTITLEMENTS[config=Review][arch=*][sdk=*] = DuckDuckGo/DuckDuckGoAppStoreCI.entitlements |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd appreciate if we did either of the two:
- Add a comment here explaining why AppStoreCI is used for App Store Review builds
- Add a dedicated entitlements file called AppStoreReview
Also I think we're going to request the entitlement for the review AppStore app later so this is temporary? Then a comment should work.
DuckDuckGo.xcodeproj/project.pbxproj
Outdated
@@ -3895,6 +3894,7 @@ | |||
4BA1A6F5258C4F9600F6F690 /* EncryptionMocks.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EncryptionMocks.swift; sourceTree = "<group>"; }; | |||
4BA1A6FD258C5C1300F6F690 /* EncryptedValueTransformerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EncryptedValueTransformerTests.swift; sourceTree = "<group>"; }; | |||
4BA71ED92B4B81E80002EBCE /* AppVersionExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppVersionExtension.swift; sourceTree = "<group>"; }; | |||
4BA808FF2CDE78F600338EE4 /* DuckDuckGoAppStoreReview.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DuckDuckGoAppStoreReview.entitlements; sourceTree = "<group>"; }; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah there you are :D Then let's actually use this file in the configuration.
@@ -24,10 +24,14 @@ protocol DataBrokerProtectionOperationQueue { | |||
var maxConcurrentOperationCount: Int { get set } | |||
func cancelAllOperations() | |||
func addOperation(_ op: Operation) | |||
func addBarrierBlock(_ barrier: @escaping @Sendable () -> Void) | |||
func addBarrierBlock1(_ barrier: @escaping @Sendable () -> Void) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was sure we had solved it in main branch using some nicer name 😂 @THISISDINOSAUR do you recall handling this Xcode 16 compilation issue?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We did, and then I think @quanganhdo was able to delete it. @quanganhdo I can't remember the details, can we remove this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We were able to delete for a particular Xcode 16 revision only. Later updates broke it again.
func testCase(_ testCase: XCTestCase, didRecord issue: XCTIssue) { | ||
print("Failed test with name: \(testCase.name)") | ||
let screenshotName = "\(testCase.name)-failure" | ||
testCase.takeScreenshot(screenshotName) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
❤️
# By Graeme Arthur (2) and others # Via GitHub * main: Disable reordering when sort by name is enabled (#3552) Move FE Overlay Pixel to the Native layer (#3550) Bump version to 1.114.0 (307) bump bsk for text zoom feature definition (#3496) Add support for local overrides for feature flags (#3545) Speculative password import prompt crash fix (#3542) Send error with fetch device failure pixel (#3546) DuckPlayer Overlay Pixels (#3538) Bump version to 1.114.0 (306) Enforce stricter hasPendingUpdate check (#3541) Implement Fire Window UI tests (#3544) Add cohort assignment pixel for NTP Search Box Experiment (#3539) Prevent Freemium PIR Pixel Firing for All Users (#3543) # Conflicts: # DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
Required: Task/Issue URL: https://app.asana.com/0/1203301625297703/1208329354262556/f iOS PR: duckduckgo/iOS#3377 macOS PR: duckduckgo/macos-browser#3493 What kind of version bump will this require?: Patch Description: This change updates CI workflows to use Xcode 16 and run on macOS 15
Task/Issue URL: https://app.asana.com/0/1204006570077678/1208389158134603/f
Tech Design URL:
CC:
Description:
Updates our workflows to use Xcode 16
Definition of Done:
Internal references:
Pull Request Review Checklist
Software Engineering Expectations
Technical Design Template
Pull Request Documentation