-
Notifications
You must be signed in to change notification settings - Fork 46
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore(deps): update dependency co.fs2:fs2-io to v3 #3963
Conversation
b236f45
to
b4a7cd6
Compare
7c7372b
to
20a15d3
Compare
Hold on until #3886 is completed. |
Okay, #3886 now merged. Ready for you to proceed @PenghaiZhang |
The problem is the dependency conflicts caused by We're using |
Yes, after I updated |
20a15d3
to
fca4f30
Compare
Cats-effect 3 has lots of breaking changes (it basically re-implements the whole
|
#3905 is now merged so we can close this one. |
fca4f30
to
1774db8
Compare
It does seem like maybe we do leave this as an incremental thing - i.e. option 3 above (get both on latest v2 versions) - and move to three next year... But I just want to have a quick look at current usage first. |
@PenghaiZhang would you be able to cast your eye over #3324 and confirm it's still current/up to date. Because if needs be, we may end up closing this PR and using that to track next steps. |
I can confirm that #3324 must be sorted before we upgrade fs2 to v3. |
Okay, will close this in favour of tracking with #3324 and hopefully addressing in a future tech-debt push. |
Renovate Ignore NotificationBecause you closed this PR without merging, Renovate will ignore this update. You will not get PRs for any future If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR. |
This PR contains the following updates:
2.5.10
->3.2.7
Release Notes
typelevel/fs2
v3.2.7
Compare Source
Bug Fixes
Full Changelog: typelevel/fs2@v3.2.6...v3.2.7
v3.2.6
Compare Source
NOTICE: DO NOT USE
A
NullPointerException
has been reported for this version. We recommend you avoid using this version and upgrade to next one.Changes in the release
New Features
Stream#parEvalMapUnbounded
by @bplommer in https://github.com/typelevel/fs2/pull/2849Channel#trySend
by @armanbilge in https://github.com/typelevel/fs2/pull/2768Bug Fixes
Chunk
<-> JSUint8Array
conversion should respect offset/length by @armanbilge in https://github.com/typelevel/fs2/pull/2862Refactoring
tlJdkRelease := 8
for all modules butio
by @armanbilge in https://github.com/typelevel/fs2/pull/2846Upgrades
New Contributors
Full Changelog: typelevel/fs2@v3.2.5...v3.2.6
v3.2.5
Compare Source
New Features
userHome
,currentWorkingDirectory
toFiles
API by @armanbilge in https://github.com/typelevel/fs2/pull/2789Bug Fixes
pauseWhen
by @SystemFw in https://github.com/typelevel/fs2/pull/2813parEvalMap
,parEvalMapUnordered
by @armanbilge in https://github.com/typelevel/fs2/pull/2826Tech Debt
CrossVersion.for3Use2_13
by @xuwei-k in https://github.com/typelevel/fs2/pull/2793covary
by @bplommer in https://github.com/typelevel/fs2/pull/2798fs2.Pure
by @bplommer in https://github.com/typelevel/fs2/pull/2811Upgrades
Full Changelog: typelevel/fs2@v3.2.4...v3.2.5
v3.2.4
Compare Source
Improvements
text.lines
enhancements by @stephenjudkins in https://github.com/typelevel/fs2/pull/2758Bugfixes
text.lines
consistently with other delimiters by @stephenjudkins in https://github.com/typelevel/fs2/pull/2764Build
Upgrades
Full Changelog: typelevel/fs2@v3.2.3...v3.2.4
v3.2.3
Compare Source
New Features
TLSSocket#applicationProtocol
on JS by @armanbilge in https://github.com/typelevel/fs2/pull/2741io.readClassResource
andio.readClassLoaderResource
by @armanbilge in https://github.com/typelevel/fs2/pull/2733Bug Fixes
Docs
broadcastThrough
documentation by @diesalbla in https://github.com/typelevel/fs2/pull/2621Build & Upgrades
TestControl
in tests by @danicheg in https://github.com/typelevel/fs2/pull/2651New Contributors
Full Changelog: typelevel/fs2@v3.2.2...v3.2.3
v3.2.2
Compare Source
What's Changed
spaced
function, similar tometered
but waiting by @eugeniasimich in https://github.com/typelevel/fs2/pull/2684New Contributors
Full Changelog: typelevel/fs2@v3.2.1...v3.2.2
v3.2.1
What's Changed
Full Changelog: typelevel/fs2@v3.2.0...v3.2.1
v3.2.0
Compare Source
FS2 3.2.0 supports Scala 2.12, 2.13, and 3.1 and Cats Effect 3.
This release features the incorporation of scodec-stream and codec-protocols in to fs2 proper.
fs2.Scan
type for building compositional, pure, stateful transformations.fs2.timeseries
package for working with time stamped streams.fs2.interop.scodec
package, definingStreamDecoder
andStreamEncoder
Checkout the time series and scodec sections of the guide for more information.
What's Changed
fs2.io.net.UnknownHostException
by @armanbilge in https://github.com/typelevel/fs2/pull/2687Full Changelog: typelevel/fs2@v3.1.6...v3.2.0
v3.1.6
Compare Source
What's Changed
New Contributors
Full Changelog: typelevel/fs2@v3.1.5...v3.1.6
v3.1.5
Compare Source
What's Changed
Full Changelog: typelevel/fs2@v3.1.4...v3.1.5
v3.1.4
Compare Source
Supports Cats Effect 3 and built for Scala 2.12, 2.13, and 3 final.
FS2 3.1.4 is a bug fix release focused on performance.
What's Changed
Chunk.Queue
amortized logarithmic time by @mpilquist in https://github.com/typelevel/fs2/pull/2631PipedStreamBuffer
circular copying overflow fix by @vasilmkd in https://github.com/typelevel/fs2/pull/2638fs2.compression.checksum
by @armanbilge in https://github.com/typelevel/fs2/pull/2606Stream#concurrently
for short-circuiting monad transformers by @vasilmkd in https://github.com/typelevel/fs2/pull/2652fs2.io.compression
by @armanbilge in https://github.com/typelevel/fs2/pull/2658readReadable
API by @armanbilge in https://github.com/typelevel/fs2/pull/2663New Contributors
Full Changelog: typelevel/fs2@v3.1.3...v3.1.4
v3.1.3
Compare Source
Supports Cats Effect 3 and built for Scala 2.12, 2.13, and 3 final.
FS2 3.1.3 is a bug fix release focused on performance.
Bugfixes:
translate
(#2614)UnixSockets
class path detection logic (#2624)Improvements:
Chunk.Queue
amortized logarithmic time (#2631)parEvalMapUnordered
(#2626)Files#realPath
(#2622)groupWithin
(#2619)parJoin
to work with transformers (#2563)Acknowledgments
v3.1.2
Compare Source
Supports Cats Effect 3 and built for Scala 2.12, 2.13, and 3 final.
FS2 3.1.2 is a bug fix release which addresses a couple of memory leaks in certain types of streams.
Improvements:
parJoin
is used withmerge
(#2602)fs2.io.ClosedChannelException
(#2582)parEvalMap
with max concurrency of 1 (#2577)Acknowledgments
v3.1.1
Supports Cats Effect 3 and built for Scala 2.12, 2.13, and 3 final.
FS2 3.1.1 is a bug fix release which addresses a memory leak in
map
on certain types of streams.Improvements:
map
(#2568 #2572)parJoin
(#2557)Acknowledgments
v3.1.0
Compare Source
Supports Cats Effect 3 and built for Scala 2.12, 2.13, and 3 final.
FS2 3.1.0 features new support for Node.js in the fs2-io module, including cross platform APIs for TCP, UDP, TLS, and file management. The
fs2.io.file
package has been substantially revamped, removing all dependencies on Java APIs, providing a much nicer experience (though binary compatibility with 3.0.x is provided). The biggest change is the introduction offs2.io.file.Path
as an alternative forjava.nio.file.Path
-- the former has an idiomatic Scala API and works on both the JVM and Node.js. See the Files section of the microsite for some examples.Features:
fs2.io.net
to build for Node.js and JVM (#2453)fs2.io.file
package to build for Node.js and JVM and remove dependencies on Java APIs (#2519)unchunks
as the inverse ofchunks
(#2506)Improvements:
Stream.fromQueueUnterminated
andStream.fromQueueNoneTerminated
by @jordiolivares (#2521)Monoid[Chunk]
instance (#2470)text.hex.{encode, decode}
(#2477)Acknowledgments
Special thanks to @armanbilge who implemented all of the Node.js support in fs2-io as well as in a number of downstream libraries!
v3.0.6
Compare Source
Supports Cats Effect 3 and built for Scala 2.12, 2.13, and 3 final.
Fixes:
readOutputStream
(#2459)Improvements:
Pull.sleep
(#2456)Acknowledgments
v3.0.5
Compare Source
Supports Cats Effect 3 and built for Scala 2.12, 2.13, and 3 final.
Fixes:
sliding
that delayed output by a chunk (#2428)TLSContext.insecure
where TLS sessions would fail with NPE (#2431)Improvements:
zipWithAll
(#2452)Acknowledgments
v3.0.4
Compare Source
Supports Cats Effect 3 and built for Scala 2.12, 2.13, and 3 final.
Fixes:
Channel
which also impactedmerge
and other concurrent combinators (#2408)Acknowledgments
v3.0.3
Compare Source
Supports Cats Effect 3 and built for Scala 2.12, 2.13, and 3 final.
Fixes:
Stream#map
(#2394)fixedRate
and derived operations where dampening was not working (#2386)ClassCastException
inChunk
(#2380)New Features:
fs2.io.net.unixsocket
package to fs2-io, providing support for working with unix domain sockets. Supports both JEP380 (if running on JDK16+) or JNR (if dependency is added to class path) (#2376)Stream#meteredStartImmediately
(#2369)Pull.loopEither
(#2368)Performance
readOutputStream
to avoid using JDKPiped{Input/Output}Stream
(#2383)Acknowledgments
v3.0.2
Compare Source
Built for Scala 2.12, 2.13, and 3.0.0-RC2/RC3.
Fixes:
Stream#map
(#2354)Documentation:
Acknowledgments
v3.0.0
Compare Source
FS2 3.0.0 is the first official release built for Cats Effect 3, focusing on integration with the new Cats Effect typeclasses and standard library.
Concurrency Support
The biggest API changes to FS2 are in the
fs2.concurrent
package:Queue
(andInspectableQueue
) types are gone in favor ofcats.effect.std.Queue
(#2201)Topic
which no longer requires an initial element and is significantly faster. (#2252)Channel
type -- a multiple producer, single consumer concurrency primitive (#2326)PubSub
type has been removedTimedPull
API which allows simpler implementations of custom pulls that timeout while awaiting elements (#2062)groupWithin
which is significantly faster (#2327)Core Changes
One of the most exciting changes yet least visible changes in FS2 3.0.0 is the new interpreter. Stream compilation and evaluation is now handled by the
Pull
type thanks primarily to the work of @diesalbla. This new interpreter is much easier to work with than the oldFreeC
based implementation.Another notable change to core APIs is that they no longer take
Sync
constraints. Instead, they take the least powerful type class or capability trait possible. For example,Stream.duration
requires aClock[F]
constraint instead ofSync[F]
.No More Blocker
The
cats.effect.Blocker
type was removed in CE 3 -- instead,Sync[F]
supports blocking calls viaSync[F].blocking(thunk)
. As a result, FS2 APIs that took aBlocker
have been simplified and in some cases, operations have been combined (e.g.,lines
&linesAsync
have been combined to justlines
).Sinks
The deprecated
Sink
trait has finally been removed and we now represent sinks via a stream transformation that discards all output values --Stream[F, O] => Stream[F, Nothing]
akaPipe[F, O, Nothing]
. This is different than the old definition ofSink
which emitted an undefined number ofUnit
values -- and as a result of the behavior being undefined, implementations varied widely. Implementations included emitting:There are a few ergonomic improvements related to the new encoding of sinks:
Stream.exec(IO.println(...))
-Stream.exec
takes anF[Unit]
and returns aStream[F, Nothing]
Stream(1, 2, 3).foreach(IO.println)
- Theforeach
method onStream
takes aO => F[Unit]
and returns aStream[F, Nothing]
s.unitary
- Theunitary
method onStream
converts aStream[F, Nothing]
to aStream[F, Unit]
which emits a single unit at termination ofs
flatMap
on aStream[F, Nothing]
no longer compiles, which avoids mistakes that result in unexpected behavior.Capability Traits
The fs2-io project provides support for working with files and networks, abstracting the Java NIO APIs. The implementations require either
Async[F]
orSync[F]
depending on whether the underlying NIO API is non-blocking or blocking.One of the main features of CE3 is the position of the
Sync
andAsync
type classes in the hierarchy. As the most powerful type classes, they are now firmly at the bottom of the hierarchy. To avoid requiringSync
/Async
constraints in code that uses fs2-io, we are adding capability traits -- traits which limit the capabilities of an effect to a discrete set of operations. The newfs2.io.file.Files[F]
capability trait provides the ability to work with files in the effectF
. For example:The
readAllText
method takes aFiles[F]
capability instead of anAsync[F]
, providing better parametric reasoning.FS2 ships with some other capability traits:
fs2.io.net.Network
-- revamped support for TCP, UDP, and TLS, built on Java NIO and ip4sfs2.compression.Compression
-- support for deflate and gzipStream Compilation
Streams are converted to effects via expressions like
s.compile.toList
ands.compile.drain
. Callings.compile
on aStream[F, O]
requires an implicitCompiler[F, X]
(whereX
is chosen based on the type of compilation requested).In FS2 2.x, getting a
Compiler[F, X]
instance for the effectF
generally required aSync[F]
(this is not true for thePure
andFallible
effects but is otherwise accurate). In FS2 3, compilation now only requires aConcurrent[F]
. If aConcurrent[F]
is not available, then compilation falls back to using aSync[F]
-- this allows stream compilation for effects likeSyncIO
which do not have aConcurrent
instance.In a polymorphic context, compilation is supported by either adding a
Concurrent[F]
constraint, or if compilation of non-concurrent effects is needed as well, aCompiler.Target
constraint:Acknowledgements
FS2 3.0.0 has been in the making for over a year and is the work of many individuals. Thanks to everyone who has contributed ideas, discussions, pull requests, etc.
v2.5.11
Compare Source
Supports Cats Effect 2 and built for Scala 2.12, 2.13, and 3 final.
What's Changed
Full Changelog: typelevel/fs2@v2.5.10...v2.5.11
Configuration
📅 Schedule: At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by WhiteSource Renovate. View repository job log here.