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

Update CI to use macOS 15 and Xcode 16 #3493

Merged
merged 100 commits into from
Nov 15, 2024
Merged

Update CI to use macOS 15 and Xcode 16 #3493

merged 100 commits into from
Nov 15, 2024

Conversation

jotaemepereira
Copy link
Collaborator

@jotaemepereira jotaemepereira commented Nov 1, 2024

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

ayoy and others added 30 commits October 14, 2024 10:14
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]>
ayoy and others added 15 commits November 5, 2024 08:37
# 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
# 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
* main:
  Do not run NTP Search Box experiment (#3537)
  Bump version to 1.114.0 (305)
  Sync: Send pixels for account removal + decoding issues (#3530)
  Send success pixel on successful data import (#3437)
# By Fernando Bunn (1) and Maxim Tsoy (1)
# Via GitHub
* main:
  Clean up CPM experiment (#3534)
  Add AI Chat <> Native communication support (#3540)

# Conflicts:
#	DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
Copy link
Collaborator

@ayoy ayoy left a 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!

Comment on lines +57 to +63
- 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
Copy link
Collaborator

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
Copy link
Collaborator

@ayoy ayoy Nov 14, 2024

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:

  1. Add a comment here explaining why AppStoreCI is used for App Store Review builds
  2. 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.

@@ -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>"; };
Copy link
Collaborator

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)
Copy link
Collaborator

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?

Copy link
Contributor

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?

Copy link
Member

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)
Copy link
Collaborator

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
samsymons added a commit to duckduckgo/BrowserServicesKit that referenced this pull request Nov 15, 2024
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
@samsymons samsymons merged commit 0f8a33d into main Nov 15, 2024
18 checks passed
@samsymons samsymons deleted the dominik/xcode-16 branch November 15, 2024 02:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants