Skip to content

Conversation

@github-actions
Copy link

This PR was automatically opened by a GitHub action. Review the changes included in this PR and determine if they should be included in the release branch. If yes, merge the PR. Otherwise revert changes that should not be included on this branch.

stmontgomery and others added 8 commits December 9, 2025 15:53
…to withKnownIssue (#1441)

This fixes an issue where a redundant, second known issue is recorded
when `try #require()` fails within the body closure of `withKnownIssue`.
For example, in the following example code:

```swift
@test func example() {
  withKnownIssue {
    try #require(Bool(false))
  }
}
```

two (known) issues are recorded:

> ✘ Test example() recorded a known issue at
KnownIssueTests.swift:641:9: Expectation failed: Bool(false)
> ✘ Test example() recorded a known issue at
KnownIssueTests.swift:640:18: An API was misused
> ↳ Recorded an error of type ExpectationFailedError representing an
expectation that failed and was already recorded: ...

Of these, only the first should be recorded and the second should be
suppressed.

Fixes rdar://153550847

### Motivation:

It should be possible to use `try #require()` in the body closure passed
to `withKnownIssue`, and _matching_ failures should only cause a single
known issue to be recorded. The second issue shown above describes an
infrastructural `Error`-conforming type which is not generally intended
to be included in the results test authors see, and can cause confusion.

### Modifications:

- When attempting to match an error thrown by a `withKnownIssue` body
closure, ignore the error if it's of type `ExpectationFailedError.
- Add a new unit test validating this, which fails prior to the fix.

### Checklist:

- [x] Code and documentation should follow the style of the [Style
Guide](https://github.com/apple/swift-testing/blob/main/Documentation/StyleGuide.md).
- [x] If public symbols are renamed or modified, DocC references should
be updated.
Add Dependabot configuration for GitHub Actions
…ific tag (#1443)

This modifies our pull request GitHub Actions workflow which is
currently using `nightly-6.2` builds to add `nightly-6.3` as well. This
is possible now that [nightly 6.3 development
snapshots](https://forums.swift.org/t/swift-6-3-nightly-development-snapshots/83621)
are available and swiftlang/github-workflows#206
has added the necessary workflow support logic.

Additionally, this pins all of our workflows which
[use](https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idstepsuses)
[swiftlang/github-workflows](https://github.com/swiftlang/github-workflows)
to a specific tag
([`0.0.2`](https://github.com/swiftlang/github-workflows/releases/tag/0.0.2))
instead of `main`. As of
swiftlang/github-workflows#196, this is now the
[recommended
practice](https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idstepsuses)
since it helps prevent breakages due to upstream changes in the workflow
definition file.

### Checklist:

- [x] Code and documentation should follow the style of the [Style
Guide](https://github.com/apple/swift-testing/blob/main/Documentation/StyleGuide.md).
- [x] If public symbols are renamed or modified, DocC references should
be updated.
…ializer type (#1444)

This is a workaround meant to avoid Objective-C runtime warnings about
duplicate classes stemming from our internal `Serializer` type which was
added in #1390.

### Motivation:

In some usage scenarios there can be two or more copies of the testing
library loaded into a runner process. When this happens on platforms
such as Darwin which use the Objective-C runtime, this can cause
duplicate class definition warnings logged to the console because class
types and (non-generic) actor types are implemented within the
Objective-C runtime as classes. This can look something like the
following:

> objc[44611]: Class _TtC7Testing10Serializer is implemented in both
../path/to/libTesting.dylib (0x1011ac050) and
path/to/swift-testing/.build/arm64-apple-macosx/debug/swift-testingPackageTests.xctest/Contents/MacOS/swift-testingPackageTests
(0x10cc3ab88). This may cause spurious casting failures and mysterious
crashes. One of the duplicates must be removed or renamed.

### Modifications:

I considered several potential fixes, but decided the simplest and most
likely to work in all usage scenarios is to make the `Serializer` type
generic by adding an unused generic type parameter `T`.

### Checklist:

- [x] Code and documentation should follow the style of the [Style
Guide](https://github.com/apple/swift-testing/blob/main/Documentation/StyleGuide.md).
- [x] If public symbols are renamed or modified, DocC references should
be updated.
…ersion numbers are permitted. (#1438)

This PR ensures that the JSON schema version 6.3 is considered
"supported" in Swift Testing 6.3. As well, it suppresses a thrown error
when the `version` field of a JSON record is slightly higher than the
expected schema. For example, if we ask Swift Testing the ABI version
corresponding to `VersionNumber(6, 3, 1)`, we'll get back `v6_3`, but
then if we try to decode a JSON record whose `version` field equals
`"6.3.1"`, we'll throw a version mismatch error. This error is now
suppressed unless the versions really do mismatch.

### Checklist:

- [x] Code and documentation should follow the style of the [Style
Guide](https://github.com/apple/swift-testing/blob/main/Documentation/StyleGuide.md).
- [x] If public symbols are renamed or modified, DocC references should
be updated.

---------

Co-authored-by: Stuart Montgomery <[email protected]>
…0.0.2 to 0.0.3 (#1447)

Bumps
[swiftlang/github-workflows/.github/workflows/soundness.yml](https://github.com/swiftlang/github-workflows)
from 0.0.2 to 0.0.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/swiftlang/github-workflows/releases">swiftlang/github-workflows/.github/workflows/soundness.yml's
releases</a>.</em></p>
<blockquote>
<h2>0.0.3</h2>
<h2>What's Changed</h2>
<ul>
<li>Skip matrix jobs more cleanly (take 2) by <a
href="https://github.com/jakepetroules"><code>@​jakepetroules</code></a>
in <a
href="https://redirect.github.com/swiftlang/github-workflows/pull/208">swiftlang/github-workflows#208</a></li>
<li>Add support for Linux on aarch64 by <a
href="https://github.com/jakepetroules"><code>@​jakepetroules</code></a>
in <a
href="https://redirect.github.com/swiftlang/github-workflows/pull/207">swiftlang/github-workflows#207</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/swiftlang/github-workflows/compare/0.0.2...0.0.3">https://github.com/swiftlang/github-workflows/compare/0.0.2...0.0.3</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/swiftlang/github-workflows/commit/bd541c3393ad4c885f13e05f76d1d8ffd0882f1b"><code>bd541c3</code></a>
Add support for Linux on aarch64 (<a
href="https://redirect.github.com/swiftlang/github-workflows/issues/207">#207</a>)</li>
<li><a
href="https://github.com/swiftlang/github-workflows/commit/b3cca9db7632a6a125e02bbe98cd28f12e61295c"><code>b3cca9d</code></a>
Skip matrix jobs more cleanly (take 2) (<a
href="https://redirect.github.com/swiftlang/github-workflows/issues/208">#208</a>)</li>
<li>See full diff in <a
href="https://github.com/swiftlang/github-workflows/compare/0.0.2...0.0.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=swiftlang/github-workflows/.github/workflows/soundness.yml&package-manager=github_actions&previous-version=0.0.2&new-version=0.0.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
….yml from 0.0.2 to 0.0.3 (#1448)

Bumps
[swiftlang/github-workflows/.github/workflows/create_automerge_pr.yml](https://github.com/swiftlang/github-workflows)
from 0.0.2 to 0.0.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/swiftlang/github-workflows/releases">swiftlang/github-workflows/.github/workflows/create_automerge_pr.yml's
releases</a>.</em></p>
<blockquote>
<h2>0.0.3</h2>
<h2>What's Changed</h2>
<ul>
<li>Skip matrix jobs more cleanly (take 2) by <a
href="https://github.com/jakepetroules"><code>@​jakepetroules</code></a>
in <a
href="https://redirect.github.com/swiftlang/github-workflows/pull/208">swiftlang/github-workflows#208</a></li>
<li>Add support for Linux on aarch64 by <a
href="https://github.com/jakepetroules"><code>@​jakepetroules</code></a>
in <a
href="https://redirect.github.com/swiftlang/github-workflows/pull/207">swiftlang/github-workflows#207</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/swiftlang/github-workflows/compare/0.0.2...0.0.3">https://github.com/swiftlang/github-workflows/compare/0.0.2...0.0.3</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/swiftlang/github-workflows/commit/bd541c3393ad4c885f13e05f76d1d8ffd0882f1b"><code>bd541c3</code></a>
Add support for Linux on aarch64 (<a
href="https://redirect.github.com/swiftlang/github-workflows/issues/207">#207</a>)</li>
<li><a
href="https://github.com/swiftlang/github-workflows/commit/b3cca9db7632a6a125e02bbe98cd28f12e61295c"><code>b3cca9d</code></a>
Skip matrix jobs more cleanly (take 2) (<a
href="https://redirect.github.com/swiftlang/github-workflows/issues/208">#208</a>)</li>
<li>See full diff in <a
href="https://github.com/swiftlang/github-workflows/compare/0.0.2...0.0.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=swiftlang/github-workflows/.github/workflows/create_automerge_pr.yml&package-manager=github_actions&previous-version=0.0.2&new-version=0.0.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@stmontgomery stmontgomery self-assigned this Dec 12, 2025
@stmontgomery stmontgomery added the integration ⚙️ Integrating work to release branches label Dec 12, 2025
@stmontgomery stmontgomery marked this pull request as ready for review December 12, 2025 18:09
@stmontgomery stmontgomery added this to the Swift 6.3.0 milestone Dec 12, 2025
@stmontgomery stmontgomery merged commit 38e79bc into release/6.3 Dec 12, 2025
32 checks passed
@stmontgomery stmontgomery deleted the automerge/merge-main-2025-12-12_17-43 branch December 12, 2025 18:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

integration ⚙️ Integrating work to release branches

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants