Hummingbird 2.18.0+ break API stability from 2.17.0 (says `swift-pm`)
# 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 条评论