Skip to content

Upgrade toolchain to Xcode 27 / Swift 6.4 #916

Description

@malpern

Post-1.0. Not for the 1.0 launch. From the WWDC 2026 review — see docs/wwdc-2026-macos-27-opportunities.md (PR #911), opportunity #5.

Why (near-free wins)

  • Significant ViewBuilder build-time improvements in Xcode 27 — real money across 23 targets and ~350 test files.
  • Foundation URL parsing up to 4× faster.
  • Swift 6.4: @diagnose for finer-grained warning control, simplified availability syntax (anyAppleOS).
  • Swift Testing ↔ XCTest interop ships with this toolchain (prerequisite for the migration-policy issue).
  • Prerequisite for all macOS 27 SDK adoption (Foundation Models, Entity Schemas, AppKit observation, intent testing).

Plan

  1. Validate local + CI builds on Xcode 27 beta; watch for strict-concurrency diagnostics changes (all targets are .v6 already, expect a quiet upgrade).
  2. Check pinned-tool interactions: SwiftFormat 0.61.1 pin (mise.toml) vs. any Swift 6.4 syntax changes — do not bulk-reformat with an unpinned version (Pin/align swiftformat version — local runs reformat unrelated code (churn) #634).
  3. Verify notarization/signing pipeline (Scripts/build-and-sign.sh) against the new SDK.
  4. Switch CI when the GM seed lands; betas via a side lane only.

https://claude.ai/code/session_01Nsiqm39oCwHkbrHytefnGM

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestkeypathScope: KeyPath product, app, installer, or repository workneeds-decisionRequires a product or scope decision before implementationon-holdValid work intentionally deferred pending evidence, dependency, or product decisionpost-releasePost-public-1.0 work; not required before stable 1.0 releasetoolingwwdc26

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions