Release Notes (1.1.x)
1.1.0-M1
Release notes for Apache Pekko 1.1.0-M1. See GitHub Milestone for fuller list of changes. As with all milestone releases, this release is not recommended for production use - it is designed to allow users to try out the changes in a test environment.
1.0.x changes
Apache Pekko 1.1.0-M1 contains all of the changes that have been released in the 1.0.x releases up to and including v1.0.3-M1.
Bug Fixes
- in TlsActor, flush data to user only after handshake has finished (PR1128)
- proper path when promise actor terminated quickly (PR1156)
- TcpDnsClient cannot recover if registration on TcpConnection times out (PR1183)
- Fix uncaught decider exception in Split with Supervision.resumingDecider (PR1207)
- Pull instead of throw exception in groupBy operator (PR1210)
- Fix ByteIterator indexWhere method (PR1282)
Additional APIs
- Add asInputStream to ByteString (PR1085)
- Add new indexOf functions to ByteString for byte lookups (PR1247)
- Add create method to PFBuilder (PR947)
- Add missing create method to javadsl Graph (PR1230)
The Stream API has been updated to add some extra functions.
- add collectFirst stream operator (PR984)
- add collectWhile stream operator (PR964)
- add dimap stream operator (PR942)
- add flatten stream operator (PR937)
- add flattenMerge stream operator (PR1045)
- add foldWhile stream operator (PR1012)
- add mapAsyncPartitioned / mapAsyncPartitionedUnordered stream operators (PR561, PR676)
- add mapWithResource stream operator (PR931, PR1053)
- add onErrorComplete stream operator (PR913)
- add support for
for
comprehensions (PR935) - add Sink.exists operator (PR990)
- add Sink.forall operator (PR989)
- add Source.iterate operator (PR1244)
- added extra retry operators that allow users to provide a predicate to decide whether to retry based on the exception (PR1269)
The Stream Testkit Java DSL has some extra functions.
- Add more Java DSL functions to StreamTestKit to better match the Scala DSL (PR1186)
- Add expectNextN to StreamTestKit for javadsl (PR962)
Removed
- The pekko-protobuf jar is no longer published. The pekko-protobuf-v3 jar is still published (PR489)
Other Changes
- Scala 2 inline optimizer has been enabled
- Support
fork-join-executor.maximum-pool-size
config (PR485) - Classic Remoting was updated to use Netty 4 instead of Netty 3 (PR643)
- Replace SubstreamCancelStrategy with SupervisionDecider for Split (PR252)
- Support Jackson StreamReadConstraints and StreamWriteConstraints (PR564)
- Support configuration for Jackson Recycler Pool (PR1192)
- pekko-multi-node-testkit was changed to use Netty 4 instead of Netty 3 (PR539)
- add junit5 support to pekko-testkit-typed (PR751)
- Fix maybe throw for MinimalStage (Stream Unfold). (PR822)
- Add dedicated stream timeout exceptions for timeout related operators (PR861)
- Reimplement MapConcat operator without statefulMapConcat. (PR902)
- Make SingleConsumerMultiProducer the default mailbox for stream. (PR917)
- Rework PhiAccrualFailureDetector to enable monitoring of interval. (PR1137)
- Remove the deprecation of statefulMapConcat operator. (PR1147)
- Add AbruptStreamTerminationException as super class of some related exceptions. (PR1201)
- For Pekko Persistence DurableState API, a new DeleteRevisionException has been added and the aim is to have implementations fail with that exception if a deleteObject does not delete exactly one record for that revision. (PR1271)
- Some performance changes in the Stream code (PR48, PR49, PR278, PR363, PR408, PR872, PR923, PR983, PR1001, PR1027, PR1249, PR1250)
Dependency Changes
Most of the dependency changes are small patch level upgrades. Some exceptions include:
- The protobuf-java code that is shaded and released as pekko-protobuf-v3 has been upgraded to protobuf-java 3.25.3
- slf4j was updated to v2 (PR748)
- upgrade from netty 3 to netty 4 (pekko-remote and pekko-multi-node-testkit)
- Jackson 2.17.1
Known Issues
- For Scala 2.12 users, we have run into an issue with stream-testkit function
expectNextWithTimeoutPF
(#1393).- For now, the consensus is not to change this as it appears to be more of a Scala 2.12 compiler issue.
- Affected Scala 2.12 users can stick with Pekko 1.0 or change their code to get it to compile. The most reliable code change is to move the PartialFunction code and declare it as a
val
. - If you feel strongly that Apache Pekko should try to fix this, please get in touch.
1.1.0-M1