ITADN

Hummingbird 2.18.0+ break API stability from 2.17.0 (says `swift-pm`)

#753Closedherzi 创建于 2025-12-15
H
herzicommented
# Context I have been selectively updating my dependencies via `swift package update <dependency>`. # Expected Behavior When running `swift package update hummingbird`, swift-pm exists with status code 0 and updates my current dependency from 2.17.0 to the latest version available. # Actual Behavior ## Linux (Swift 6.2) As seen in [github.com/herzi/hummingbird-update-failure](https://github.com/herzi/hummingbird-update-failure/actions/runs/20238045245/job/58097983203): ``` error: Traits [ConfigurationSupport] have been enabled on package 'hummingbird' (hummingbird) that declares no traits. ``` ## macOS (Apple Swift 6.2) Apple's swift-6.2 seems to be a bit more explicit: ``` error: Disabled default traits on package 'hummingbird' (hummingbird) that declares no traits. This is prohibited to allow packages to adopt traits initially without causing an API break. ``` # Conclusion Come to think of it, I think this actually makes sense that Apple-Swift calls this _API break_. In order to adapt `swift-configuration`, I'll have to update my code. This means non-empty default traits introduce dependencies and code that will never be used until I also adjust the code calling into hummingbird. # Known Workaround The failed invocation of `swift-pm` leaves an updated `Package.resolved` including a reference to hummingbird 2.18.1 (as of 2025-12-15).
关闭于 2026-01-30 11 条评论