Description
This is a tracking issue on how to handle stream trait compatibility between 0.3 and 1.0.
I said that it's okay to use something like semver trick in #2335, but we need to investigate and consider whether it should actually be introduced or not.
Context
@tesaguri said in #2335 (comment)
That could mean we don't ever publish a
v1.0.0
offutures-core
Even if
futures-core
v0.3 decides to re-exportstd
'sStream
,futures-core
can just publish a v1.0.0 release and apply the semver trick in a v0.3.x release, as long as the MSRV remains the same, so it does not need to stick to v0.3.x.
@taiki-e said in #2335 (comment)
As for futures-core, I'm okay with using the tricks like that @Nemo157 and @tesaguri said. However, if the std Stream's signature becomes incompatible with futures 0.3 Stream, the 1.0 release will be breaking change and we will not introduce this trick.
If t-libs and wg-async-foundations decide to stabilize Stream with a different signature than futures 0.3 Stream, futures team can't do anything about it. Actually, in the first proposal by wg-async-foundations, it was an incompatible signature.
@taiki-e said in #2335 (comment)
Well, as for semver tricks, rand used it and caused problems many times, so I can't guarantee that it will be done even if the trait signatures are exactly the same.
If that adversely affects users of 0.3, I don't want to use it.
cc @cramertj @Nemo157 @seanmonstar
FYI @yoshuawuyts @rust-lang/wg-async-foundations