Skip to content

chore(stream): remove internal FanOut Unzip#2873

Merged
He-Pin merged 1 commit intoapache:mainfrom
He-Pin:issue-2860-remove-internal-unzip
Apr 19, 2026
Merged

chore(stream): remove internal FanOut Unzip#2873
He-Pin merged 1 commit intoapache:mainfrom
He-Pin:issue-2860-remove-internal-unzip

Conversation

@He-Pin
Copy link
Copy Markdown
Member

@He-Pin He-Pin commented Apr 18, 2026

Summary

This is the first small slice for #2860.

It removes the dead internal org.apache.pekko.stream.impl.Unzip implementation from FanOut.scala and adds the matching 2.0.x MiMa exclusions for the deleted binary-visible symbols.

The public Scala/Java DSL Unzip is already GraphStage-based, so this PR only drops the stale internal actor-backed implementation. This cleanup is part of Apache Pekko, which is now Apache licensed.

Motivation

  • make Rewritten more to graphstage #2860 progress in the smallest safe step
  • remove verified dead internal legacy code before larger runtime migrations
  • keep the cleanup independently reviewable and independently releasable

Modification

  • delete the internal impl.Unzip object/class from stream/src/main/scala/org/apache/pekko/stream/impl/FanOut.scala
  • add stream/src/main/mima-filters/2.0.x.backwards.excludes/remove-internal-unzip.excludes

Result

  • the dead internal Unzip path is removed
  • public Unzip behavior remains unchanged
  • this slice stands on its own as a tiny cleanup PR before the larger fanout/TLS work

Validation

  • sbt scalafmtAll
  • sbt "stream/test:compile"
  • sbt "stream/mimaReportBinaryIssues"
  • sbt "stream-tests/testOnly org.apache.pekko.stream.scaladsl.GraphUnzipSpec"

Upstream / references

Motivation:
Public Unzip is already GraphStage-based, while stream.impl.FanOut still carried an unused internal actor-backed Unzip implementation. Keeping that dead code makes issue apache#2860 harder to reason about and still leaves binary-visible legacy symbols behind on the 2.0.x line.

Modification:
Remove the internal impl.Unzip object/class from FanOut.scala and add a 2.0.x MiMa exclude file for the deleted binary-visible symbols.

Result:
The dead internal Unzip cleanup now stands alone as a small, reviewable slice with unchanged public Unzip behavior and green compile/MiMa/spec validation.

References:
apache#2860

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@He-Pin He-Pin marked this pull request as ready for review April 18, 2026 23:25
Copy link
Copy Markdown
Member

@pjfanning pjfanning left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@He-Pin He-Pin merged commit 4973f2e into apache:main Apr 19, 2026
9 checks passed
@He-Pin He-Pin deleted the issue-2860-remove-internal-unzip branch April 19, 2026 08:49
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