Skip to content

Commit c478c9b

Browse files
authored
Merge pull request #10166 from circleci/update-xcode-policy
Updating Xcode policy
2 parents 7013526 + f7edbd3 commit c478c9b

1 file changed

Lines changed: 30 additions & 6 deletions

File tree

docs/guides/modules/execution-managed/pages/xcode-policy.adoc

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,9 @@ We never automatically redirect requests for specific Xcode images to a differen
7373
[#xcode-patches]
7474
== Xcode patches
7575

76-
We retain the latest patch version of each Xcode `major.minor` version we support. Once Apple releases a new patch version, we deprecate the previous patch version and automatically redirect all requests to the new patch of the same `major.minor` version.
76+
We retain the latest patch version of each Xcode `major.minor` version we support. Once Apple releases a patch version, we deprecate the previous patch version and automatically redirect all requests to the updated patch of the same `major.minor` version.
7777

78-
Patches are generally backwards compatible, so we put redirects in place within 24 hours of a new patch release. If we discover any major issues, we retain the ability to issue a rollback and make both versions temporarily available.
78+
Patches are generally backwards compatible, so we put redirects in place within 24 hours of a patch release. If we discover any major issues, we retain the ability to issue a rollback and make both versions temporarily available.
7979

8080
*Example:*
8181

@@ -84,18 +84,42 @@ When Apple released Xcode `13.2.1`, we removed the previous patch version, `13.2
8484
[#beta-image-support]
8585
== Beta image support
8686

87-
We aim to make beta Xcode versions available on the macOS executor as soon as we can. This allows developers to test their apps ahead of the next stable Xcode release.
87+
We aim to make beta Xcode versions available on the macOS executor at the earliest opportunity. This allows developers to test their apps ahead of the next stable Xcode release.
8888

89-
Unlike our stable images (which we freeze once released), when we release a new beta image it overwrites the previous beta image until we release an RC/Stable image. At that point we freeze the image and no longer update it. If you request an image using an Xcode version currently in beta, it changes when Apple releases a new Xcode beta with minimal notice. This can include breaking changes in Xcode and associated tooling which are beyond our control. We do not recommend beta images for production pipelines.
89+
Unlike our stable images (which we freeze once released), when we release a beta image it overwrites the previous beta image until we release an RC/Stable image. At that point we freeze the image and no longer update it. If you request an image using an Xcode version currently in beta, it changes when Apple releases a subsequent Xcode beta with minimal notice. This can include breaking changes in Xcode and associated tooling which are beyond our control. We do not recommend beta images for production pipelines.
9090

9191
To read about our customer support policy for beta images, check out this link:https://support.circleci.com/hc/en-us/articles/360046930351-What-is-CircleCI-s-Xcode-Beta-Image-Support-Policy-[support center article].
9292

9393
[#xcode-image-releases]
9494
== Xcode image releases
9595

96-
We track and monitor Apple's Xcode releases and aim to release new images as soon as possible. We typically aim to support a new Xcode image within a couple of days, but note that this is not an SLA. We do not provide an official SLA turnaround time for new Xcode images.
96+
CircleCI is committed to providing Xcode image updates within *2 business days* of Apple's official GA release, as announced on link:https://developer.apple.com/news/releases/rss/releases.rss[Apple's official RSS feed]. This commitment applies to stable, generally available Xcode releases only.
9797

98-
We always announce new images on our link:https://circleci.com/changelog/[changelog] along with release notes. We also add them to the table of xref:using-macos.adoc#supported-xcode-versions[Xcode Versions in the Documentation].
98+
We announce all images on our link:https://circleci.com/changelog/[changelog] along with release notes. We also add them to the table of xref:using-macos.adoc#supported-xcode-versions[Xcode Versions in the Documentation].
99+
100+
[#xcode-release-exceptions]
101+
=== Exceptions to the release window
102+
103+
[#pre-release-builds]
104+
==== Pre-release builds
105+
106+
Beta releases and release candidates are not subject to the 2 business day commitment. Beta and RC images are published on a best-effort basis with no guaranteed timeline. See <<beta-image-support>> for more detail.
107+
108+
[#macos-upgrade-required]
109+
==== macOS upgrade required
110+
111+
For major Xcode releases that require a corresponding macOS upgrade on our fleet, the standard 2 business day window does not apply. We aim to publish a projected availability date within *5 business days* of Apple's GA release. A notice is posted on our link:https://discuss.circleci.com/c/announcements/39[Discuss forum] and link:https://circleci.com/changelog/[changelog] when the image goes live.
112+
113+
[#image-quality-hold]
114+
==== Image quality hold
115+
116+
In rare cases, CircleCI's validation process may identify critical issues with a newly released Xcode image. Examples include:
117+
118+
* Toolchain regressions.
119+
* Simulator instability.
120+
* Build system defects introduced by Apple.
121+
122+
When this occurs, availability may be delayed beyond the standard window. We aim to post a notice on our link:https://discuss.circleci.com/c/announcements/39[Discuss forum] within the original 2 business day window. The notice states that the release is under a quality hold and whether the issue is attributable to Apple or CircleCI. A projected timeline is provided once the scope of the fix is known.
99123

100124
[#macos-versions]
101125
== macOS versions

0 commit comments

Comments
 (0)