New trunk development (main) snapshots?

There haven't been any new trunk development (main) snapshots published at Swift.org - Download Swift for two weeks now. When can we expect new builds?

cc @mishal_shah

Development snapshots are tagged nightly on a condition that toolchain tests are passing on all platforms, which may not always be the case. For a new snapshot to be created again all of the failing toolchain tests have to be fixed on all officially supported platforms.

2 Likes

I see, thank you for explaining the reason!

A trunk snapshot was just tagged, along with one from the 6.0 branch.

1 Like

Looks like this has happened again, ie no trunk snapshots tagged for the last month, no 6.2 snapshots for the last two weeks.

@mishal_shah, is there any way for the community to pitch in to having these snapshots tagged more often, especially since some of us run our CI with them? If nothing else, some public visibility into the particular issues causing snapshots not to be tagged on any given day might be informative, even if nobody ends up contributing to actually fixing them.

3 Likes

The CI jobs are executed on ci.swift.org and ci-external.swift.org. Before the backend infrastructure pushes the changes to swift.org, it ensures that all platforms are passing the tests. Only then does it tag and publish the changes on swift.org.

You can find the full list of jobs in swiftlang/swift README.md

Trunk (main)

Architecture Build
macOS x86_64 Build Status
Ubuntu 20.04 x86_64 Build Status
Ubuntu 20.04 AArch64 Build Status
Ubuntu 22.04 x86_64 Build Status
Ubuntu 22.04 AArch64 Build Status
Ubuntu 24.04 x86_64 Build Status
Ubuntu 24.04 AArch64 Build Status
Amazon Linux 2 x86_64 Build Status
Amazon Linux 2 AArch64 Build Status
Universal Base Image 9 x86_64 Build Status
Debian 12 x86_64 Build Status
Debian 12 AArch64 Build Status
Windows 10 x86_64 Build Status
Windows 10 ARM64 Build Status

Swift 6.2 (release/6.2)

Architecture Build
macOS x86_64 Build Status
Ubuntu 20.04 x86_64 Build Status
Ubuntu 20.04 AArch64 Build Status
Ubuntu 22.04 x86_64 Build Status
Ubuntu 22.04 AArch64 Build Status
Ubuntu 24.04 x86_64 Build Status
Ubuntu 24.04 AArch64 Build Status
Amazon Linux 2 x86_64 Build Status
Amazon Linux 2 AArch64 Build Status
Universal Base Image 9 x86_64 Build Status
Debian 12 x86_64 Build Status
Debian 12 AArch64 Build Status
Windows 10 x86_64 Build Status
Windows 10 ARM64 Build Status

Thanks for explaining how it works, as I didn't know if there are other CI, like the Swift source compatibility suite, which these official snapshots are gated on. I'm currently getting the Android CI green again, I'll keep an eye on the linux CI too. I notice that none of the Windows CI you linked were run between April 30 and May 8, so maybe that was part of the problem.

Are there different rules when the Static Linux SDK snapshots are supposed to be built? The latest trunk build is from 1st of January. Also it is not listed in the Cross-Compilation Targets targets section of the readme.

Yes, Swift SDK for statically linked Musl by definition is not a toolchain, hence it's not a part of toolchain packaging jobs, and isn't required to be tagged synchronously with development toolchains. There's a separate job for it that maybe @al45tair could point to.

2 Likes

The nightly job is here: Swift Build Fully static SDK for Swift (nightly) [Jenkins]

Note that it hasn't been building for a while now (I have a few patches queued up to fix that).

1 Like

No snapshots in weeks again, in part because the Android CI, which I help maintain, wasn't green most of last week. I've been told that the snapshot CI jobs to follow are these two, which trigger all the "package" jobs that must pass for a snapshot to be tagged:

Looking at the successful build log from the last trunk snapshot tag, it starts extensive CI jobs building and testing the Swift toolchain for macOS, Windows, and several linux distros, plus the Android SDK. It runs several tests that aren't run on pull requests, which is why a long-running test is currently failing on that extensive macOS "package" CI, seemingly blocking the next trunk snapshot, but the PR smoke-test/test CI which don't run those extra tests are currently passing.

In addition to all those platforms listed for trunk, the 6.3 trigger also runs the static linux SDK CI job, which is currently failing with weird git checkout errors.

1 Like

Maybe we should consider releasing snapshots on those platforms where the tests did pass, instead of only releasing a snapshot when every platform passes? Personally I use developer snapshots to bisect compiler regressions for example, and for this use case I only care that it passed tests on the platform I'm testing on.

3 Likes

I think something broke in the Swift 6.3 static linux SDK CI job, as it just failed with git errors for the sixth time in a row, so seems beyond occasional flakes now. Any idea, @al45tair?

Good news is we may finally see a passing trunk snapshot job in a couple hours, as the bootstrap jobs on linux have been intentionally broken since last week and we're told will be ignored.

Whoops, spoke too soon, new watchOS simulator test failure on trunk macOS CI... :anguished_face:

This is to do with the way the CI jobs are set up; they don't fetch the source code using the scripts that are in the Static SDK directory, and are instead configured to fetch things directly themselves. Unfortunately I don't have the ability to update the job configuration so we have to wait for @mishal_shah to organise that part.

This would make using .swift-version referencing main-snapshot-abc much harder to test against cross platform fwiw.

You could have main-snapshot-abc and unstable-main-snapshot-abc or whatever. One moves in unison and the other one is whatever goes.

1 Like

:+1: I'm a fan

We started seeing this failure after merging Update the Static SDK for Linux by al45tair · Pull Request #488 · swiftlang/swift-docker · GitHub.

+ docker run --name oss-swift-6.3-package-static-sdk -e http_proxy -e https_proxy -e HTTP_PROXY -e HTTPS_PROXY -w /home/build-user/ -v oss-swift-6.3-package-static-sdk:/home/build-user -v /tmp/jenkins-1c92acea/workspace/oss-swift-6.3-package-static-sdk/source:/source -v /tmp/jenkins-1c92acea/workspace/oss-swift-6.3-package-static-sdk/products:/products static-swift-linux /bin/bash -lc 'mkdir -p /home/build-user/products && cp -r /scripts /home/build-user/scripts && chmod ugo+x /home/build-user/scripts/* && cp -r /resources /home/build-user/resources && cp -r /source /home/build-user/source && git -C /home/build-user/source/swift-project/swift tag swift-6.3-DEVELOPMENT-SNAPSHOT-2026-01-27-a && /home/build-user/scripts/build.sh --source-dir /home/build-user/source --products-dir /home/build-user/products'
 fatal: not a git repository (or any parent up to mount point /home)
 Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
 fatal: not a git repository (or any parent up to mount point /home)
 Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
 fatal: not a git repository (or any parent up to mount point /home)
 Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).

Latest trunk snapshot run got really close, with only the trunk macOS CI failing near the end of a 11-hour run because of some Docc tests:

13:34:56  Test Case '-[SwiftDocCTests.ExternalPathHierarchyResolverTests testSymbolLinksInDeclarationsAndRelationships]' started.
13:34:56  /Users/ec2-user/jenkins/workspace/oss-swift-package-macos/swift-docc/Tests/SwiftDocCTests/Infrastructure/ExternalPathHierarchyResolverTests.swift:808: error: -[SwiftDocCTests.ExternalPathHierarchyResolverTests testSymbolLinksInDeclarationsAndRelationships] : XCTAssertEqual failed: ("["doc://Main/dependency-first-symbol-id"]") is not equal to ("["doc://com.example.dependency/documentation/Dependency/First"]")
13:34:56  /Users/ec2-user/jenkins/workspace/oss-swift-package-macos/swift-docc/Tests/SwiftDocCTests/Infrastructure/ExternalPathHierarchyResolverTests.swift:812: error: -[SwiftDocCTests.ExternalPathHierarchyResolverTests testSymbolLinksInDeclarationsAndRelationships] : XCTAssertEqual failed: ("["doc://Main/dependency-second-symbol-id"]") is not equal to ("["doc://com.example.dependency/documentation/Dependency/Second"]")
13:34:56  /Users/ec2-user/jenkins/workspace/oss-swift-package-macos/swift-docc/Tests/SwiftDocCTests/Infrastructure/ExternalPathHierarchyResolverTests.swift:814: error: -[SwiftDocCTests.ExternalPathHierarchyResolverTests testSymbolLinksInDeclarationsAndRelationships] : XCTUnwrap failed: expected non-nil value of type "TopicRenderReference"
13:34:56  Test Case '-[SwiftDocCTests.ExternalPathHierarchyResolverTests testSymbolLinksInDeclarationsAndRelationships]' failed (1.048 seconds).
13:34:56  Test Suite 'ExternalPathHierarchyResolverTests' failed at 2026-01-28 08:04:28.665.
13:34:56  	 Executed 1 test, with 3 failures (0 unexpected) in 1.048 (1.048) seconds

Could someone who builds Docc on macOS take a look?

1 Like