Skip to content

swift package reset doesn't reset the prebuilts cache #8787

Closed
@dschaefer2

Description

@dschaefer2

Is it reproducible with SwiftPM command-line tools: swift build, swift test, swift package etc?

  • Confirmed reproduction steps with SwiftPM CLI. The description text must include reproduction steps with either of command-line SwiftPM commands, swift build, swift test, swift package etc.

Description

To reduce the number of times swiftpm reaches out to swift.org, we cache the manifest and the libraries so they can be reused. We also cache that we tried to fetch a prebuilt but it wasn't there or failed for some other reason since it's likely to always fail.

Except for one scenario that will likely be common place. There will be a time lag between when a toolchain version is available and when we have prebuilts published that work with that toolchain. So it will silently fail until the publish happens, then will work.

The caching of failed attempts means we won't try again for a given Workspace. We need to change that strategy. Either we don't cache that we failed, though there may be instances where it won't ever succeed. Or we leverage the WorkspaceState and record it there. That way when the user does a swift package reset, the WorkspaceState is cleared and we'll retry the next time packages are resolved.

Expected behavior

No response

Actual behavior

No response

Steps to reproduce

No response

Swift Package Manager version/commit hash

No response

Swift & OS version (output of swift --version ; uname -a)

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions