Hey folks π
A heads-up from the swift-log side. We shipped 1.13.0 recently and uncovered a subtle source-compatibility regression. While checking which public adopters might be affected, your repo came up β figured it was friendlier to flag it here than let you trip over it on your next dependency bump.
We're tracking it at apple/swift-log#467, along with recommended ways to mitigate the breakage.
What's going on
1.13 implements SLG-0004: Metadata Value Attributes. The relevant detail: Logger.MetadataValue now uses its own custom StringInterpolation type instead of DefaultStringInterpolation. So any appendInterpolation(...) you've added to String.StringInterpolation won't be visible when the interpolation feeds directly into a Logger.MetadataValue.
Minimal repro:
extension String.StringInterpolation {
mutating func appendInterpolation(myCustomInterpolation value: Int) {
self.appendLiteral("Int=\(value)")
}
}
logger.info("Log message", metadata: [
"key": "\(myCustomInterpolation: 42)" // error: No exact matches in call to instance method 'info'
])
It's a real SemVer break, but the use case is niche enough that we're planning to keep the change and have adopters work around it. If the workarounds don't cover your case, a comment on the upstream issue is still useful β helps us figure out if we need to do more on our end (better docs, migration notes, etc.).
Cheers!
Hey folks π
A heads-up from the
swift-logside. We shipped 1.13.0 recently and uncovered a subtle source-compatibility regression. While checking which public adopters might be affected, your repo came up β figured it was friendlier to flag it here than let you trip over it on your next dependency bump.We're tracking it at apple/swift-log#467, along with recommended ways to mitigate the breakage.
What's going on
1.13 implements SLG-0004: Metadata Value Attributes. The relevant detail:
Logger.MetadataValuenow uses its own customStringInterpolationtype instead ofDefaultStringInterpolation. So anyappendInterpolation(...)you've added toString.StringInterpolationwon't be visible when the interpolation feeds directly into aLogger.MetadataValue.Minimal repro:
It's a real SemVer break, but the use case is niche enough that we're planning to keep the change and have adopters work around it. If the workarounds don't cover your case, a comment on the upstream issue is still useful β helps us figure out if we need to do more on our end (better docs, migration notes, etc.).
Cheers!