Skip to content

fix(plugin-mssql): keep FreeTDSConnection PluginKit-neutral so iOS builds#1361

Merged
datlechin merged 1 commit into
mainfrom
fix/mssql-freetds-pluginkit-neutral
May 20, 2026
Merged

fix(plugin-mssql): keep FreeTDSConnection PluginKit-neutral so iOS builds#1361
datlechin merged 1 commit into
mainfrom
fix/mssql-freetds-pluginkit-neutral

Conversation

@datlechin
Copy link
Copy Markdown
Member

Problem

The iOS Tests CI job fails to compile with cannot find type 'SSLHandshakeError' in scope at Plugins/MSSQLDriverPlugin/FreeTDSConnection.swift.

FreeTDSConnection.swift is compiled into two targets that link different TableProPluginKit modules:

  • macOS MSSQL plugin → the framework at Plugins/TableProPluginKit/ (has SSLHandshakeError)
  • iOS TableProMobile → the SPM product from Packages/TableProCore/ (does not have SSLHandshakeError)

The file header documents this and forbids PluginKit deps. #1310 added import TableProPluginKit plus a classifier returning SSLHandshakeError, which compiles on macOS but breaks the iOS build.

Fix

Restore the shared file to PluginKit-neutral and route SSL classification through the existing neutral error channel:

  • MSSQLCoreError (shared core) gains a neutral MSSQLTLSFailureKind; tlsHandshakeFailed now carries (kind, serverMessage).
  • FreeTDSConnection drops the PluginKit import, classifies into the neutral kind, and throws MSSQLCoreError.tlsHandshakeFailed.
  • MSSQLPlugin (macOS only) maps the neutral kind back to the rich SSLHandshakeError in connect().
  • MSSQLDriver (iOS only) updated for the new case signature.

macOS behavior is unchanged: the app still receives the same SSLHandshakeError with its recovery suggestions. iOS now compiles and surfaces a neutral TLS handshake message.

No CHANGELOG entry: macOS UX is unchanged and the broken iOS build never shipped.

@datlechin datlechin merged commit dd7e5c5 into main May 20, 2026
1 of 2 checks passed
@datlechin datlechin deleted the fix/mssql-freetds-pluginkit-neutral branch May 20, 2026 15:58
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