Files
renovate/lib/modules/manager/swift
Kenta Enomoto 35dbc3b640 fix(swift): don't write from: range to Package.resolved (#42303)
* fix(swift): don't write `from:` range to `Package.resolved`

When a dependency uses a range specifier like `from: "1.0.0"` in
Package.swift, the `newValue` produced by the versioning module contains
the range expression (e.g. `from: "603.0.0"`) rather than a plain version
string. Using `newValue` directly to update `Package.resolved` results in
the lock file containing the range expression instead of a resolved version,
which corrupts it.

Fix by using `dep.newVersion` with the `v` prefix stripped, which is
the actual resolved version and the correct value for `Package.resolved`.

* Update lib/modules/manager/swift/artifacts.ts

Co-authored-by: Michael Kriese <michael.kriese@gmx.de>

---------

Co-authored-by: Michael Kriese <michael.kriese@gmx.de>
2026-04-01 09:59:59 +00:00
..
…

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"