github swiftlang/swift-testing swift-6.3-RELEASE
Swift 6.3 Release

latest releases: swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-06-02-a, swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-06-01-a, swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-05-31-a...
3 months ago

What's Changed

  • Fix a miscompile when a test function has a raw identifier parameter label. by @grynspan in #1168
  • Lower the "ambiguous display name" diagnostic to a warning for some names. by @grynspan in #1175
  • Revert portion of workaround landed in #1139 which disabled the mandatory perf optimization pass by @stmontgomery in #1172
  • Add (hidden) synchronous overloads of #expect(throws:). by @grynspan in #1178
  • Remove redundant word from console output for test case started events in verbose mode by @stmontgomery in #1180
  • Provide additional explanation for the Windows signal handling stuff. by @grynspan in #1182
  • Ensure that when .serialized is applied to a parameterized @test func, its test cases are serialized by @stmontgomery in #1188
  • order limits.h before stdlib.h to workaround for glibc _FORTIFY_SOURCE by @lhoward in #1184
  • FreeBSD: Gate GNU-only API by @etcwilde in #1183
  • Require UTType for image attachments. by @grynspan in #1192
  • Add a cross-import overlay with AppKit to allow attaching NSImages. by @grynspan in #869
  • Fixes to the AppKit/NSImage overlay. by @grynspan in #1196
  • Add a temporary package product that builds our cross-import overlays. by @grynspan in #1197
  • Apply the 'traitRelated' tag to more tests and suites by @stmontgomery in #1199
  • Adopt SuspendingClock.systemEpoch. by @grynspan in #1202
  • Disallow the @Test attribute on operator declarations. by @grynspan in #1205
  • Add isFailure to ABI.EncodedIssue by @suzannaratcliff in #1211
  • Bump the required compiler version for systemEpoch to 6.3. by @grynspan in #1213
  • Clarify the number of supported argument collections in article which discusses combinatoric parameterized testing by @stmontgomery in #1210
  • Reset the working directory of child processes we spawn on Windows. by @grynspan in #1212
  • Use a custom AttachableImageFormat type instead of directly relying on UTType. by @grynspan in #1203
  • Remove a number of checks for compilers < 6.1. by @grynspan in #1214
  • Add a cross-import overlay with CoreImage to allow attaching CIImages. by @grynspan in #1195
  • Add a cross-import overlay with UIKit to allow attaching UIImages. by @grynspan in #1216
  • Simplify NSImageRep-checking logic to use Bundle. by @grynspan in #1217
  • Use a consistent definition for unreachable code in macro expansions. by @grynspan in #1166
  • Make ExitTest._current immutable. by @grynspan in #1218
  • Emit "barriers" into the stdout/stderr streams of an exit test. by @grynspan in #1049
  • Add missing links to UIImage documentation. by @grynspan in #1223
  • Clarify the outcome of applying a timeLimit trait to a suite. by @iamleeg in #1225
  • Only clear exit test ID env var upon successful lookup by @stmontgomery in #1226
  • Promote Issue Handling Traits to public API by @stmontgomery in #1198
  • Validate format of event stream version CLI argument when passed by @stmontgomery in #1231
  • Update docs for decoding stdout and stderr from exit tests by @simonjbeaumont in #1230
  • Mention module name and presence in toolchain in README by @stmontgomery in #1233
  • Revert "Work around a compiler regression affecting exit test value capturing. (#1171)" by @grynspan in #1208
  • Enable exit test value capturing by @grynspan in #1165
  • Add FreeBSD and OpenBSD as experimentally supported in the readme. by @grynspan in #1236
  • Don't use _getSuperclass() from the Swift runtime. by @grynspan in #1237
  • Use the prefix swift_testing_ for future exported symbols. by @grynspan in #1238
  • Remove swt_copyABIEntryPoint_v0(). by @grynspan in #1240
  • Silence a warning on FreeBSD/OpenBSD when calling pthread_set_name_np(). by @grynspan in #1241
  • Rename "SWT_EXPERIMENTAL_CAPTURED_VALUES". by @grynspan in #1242
  • Introduce a new ABI.VersionNumber type. by @grynspan in #1239
  • Add additional canImport checks to AttachmentTests.swift by @grynspan in #1244
  • Revert remaining workaround preventing the use of SymbolLinkageMarkers by @stmontgomery in #1234
  • Windows image attachments by @grynspan in #1245
  • Fix two broken Forum category links in this project's New Issue template chooser by @stmontgomery in #1248
  • Remove experimental spi from issue severity by @suzannaratcliff in #1247
  • Fix test: issueCountSummingAtRunEnd which was broken by #1247 by @suzannaratcliff in #1250
  • Declare Xcode 26 availability for IssueHandlingTrait by @stmontgomery in #1251
  • Various VersionNumber changes of merit. by @grynspan in #1246
  • Rewrite Windows image attachments to use WIC instead of GDI+. by @grynspan in #1254
  • Update docc comments for Issue.record by @suzannaratcliff in #1257
  • Remove optionality from _AttachableImageWrapper.wrappedValue on Windows. by @grynspan in #1258
  • Harmonize _AttachableImageWrapper and AttachableAs___ across Darwin and Windows. by @grynspan in #1261
  • Remove a workaround for a URL.path bug on Windows. by @grynspan in #1263
  • Enhance documentation for URL attachments. by @grynspan in #1262
  • Emit a diagnostic if a display name string is empty by @stmontgomery in #1256
  • Test that the fixups are generated if display name is empty by @jerryjrchen in #1267
  • Allow attaching an IWICBitmapSource instance directly. by @grynspan in #1266
  • Add experimental AdvancedConsoleOutputRecorder skeleton framework by @tienquocbui in #1253
  • Revise Windows image attachments to match the draft API proposal. by @grynspan in #1268
  • Propagate issue severity from exit test bodies. by @grynspan in #1272
  • Add @jerryjrchen as a code owner. by @grynspan in #1273
  • Reduce duplicated code between Darwin's and Windows' image attachments. by @grynspan in #1270
  • Update README.md to point to 6.2 jobs. by @grynspan in #1275
  • Refactor AdvancedConsoleOutputRecorder to use ABI.EncodedEvent architecture by @tienquocbui in #1281
  • Tests link with libutil for openpty on OpenBSD. by @3405691582 in #1285
  • Include severity and isFailure for Issues in the published JSON event stream by @jerryjrchen in #1279
  • Update swift-syntax package dependency to 603 by @stmontgomery in #1286
  • Ensure attachments created in exit tests are forwarded to the parent. by @grynspan in #1282
  • Promote Darwin image attachments to API. by @grynspan in #1274
  • Add experimental SPI to cancel a running test. by @grynspan in #1284
  • Clarify note about supported target types in "Defining test functions" article by @stmontgomery in #1291
  • Silence warnings about CMakeList.txt when building the package. by @grynspan in #1293
  • Rename clsid to encoderCLSID and add label to corresponding init(). by @grynspan in #1295
  • Extend test/task cancellation support to test case evaluation. by @grynspan in #1297
  • Propagate SkipInfo to child tasks when a test is cancelled. by @grynspan in #1298
  • Define an experimental event stream version and use it to conditionalize relevant content by @stmontgomery in #1287
  • Add a document describing our environment variable usage. by @grynspan in #1300
  • Lower more experimental JSON fields. by @grynspan in #1301
  • Improve ExitStatus.description for signals. by @grynspan in #1302
  • Add CMake directions for the WinSDK overlay by @grynspan in #1296
  • Work around a compile-time error on the 6.2 toolchain (Windows only). by @grynspan in #1306
  • Add task names to structured tasks we create. by @grynspan in #1305
  • [CI] Add support for GitHub Actions by @shahmishal in #1308
  • Disable the API breakage check in GitHub Actions. by @grynspan in #1311
  • Factor out the commit hash from the library version. by @grynspan in #1310
  • Enable license header soundness check by @stmontgomery in #1312
  • Move the package version to VERSION.txt. by @grynspan in #1304
  • Enable the unacceptable language soundness check and resolve identified issues by @stmontgomery in #1313
  • Avoid eagerly serializing move-only attachments. by @grynspan in #1317
  • OpenBSD needs execinfo as well. by @3405691582 in #1318
  • [CI] Add Amazon Linux 2 in PR testing by @shahmishal in #1322
  • Enable the Docs soundness check by @stmontgomery in #1314
  • Revert "[CI] Add Amazon Linux 2 in PR testing (#1322)" by @grynspan in #1324
  • Work around lack of embed in clang on OpenBSD and Amazon Linux 2. by @3405691582 in #1320
  • Fix the path to VERSION.txt used in CMake. by @grynspan in #1327
  • Remove a workaround for varargs not compiling on WASI. by @grynspan in #1323
  • Add Amazon Linux 2 in PR testing (take 2) by @grynspan in #1326
  • Drop remaining Swift 6.1 compiler support. by @grynspan in #1328
  • Implement hierarchical console output with comprehensive test result display by @tienquocbui in #1290
  • Exclude Xcode 16.4 from GitHub Actions. by @grynspan in #1331
  • Merge more of the image attachments codebase duplicated between Darwin and Windows. by @grynspan in #1329
  • Change the semantics of Test.cancel(). by @grynspan in #1332
  • Mark image attachments as unavailable on non-Darwin/non-Windows. by @grynspan in #1330
  • Promote SourceLocation._filePath to proper, non-underscored SPI. by @grynspan in #1334
  • Fix a symbol marked @_spi that's needed for exit test value capturing. by @grynspan in #1335
  • Remove @_spi(Experimental) from ExitTest.CapturedValue. by @grynspan in #1337
  • Use generics to declare suite types in macro expansions. by @grynspan in #1338
  • Disable backtrace capturing in Embedded Swift. by @grynspan in #1339
  • Mark exit tests unavailable in Embedded Swift. by @grynspan in #1341
  • Remove a stray throws in the declaration of __requiringUnsafe(). by @grynspan in #1340
  • Adopt _CFErrorCopyCallStackReturnAddresses(). by @grynspan in #1344
  • Treat @_unavailableInEmbedded like other availability attributes during macro expansion. by @grynspan in #1342
  • Provide opt-out condition for sys_signame[]. by @grynspan in #1345
  • AdvancedConsoleOutputRecorderTests is missing an import of Foundation by @stmontgomery in #1346
  • Normalize the order in which we specify our Linux/FreeBSD/OpenBSD checks. by @grynspan in #1349
  • Get exit tests functioning on OpenBSD. by @grynspan in #1352
  • Adopt Mutex. by @grynspan in #1351
  • Revert "Adopt Mutex." by @hamishknight in #1353
  • Refactor AdvancedConsoleOutputRecorder to remove fallback recorder dependency by @tienquocbui in #1354
  • Remove some uses of @unchecked Sendable and AnySequence. by @grynspan in #1358
  • Attachment lifetimes by @grynspan in #1319
  • Support command-line arguments specified as --foo=bar. by @grynspan in #1357
  • Add support for experimental "custom availability domains" feature. by @grynspan in #1362
  • Add GitHub Action workflows which build main branch (post-merge) by @stmontgomery in #1361
  • Promote Windows image attachments to API. by @grynspan in #1333
  • Adjust README to show status badges from GitHub Actions workflows by @stmontgomery in #1364
  • chore: restrict GitHub workflow permissions - future-proof by @incertum in #1365
  • Adopt Mutex (take 2) by @grynspan in #1363
  • Dynamically look up backtrace(3) on Android. by @grynspan in #1356
  • Fix accidentally dropping image encoding quality on the floor on Windows. by @grynspan in #1368
  • Make Attachment always conform to CustomStringConvertible. by @grynspan in #1367
  • Create fallback event handler library for Swift Testing and XCTest interop by @jerryjrchen in #1369
  • Enable iOS GitHub Actions workflow. by @grynspan in #1376
  • Add @_preInverseGenerics to Attachment: CustomStringConvertible. by @grynspan in #1378
  • Enable Android build in CI (no tests, only build). by @grynspan in #1382
  • Ensure NonisolatedNonsendingByDefault doesn't break exit tests. by @grynspan in #1383
  • Avoid unsafeBitCast() in the new interop target. by @grynspan in #1384
  • Disfavor overloads of __checkFunctionCall() with variadic generics. by @grynspan in #1389
  • Update the comment and bug ID explaining why a workaround in ConfirmationTests is still needed by @stmontgomery in #1391
  • Update CODEOWNERS file by @stmontgomery in #1393
  • Apply changes from ST-0017. by @grynspan in #1359
  • Capture the current working directory early on OpenBSD. by @grynspan in #1388
  • Mark earlyCWD (OpenBSD-only) constinit and fix some comments/style. by @grynspan in #1396
  • Avoid a potential race condition and use-after-free when calling Test.cancel(). by @grynspan in #1395
  • Remove VERSION.txt workaround for OpenBSD 7.7. by @grynspan in #1397
  • Remove non-functional swt_getWASIVersion(). by @grynspan in #1398
  • Fix a regression that prevents saving attachments. by @grynspan in #1400
  • Use AtomicLazyReference to store the fallback event handler. by @grynspan in #1401
  • Handle image types derived from the base types. by @grynspan in #1399
  • Keep libtool from complaining about ExecutablePath.cpp being empty. by @grynspan in #1402
  • Avoid PATH_MAX when getting the executable path on Linux and OpenBSD. by @grynspan in #1403
  • When saving a String as an attachment, assume ".txt" as a path extension. by @grynspan in #1404
  • Add more availability annotations for image attachment symbols. by @grynspan in #1409
  • Mark Issue.Severity cases with availability. by @grynspan in #1410
  • Fix a typo in exit tests documentation. by @grynspan in #1414
  • Replace wchar_t with CWideChar. by @grynspan in #1412
  • Add an upper bound on the number of test cases we run in parallel. by @grynspan in #1390
  • Use trylock to eliminate the remaining race condition in Test.cancel(). by @grynspan in #1415
  • Fix up a few build failures in environments with constrained concurrency. by @grynspan in #1417
  • [REVERTED] Set the version for release/6.3. by @grynspan in #1422
  • [6.3] Set the version for release/6.3. by @grynspan in #1423
  • Add qualification status for supported platforms in the README by @jerryjrchen in #1424
  • Enable Test.cancel() as API. by @grynspan in #1385
  • Merge 'main' branch to 'release/6.3' by @stmontgomery in #1425
  • Add auto-merger workflow to periodically merge main into release branch by @stmontgomery in #1428
  • Expose Attachment.sourceLocation as tools integration SPI by @stmontgomery in #1426
  • Enable encoderCLSID API on Windows' AttachableImageFormat. by @grynspan in #1419
  • Provide prose documentation for attachments. by @grynspan in #1413
  • Fix a typo in the attachments documentation. by @grynspan in #1434
  • Remove @_spi on encoderCLSID (take 2) by @grynspan in #1435
  • Merge main into release/6.3 by @github-actions[bot] in #1437
  • Ignore ExpectationFailedError when thrown by the body closure passed to withKnownIssue by @stmontgomery in #1441
  • Add Dependabot configuration for GitHub Actions by @shahmishal in #1442
  • Add nightly-6.3 to our PR CI workflow and pin all workflows to a specific tag by @stmontgomery in #1443
  • Avoid ObjC runtime warnings about duplicate class definitions for Serializer type by @stmontgomery in #1444
  • Bump ABI.CurrentVersion to 6.3 and ensure minor variances in JSON version numbers are permitted. by @grynspan in #1438
  • Bump swiftlang/github-workflows/.github/workflows/soundness.yml from 0.0.2 to 0.0.3 by @dependabot[bot] in #1447
  • Bump swiftlang/github-workflows/.github/workflows/create_automerge_pr.yml from 0.0.2 to 0.0.3 by @dependabot[bot] in #1448
  • Merge main into release/6.3 by @github-actions[bot] in #1449
  • Add prose documentation for file/directory attachments. by @grynspan in #1440
  • Merge main into release/6.3 by @github-actions[bot] in #1454
  • Move CODEOWNERS to .github/CODEOWNERS by @ahoppen in #1457
  • Use String(describingForTest:) to stringify most errors. by @grynspan in #1461
  • Merge main into release/6.3 by @github-actions[bot] in #1469
  • Bump swiftlang/github-workflows/.github/workflows/create_automerge_pr.yml from 0.0.3 to 0.0.4 by @dependabot[bot] in #1460
  • Replace -require-explicit-sendable with 'ExplicitSendable' warning diagnostic group by @stmontgomery in #1445
  • Include the API level in the Android OS version. by @grynspan in #1463
  • Remove _SelfRemover as obsolete. by @grynspan in #1467
  • Work around Swift compiler change on main. by @grynspan in #1466
  • Remove @_spi(Experimental) from ABI.v6_3. by @grynspan in #1451
  • Add BitwiseCopyable conformance to test discovery types. by @grynspan in #1462
  • Avoid hashtable overhead during Mach-O section discovery. by @grynspan in #1464
  • Adopt @c. by @grynspan in #1377
  • Correctly block @Suite and @Test on XCTest.XCTest and XCTestSuite. by @grynspan in #1456
  • Conditionalize 'ExplicitSendable' warning group to 6.3 compilers by @stmontgomery in #1473
  • Add a GitHub workflow running OpenBSD. by @3405691582 in #1405
  • Need to initialize os_unfair_lock guarding the fallback event handler by @jerryjrchen in #1478
  • Merge main into release/6.3 by @github-actions[bot] in #1479
  • Update the main-branch version number to 6.4-dev. by @grynspan in #1480
  • Add revision notes to JSON.md. by @grynspan in #1475
  • Fix incorrect discovery of effectful keywords in the lexical context. by @grynspan in #1482
  • Avoid runtime collisions when multiple copies of the testing library are loaded by @stmontgomery in #1471
  • Allow non-escapable types as suites. by @grynspan in #1468
  • Adjust compiler version checks around WinSDK.GUID.Wrapper. by @grynspan in #1483
  • Make IWICBitmapSourceProtocol public (underscored) to suppress new compiler warning. by @grynspan in #1484
  • Explicitly forbid tests/suites/exit tests in extensions to InlineArray. by @grynspan in #1485
  • Move the check for SWT_EXPERIMENTAL_MAXIMUM_PARALLELIZATION_WIDTH. by @grynspan in #1486
  • Merge main into release/6.3 by @github-actions[bot] in #1487
  • Adopt @section and @used. by @grynspan in #1408
  • Avoid passive voice and clarify macro in exit test docs. by @iamleeg in #1243
  • Adopt objectFormat(). by @grynspan in #1470
  • [CI] Update the github-workflows tag to 0.0.6 to support macOS Tahoe by @shahmishal in #1494
  • Self is broken when used within @Suite (e.g. in traits). by @grynspan in #1495
  • Diagnose more unsupported generic type patterns for suites. by @grynspan in #1496
  • Merge main into release/6.3 by @github-actions[bot] in #1497
  • [6.3] Interop: send events to fallback event handler if active configuration not present by @jerryjrchen in #1503
  • [6.3] Fix mangling of __TestContentRecordContainer. by @grynspan in #1510
  • [6.3] Don't set SWT_NO_INTEROP on WASI. by @grynspan in #1513
  • [6.3] CMake: Add autolink entry for TestingInterop library by @kateinoigakukun in #1517
  • [6.3] Ensure issues with warning severity are delivered to Xcode. by @grynspan in #1532
  • [6.3] [ST-0020] Promote SourceLocation.filePath to API. by @grynspan in #1538
  • [6.3] Fix a diagnostic logged by ImageIO on Darwin when attaching an image. by @grynspan in #1540
  • [6.3] Check the XCTest fallback handler after checking for other configurations. by @grynspan in #1543
  • [6.3] Declare availability for SourceLocation.filePath. by @grynspan in #1545
  • [6.3] Make #expect() ∞% faster. by @grynspan in #1561
  • [6.3] Only enable 'ExplicitSendable' warnings when building for development by @stmontgomery in #1563
  • [6.3] Add availability annotations for Xcode 26.4. by @grynspan in #1569
  • [6.3] Ensure the old overload of Issue.record() is still documented. by @grynspan in #1568
  • [6.3] Fix --experimental-event-stream-version not accepting 99. by @grynspan in #1576
  • [6.3] Ensure experimentalVersionIsAccepted() builds on iOS/etc. by @grynspan in #1579
  • [6.3] Fix up some ABI/JSON errata. by @grynspan in #1580
  • [6.3] Use a different symbol for failure with known issues. by @grynspan in #1586
  • [6.3] Disable package customization of module ABI name by @stmontgomery in #1602

New Contributors

Full Changelog: swift-6.2.4-RELEASE...swift-6.3-RELEASE

Don't miss a new swift-testing release

NewReleases is sending notifications on new releases.