Skip to content

Relax queue-related signatures to use QueueSink / QueueSource#2465

Closed
armanbilge wants to merge 1 commit intotypelevel:mainfrom
armanbilge:relax-queue
Closed

Relax queue-related signatures to use QueueSink / QueueSource#2465
armanbilge wants to merge 1 commit intotypelevel:mainfrom
armanbilge:relax-queue

Conversation

@armanbilge
Copy link
Copy Markdown
Member

I thought this would be a helpful change, but I am surprised/confused that it doesn't pass MiMa. I was under the impression that it would be okay because Queue extends QueueSource and QueueSink but I guess I don't understand bincompat 🙃

[error] fs2-core: Failed binary compatibility check against co.fs2:fs2-core_2.13:3.0.3! Found 4 potential problems (filtered 21)
[error]  * static method fromQueueNoneTerminatedChunk(cats.effect.std.Queue,Int)fs2.Stream in class fs2.Stream's type is different in current version, where it is (cats.effect.std.QueueSource,Int)fs2.Stream instead of (cats.effect.std.Queue,Int)fs2.Stream
[error]    filter with: ProblemFilters.exclude[IncompatibleMethTypeProblem]("fs2.Stream.fromQueueNoneTerminatedChunk")
[error]  * static method fromQueueNoneTerminated(cats.effect.std.Queue,Int,cats.Functor)fs2.Stream in class fs2.Stream's type is different in current version, where it is (cats.effect.std.QueueSource,Int,cats.Functor)fs2.Stream instead of (cats.effect.std.Queue,Int,cats.Functor)fs2.Stream
[error]    filter with: ProblemFilters.exclude[IncompatibleMethTypeProblem]("fs2.Stream.fromQueueNoneTerminated")
[error]  * static method fromQueueUnterminatedChunk(cats.effect.std.Queue,Int,cats.Functor)fs2.Stream in class fs2.Stream's type is different in current version, where it is (cats.effect.std.QueueSource,Int,cats.Functor)fs2.Stream instead of (cats.effect.std.Queue,Int,cats.Functor)fs2.Stream
[error]    filter with: ProblemFilters.exclude[IncompatibleMethTypeProblem]("fs2.Stream.fromQueueUnterminatedChunk")
[error]  * static method fromQueueUnterminated(cats.effect.std.Queue,Int,cats.Functor)fs2.Stream in class fs2.Stream's type is different in current version, where it is (cats.effect.std.QueueSource,Int,cats.Functor)fs2.Stream instead of (cats.effect.std.Queue,Int,cats.Functor)fs2.Stream
[error]    filter with: ProblemFilters.exclude[IncompatibleMethTypeProblem]("fs2.Stream.fromQueueUnterminated")

@mpilquist
Copy link
Copy Markdown
Member

Yep, this change is indeed binary incompatible and would result in NoSuchMethodErrors at runtime.

@mpilquist mpilquist closed this Jul 5, 2021
@armanbilge
Copy link
Copy Markdown
Member Author

Oh ... this is irrecoverable? Even if so, at least part of this PR was binary-compatible, is that not of interest?

@mpilquist
Copy link
Copy Markdown
Member

Feel free to reopen if you can get bincompat working but I don't see a way to do so.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants