Skip to content

Add a document to begin collecting pending ABI changes #946

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 4 commits into
base: main
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions Documentation/ABI/Pending-ABIv1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Pending ABIv1 Changes

This document collects changes which have been made and are anticipated to be
released in a future ABI/event stream version, but are still pending.

> [!IMPORTANT]
> This file describes changes which are unreleased, and are subject to change.
> Do not depend on this version or make assumptions that these changes will
> remain part of this ABI version.

## Schema version numbers

The schema version can now be specified as a 2- or 3-part version string such as
`"6.3"`. Integers continue to be supported for backwards-compatibility with the
existing "version 0" and Xcode 16 Beta schemas.

```diff
-<version> ::= "version": 0 ; will be incremented as the format changes
+<version> ::= "version": <version-number>
+
+<version-number> ::= 0 | "<integer>.<integer>" | "<integer>.<integer>.<integer>"
```

## Issue severity and warning issues

Introduced a notion of "severity" for issues, and a new "warning" severity level
which is lower than the default "error" level. Clients upgrading from v0 should
begin consulting the severity of recorded issues to determine whether the
associated test should be marked as failing.

```diff
<issue> ::= {
"isKnown": <bool>, ; is this a known issue or not?
+ "severity": <issue-severity>, ; the severity of the issue
+ "isFailure": <bool>, ; did this issue cause the associated test to fail?
["sourceLocation": <source-location>,] ; where the issue occurred, if known
}

+<issue-severity> ::= "warning" | "error"
+ ; additional severities may be added in the future
```

### See Also

- https://github.com/swiftlang/swift-testing/pull/931