-
Notifications
You must be signed in to change notification settings - Fork 64
Description
We have the following requirements:
icu_normalizer = { version = "~2.1.1", default-features = false }
icu_properties = { version = "~2.1.2", default-features = false }
icu_segmenter = { version = "~2.1.1", default-features = false }These were introduced in #478 due to baked data compatability. See also #477.
This is fine for the short term, but longer term we need to find a different solution. Because it is a ticking timebomb.
App depends on something that depends on Parley that depends on 2.1.x.
App also depends on something that depends on >= 2.2.0.
App will no longer compile.
Tilde requirements are just a tiny bit better than pinned requirements and both are horrible for libraries. We shouldn't have any dependency requirements at all that set upper bounds on versions. (Implicit major version upper bounds are fine, Cargo will duplicate major versions and resolve just fine.)
Given that the static baked data is only compatible with minor versions, we need a different method of sourcing it that will keep working. Which is to say, if we release a new Parley version today, it should still compile a year later when the top level app has ICU 2.9.9 in its dependency graph.