Release 2.0.1 - #241
Merged
Merged
Conversation
* Updates to JSON and AnyJSON * Include the HTTP response body Data within `APIResponse` * When `DebugAPIRequestObserver` is enabled, it now uses the response body, or the CustomDebugStringConvertible value of the `APIResponse.result`
* Support Xcode 26 Beta and Swift 6.2
* Improve test matrix to include more Xcode and Swift versions
* Swift Package Manager tests across macOS and Linux:
* Swift 5.10 _(macOS only)_
* Swift 6.0
* Swift 6.1
* Swift 6.2
* Xcode tests include:
* iPhone: 16.4, 18.2, 18.5
* tvOS: 18.5
* watchOS: 11.5
* visionOS: 1.0, 2.5
* macOS: 15
* Update README
* Only imports `swift-docc-plugin` when run in CI (or the `ENABLE_DOC_GENERATION` environment variable is set) to improve dependency resolution performance
* Test and CI workflow improvements
* Update swift language version detection script
* Reduce parallel iteration count for async tests to avoid flaky CI race conditions
* Do not parallelize Swift tests, due to limited CI runner speed
* Resolve inadequate test timings for CI
* Resolve unit test URLResponse race conditions
* Ensure logs can be preserved from failed swift tests
* Fix a collision in log output naming
* Ensure xcbeautify is installed on Linux
* Update to the newer CircleCI runner for UI tests
There was a problem hiding this comment.
Pull Request Overview
This PR prepares release 2.0.1 by cherry-picking backward-compatible fixes and updates across tests, utilities, CI, documentation, and version registrations.
- Refactor async test helper and URLSessionMock with new matching APIs
- Enhance JSON utilities (throwing accessors, improved descriptions) and add responseBody to APIClient
- Bump all module versions to 2.0.1, update docs badges and CI workflows
Reviewed Changes
Copilot reviewed 44 out of 44 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| Tests/TestCommon/XCTestCase+Extensions.swift | Refactored perform helper to async/await with task groups |
| Tests/TestCommon/URLSessionMock.swift | Added request(matching:) overloads for URL and body matching |
| Tests/**/*.swift | Switched literal timeouts to .standard and simplified request lookups |
| Sources/*/Version+*.swift | Registered SDK versions bumped from 2.0.0 to 2.0.1 |
| Sources/BrowserSignin/Providers/AuthenticationServicesProvider.swift | Added Sendable to protocol |
| Sources/BrowserSignin/BrowserSignin+Deprecations.swift | Added platform availability on deprecated aliases |
| Sources/AuthFoundation/Utilities/String+Extensions.swift | Conditional base64URLDecoded access levels and extracted conversion |
| Sources/AuthFoundation/Utilities/JSONValue.swift | Introduced throwing value(at:)/value(forKey:), new JSONError cases, refined description APIs |
| Sources/AuthFoundation/Network/APIResponse.swift & APIClient.swift | Added responseBody to APIResponse and populated it in APIClient |
| .github/workflows/*.yaml | Updated macOS runners, CI logging, swift-docc plugin flags |
| Podspecs & Package.swift files | Bumped CocoaPods specs and Swift package versions to 2.0.1 |
| .spi.yml | Added SPI config for experimental documentation generation |
| .circleci/config.yml | Updated CircleCI resource class |
Comments suppressed due to low confidence (3)
Tests/TestCommon/URLSessionMock.swift:27
- [nitpick]
Matchis a very generic enum name; consider renaming toRequestMatchorURLSessionRequestMatchto improve clarity and avoid collisions.
enum Match {
Sources/AuthFoundation/Utilities/JSONValue.swift:240
- Changing this subscript to always return a
JSON(defaulting to.null) differs from the previous optional behavior; consider documenting this breaking change or providing an alternate optional API if callers rely onnil.
public subscript(index: Int) -> JSON {
Sources/AuthFoundation/Network/APIResponse.swift:26
- The new
responseBodyproperty is undocumented; consider adding a doc comment explaining its purpose and usage.
public let responseBody: Data?
AlexNachbaur
force-pushed
the
release/2.0.1
branch
from
July 4, 2025 17:44
b0de918 to
5316476
Compare
* Update version numbers * Update README and include a link to the migration guide * Fix documentation output directory path
AlexNachbaur
force-pushed
the
release/2.0.1
branch
from
July 4, 2025 18:03
5316476 to
0a4eb84
Compare
bmitchelmore
approved these changes
Jul 4, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note: This cherry-picks commits from
master, avoiding any feature development that's targeted for 2.1.0 (e.g. IDX WebAuthn / Passkey support)