Skip to content

Raise availability to anyAppleOS 27.0 - #143

Merged
FranzBusch merged 1 commit into
swift-server:mainfrom
inductor:availability-27
Oct 2, 2026
Merged

FranzBusch merged 1 commit into
swift-server:mainfrom
inductor:availability-27

Conversation

@inductor

@inductor inductor commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

Motivation

swift-http-api-proposal is moving to swift-collections 1.7.1 and swift-async-algorithms 1.1.7. In those releases, the container protocols and AsyncStreaming (AsyncReader and friends) require 27.0 on Apple platforms, so HTTPAPIs is raising all of its availability annotations to anyAppleOS 27.0.

swift-http-api-proposal also compiles the NIOHTTPServer sources from this repository through a submodule, so declarations here that are still marked anyAppleOS 26.0 fail to build against the updated HTTPAPIs:

error: 'HTTPServerCapability' is only available in macOS 27.0 or newer

Modifications

  • Raised every @available(anyAppleOS 26.0, *) to @available(anyAppleOS 27.0, *).
  • Added @available(anyAppleOS 27.0, *) to the ByteBuffer extension in NIOHTTPServerResponseSender.swift, which uses RangeReplaceableContainer and had no availability annotation.
  • Raised the three @available(anyAppleOS 26.2, *) annotations in HTTP3DatagramTests.swift to 27.0, since they call test helpers that now require 27.0.

Result

This package's availability matches HTTPAPIs, and swift-http-api-proposal can update its submodule to build against swift-collections 1.7.1.

Builds and tests pass on macOS with all traits enabled.

@gjcairo gjcairo added the ⚠️ semver/major Breaks existing public API. label Oct 1, 2026

@aryan-25 aryan-25 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

The CI failures should be resolved by #144.

@FranzBusch

Copy link
Copy Markdown
Contributor

Test failures seems unrelated

@FranzBusch
FranzBusch merged commit ae765a3 into swift-server:main Oct 2, 2026
20 of 27 checks passed
@inductor
inductor deleted the availability-27 branch October 5, 2026 02:57
FranzBusch pushed a commit to apple/swift-http-api-proposal that referenced this pull request Oct 5, 2026
…#193)

### Motivation

Follow-up to #191. As suggested there, we should move
swift-async-algorithms past 1.1.5, which doesn't build against
swift-collections 1.7.x (apple/swift-async-algorithms#455).

swift-async-algorithms 1.1.6 and later require swift-collections `from:
"1.7.0"`, so swift-collections has to move too. In swift-collections
1.7.x the container protocols require 27.0 on Apple platforms
(`SwiftStdlib 6.4`). With swift-async-algorithms 1.1.6 that breaks the
AsyncStreaming build on Apple platforms, and 1.1.7
(apple/swift-async-algorithms#459) fixes it by raising AsyncStreaming's
availability to 27.0. Since `HTTPAPIs` is built on AsyncStreaming, its
availability has to be raised to 27.0 as well.

### Modifications

- Raised every `@available(anyAppleOS 26.0, *)` in Sources, Tests and
Examples to `@available(anyAppleOS 27.0, *)`.
- Updated swift-collections to `exact: "1.7.1"` and
swift-async-algorithms to `exact: "1.1.7"`. Both stay pinned with
`exact` since their unstable traits can change in any release.
- Re-exported `SpanPreview` from `HTTPAPIs` alongside
`ContainersPreview`, since swift-collections 1.7 moved `span` into
`SpanPreview`.
- Updated the swift-http-server submodule to include
swift-server/swift-http-server#143, which raises its availability to
27.0 in the same way.

### Result

The package builds against swift-collections 1.7.1 and
swift-async-algorithms 1.1.7. All APIs now require 27.0 on Apple
platforms.

### Test Plan

Builds and tests pass on macOS and on Linux.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

⚠️ semver/major Breaks existing public API.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants