Skip to content

Compatibility between 1.0 and 0.3 streams #2362

Open
@taiki-e

Description

@taiki-e

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 of futures-core

Even if futures-core v0.3 decides to re-export std's Stream, 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-streamArea: futures::streamfutures-0.3Issue related to the 0.3 versions of futures

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions