Infinite package reload loop with .artifactbundleindex binary targets
### Swift version
_No response_
### Platform
_No response_
### Editor
_No response_
### Description
Opening a package that depends on a binary target distributed via a remote .artifactbundleindex URL causes SourceKit-LSP to reload the package in an infinite loop. The SourceKit-LSP log repeatedly shows:
```
Reloading package because file://…/.build/index-build/artifacts/…/library.json changed
```
### Steps to Reproduce
Create a minimal package:
Package.swift
```swift
// swift-tools-version: 5.9
import PackageDescription
let package = Package(
name: "repro",
targets: [
.target(name: "repro"),
.binaryTarget(
name: "DawnLib",
url: "https://github.com/adobe/swan/releases/download/dawn-chromium-stable-147.0.7727.50/dawn-chromium-stable-147.0.7727.50-release.artifactbundleindex",
checksum: "3b8e2880e663c7d0619e225ca7210ef737773719dc77179f87ac66c7b7e9f739"
),
]
)
```
Sources/repro/repro.swift
```swift
// (empty)
```
1. Open the `repro/` folder in VS Code with the Swift extension.
2. Watch the SourceKit-LSP output channel — it will repeatedly log:
```
Reloading package because file:///…/.build/index-build/artifacts/repro/DawnLib/…/dawn.json changed
```
Note: the first load downloads ~100 MB, so the loop becomes visible after the initial download completes.
### Logging
_No response_
0 条评论