Widen the swift-syntax range to 600.0.1 ..< 604.0.0 - #1
Merged
Conversation
swift-syntax treats each 6xx release as a major version, so upToNextMajor(602) pins the whole dependency graph to 602.x. That collides with anything needing a different 6xx: SwiftGodot 0.75.0 requires 600.x, and since SwiftGodotKit's macOS embedding needs the fork-only DisplayServerEmbedded that newer SwiftGodot no longer exposes, it cannot move up. An app depending on both allonet2 and SwiftGodotKit therefore fails to resolve before compiling a line. swift-syntax is used here only by the build-time macro plugin, and the constraint is over-tight rather than real: the SIMDToolsMacros target builds clean against 600.0.1 and 603.0.2, verified at both ends of the new range.
swift-syntax 603 crashes swift-frontend while building its module interface on the toolchain CI pins (swift-actions/setup-swift 5.9). Only the lower bound matters for the problem this solves, so stop the range short of 603 rather than reaching past what the package's own CI can build.
The pinned 5.9.2 toolchain is now paired with the runner image's macOS 26.5 SDK, whose Foundation.swiftinterface uses typed throws that 5.9 cannot parse - so every manifest compile fails before any of this package is built. That breaks any PR, independently of what it changes. Use the image's own toolchain instead. The workflow only triggered on pull_request, so main never ran it and the breakage stayed invisible; run it on main pushes as well. With CI on a current toolchain the swift-syntax range can stay at its useful width, 600.0.1 ..< 604.0.0.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
upToNextMajor(from: "602.0.0")pins the whole graph to swift-syntax 602.x, because swift-syntax treats every 6xx release as a major version.That collides with anything needing a different 6xx. Concretely: SwiftGodot 0.75.0 wants 600.x, and it can't move up — SwiftGodotKit's macOS embedding needs
DisplayServerEmbedded, a fork-only Godot class that newer SwiftGodot's bindings (generated from official Godot 4.6) no longer expose. So an app depending on both allonet2 and SwiftGodotKit fails at resolution, before compiling anything.swift-syntax is only used here by the build-time macro plugin, and the constraint turns out to be over-tight rather than real.
SIMDToolsMacrosbuilds clean at both ends of the new range:600.0.1 ..< 601.0.0603.0.2 ..< 604.0.0With this in, a KojaApp-shaped graph resolves and builds against upstream SwiftGodotKit and upstream SwiftGodot with no forks, no vendored trees and no submodules — verified end to end.
🤖 Generated with Claude Code