Skip to content

[Build] Validate Swift 6 library compilation - #87

Merged
NachoSoto merged 4 commits into
masterfrom
swift-6-test-migrations
Jul 24, 2026
Merged

[Build] Validate Swift 6 library compilation#87
NachoSoto merged 4 commits into
masterfrom
swift-6-test-migrations

Conversation

@NachoSoto

@NachoSoto NachoSoto commented Jul 24, 2026

Copy link
Copy Markdown
Owner

Summary

CI reproduction

Commit 82dfc96 contains the Swift 6 configuration and CI gate before the production fix. Build and Test run 30112895900 fails in both jobs with the same downstream diagnostic:

static property 'defaultMode' is not concurrency-safe because non-'Sendable' type 'ImageInflaterRendererContentMode' may have shared mutable state

Commit b7769e4 fixes that failure and the subsequent renderer, scheduler, and deinitializer concurrency errors in this same PR. Commit e0636d5 incorporates review feedback by replacing the explicit ReactiveSwift escape hatches with @preconcurrency imports.

Validation

  • Build and Test run 30113461493: Swift 6 compatibility build, iOS Simulator test suite, and SwiftLint passed
  • local SwiftPM iOS-simulator library build in Swift 6 mode with dynamic actor isolation disabled
  • local full iOS Simulator test suite
  • swiftlint --config .swiftlint.yml --strict
  • git diff --check

Dependencies

None. The previous test-only commit was superseded by merged PR #88, so this PR is now based directly on master.

Comment thread AsyncImageViewTests/AsyncImageViewRequestSpec.swift Outdated
@NachoSoto
NachoSoto force-pushed the swift-6-test-migrations branch from 8f959a8 to bf2d144 Compare July 24, 2026 17:22
@NachoSoto NachoSoto changed the title [Tests] Migrate tests to Swift 6 concurrency [Build] Validate Swift 6 library compilation Jul 24, 2026
@NachoSoto
NachoSoto changed the base branch from swift-6-concurrency-escape-hatches to master July 24, 2026 17:23
Comment thread AsyncImageView/AsyncImageView.swift Outdated
Comment thread AsyncImageView/Renderers/ViewRenderer.swift Outdated
Comment thread Package.swift
@NachoSoto
NachoSoto marked this pull request as ready for review July 24, 2026 17:43
@NachoSoto
NachoSoto merged commit d0366cc into master Jul 24, 2026
2 checks passed
@NachoSoto
NachoSoto deleted the swift-6-test-migrations branch July 24, 2026 17:43

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e0636d5425

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread Package.swift
path: "AsyncImageView",
swiftSettings: [
// Work around https://github.com/swiftlang/swift/issues/75453.
.unsafeFlags(["-disable-dynamic-actor-isolation"])

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Keep unsafe flags out of the published library target

When AsyncImageView is consumed through a versioned SwiftPM dependency rather than built as the root package, SwiftPM rejects the product with the target 'AsyncImageView' in product 'AsyncImageView' contains unsafe build flags. The new CI job builds the repository directly, so it does not exercise this downstream-package restriction. Pass this compiler workaround from the CI build invocation instead of attaching it to the library target.

Useful? React with 👍 / 👎.

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.

1 participant