Skip to content

Automated Dependency Updates for Swift Package Manager

Renovate supports updating Swift Package Manager dependencies.

File Matching

By default, Renovate will check any files matching the following regular expression: (^|/)Package\.swift.

For details on how to extend a manager's fileMatch value, please follow this link.

Supported datasources

This manager supports extracting the following datasources: git-tags.

References## Default config

{
  "fileMatch": [
    "(^|/)Package\\.swift"
  ],
  "versioning": "swift",
  "pinDigests": false
}

Additional Information

Anything other than .exact(<...>) or exact:<...> will be treated as range with respect to Swift specific. Because of this, some PR descriptions will look like from: <...> => <...>.

Examples:

package(name: "<...>", .exact("1.2.3"))   // => 1.2.3
package(name: "<...>", exact: "1.2.3")    // => 1.2.3
package(name: "<...>", from: "1.2.3")     // => from: "2.0.0"
package(name: "<...>", "1.2.3"...)        // => "2.0.0"...
package(name: "<...>", "1.2.3"..."1.3.0") // => "1.2.3"..."2.0.0"
package(name: "<...>", "1.2.3"..<"1.3.0") // => "1.2.3"..<"2.0.0"
package(name: "<...>", ..."1.2.3")        // => ..."2.0.0"
package(name: "<...>", ..<"1.2.3")        // => ..<"2.0.0"

Open items

The below list of features and bugs were current when this page was generated on March 30, 2023.

Feature requests

  • Detect Swift git dependencies #18766
  • Package.resolve isn't updated after update Package.swift #6924

Bug reports

  • When updating for SwiftPM, tag with prefix may be inserted to version #9077