Skip to content

fix: match CI to Swift 6.4 and the Xcode 27 runner - #165

Merged
fulldecent merged 1 commit into
mainfrom
xcode-27-ci
Oct 9, 2026
Merged

fulldecent merged 1 commit into
mainfrom
xcode-27-ci

Conversation

@fulldecent

Copy link
Copy Markdown
Owner

Summary

swift6-module-template 16.5.0 tests on the GitHub-hosted xcode-27 runner and requires Swift tools 6.4. Xcode 26 cannot load that tools version. This package follows that pin.

xcrun swift test builds for macOS. These sources import UIKit, so the job uses xcodebuild and the iPhone 17 simulator on iOS 27.0, which the Xcode 27.0 image lists.

Release Please opens the release pull request from fix:, feat: and BREAKING CHANGE: messages. Tags stay unprefixed so Release Please can see the existing tag 5.1.1. The release publishes the git tag. The template also publishes a Linux static library, and this module cannot build one.

Locally, with Xcode 27.0, xcodebuild test on the iPhone 17 simulator (iOS 27.0) reported TEST SUCCEEDED.

Test plan

  • The ci workflow on this branch selects the Xcode 27 runner and xcodebuild test passes on iPhone 17 / iOS 27.0
  • swift format reports a clean diff for Sources/ and Tests/

Package.swift now requires Swift tools 6.4, which Xcode 26 cannot load.
Test on the GitHub-hosted xcode-27 image with an iPhone 17 simulator on
iOS 27.0, because these sources import UIKit. Release Please opens the
release pull request, and tags stay unprefixed so they match 5.1.1.
Copilot AI balanced review requested due to automatic review settings October 9, 2026 03:50

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

Tag validation permits malformed releases, CI runs duplicate branch jobs, and breaking-change instructions are inaccurate.

5 open findings
What changed in this PR

Aligns Swift, Xcode CI, and automated releases with the module template.

Changes:

  • Requires Swift 6.4 and Xcode 27.
  • Tests against iPhone 17/iOS 27.
  • Adds Release Please automation and documentation.
File Description
Package.swift Updates Swift tools and concurrency settings.
.github/​workflows/​ci.yml Migrates CI to Xcode 27.
.github/​workflows/​release.yml Adds automated release publishing.
release-please-config.json Configures unprefixed release tags.
.release-please-manifest.json Records the current release version.
README.md Documents testing and releases.
CONTRIBUTING.md Updates contributor release guidance.
CHANGELOG.md Records CI and release changes.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/workflows/ci.yml

on:
workflow_call:
push:
Comment on lines +97 to +100
case "$TAG" in
[0-9]*.[0-9]*.[0-9]*) ;;
*) echo "tag must look like 5.1.2" >&2; exit 1 ;;
esac
Comment thread CHANGELOG.md
- Pin GitHub Actions to the macOS 15 image, Xcode 16.4, and an iPhone 16 simulator on iOS 18.5. The workflow on `macos-latest` failed before the package compiled.
- Require Swift tools 6.4 and enable Approachable Concurrency. Xcode 26 cannot load that tools version.
- Test on the GitHub-hosted Xcode 27 runner, using an iPhone 17 simulator on iOS 27.0.
- Hand releases to Release Please. Commit messages use `fix:`, `feat:` or `BREAKING CHANGE:`. Tags stay unprefixed, matching `5.1.1`.
Comment thread CONTRIBUTING.md
# Contributing

All contributors are welcome. Please use issues and pull requests to contribute to the project. And update [CHANGELOG.md](CHANGELOG.md) when committing.
All contributors are welcome. Please use issues and pull requests to contribute to the project. Commit messages use `fix:`, `feat:` or `BREAKING CHANGE:`. Release Please writes [CHANGELOG.md](CHANGELOG.md) from those messages.
Comment thread README.md

## Releases

Commit messages use `fix:`, `feat:` or `BREAKING CHANGE:`. [Release Please](https://github.com/googleapis/release-please) opens a release pull request from those messages. Merging that pull request runs [.github/workflows/release.yml](.github/workflows/release.yml), which tests the package and publishes the GitHub Release.
@fulldecent
fulldecent merged commit f74c8b8 into main Oct 9, 2026
3 checks passed
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.

2 participants