Minor Release 0.10.0
·
165 commits
to master
since this release
Info
The minor release 0.10.0 focuses on several API improvements.
Please find the complete list of changes here.
The API Docs can be found here
Comitters
🎉 MANY THANKS TO ALL COMMITTERS (AND THEIR PATIENCE)! 🎉
- ⭐️ Amy (@amygithub)
- ⭐️ Andreas Gebhardt (@agebhar1)
- ⭐️ Audun Halland (@audunhalland)
- ⭐️ Daniel Dietrich (@danieldietrich)
- ⭐️ Emmanuel Touzery (@emmanueltouzery)
- ⭐️ Erlend Hamnaberg (@hamnis)
- ⭐️ Florian Stefan (@florian-stefan)
- ⭐️ Grzegorz Gałęzowski (@grzesiek-galezowski)
- ⭐️ Igor Konoplyanko (@cauchypeano)
- ⭐️ J. B. Rainsberger (@jbrains)
- ⭐️ James Lorenzen (@jlorenzen)
- ⭐️ Jia Chen (@grievejia)
- ⭐️ Julien Debon (@Sir4ur0n)
- ⭐️ Nándor Előd Fekete (@nfekete)
- ⭐️ Nataliia Privezentseva (@nataliiaprivezentseva)
- ⭐️ Maciej Górski (@mg6maciej)
- ⭐️ Mathias Düsterhöft (@mduesterhoeft)
- ⭐️ Michał Patejko (@miszasty93)
- ⭐️ Michael Ummels (@ummels)
- ⭐️ Mikołaj Fejzer (@mfejzer)
- ⭐️ Nazarii Bardiuk (@nbardiuk)
- ⭐️ Pap Lőrinc (@paplorinc)
- ⭐️ Pascal Schumacher (@PascalSchumacher)
- ⭐️ Peter Buckley (@dx-pbuckley)
- ⭐️ Robert Erdin (@roberterdin)
- ⭐️ Ruslan Sennov (@ruslansennov)
- ⭐️ Sebastian Zarnekow (@szarnekow)
- ⭐️ Sergey Pereverzov (@serp92)
- ⭐️ Stephen Kestle (@skestle)
- ⭐️ Valery (@valery1707)
- ⭐️ Victor Buldakov (@v1ctor)
Note: A few contributions didn't made it into 0.10.0 because of backward incompatibilities.
Changes
Instead of describing all changes in detail, I will provide a list and show some examples.
Beside new features there were also several (internal) improvements not shown here.
Core/API
- Change (internal): Removed internal interface io.vavr.Lambda which was on top of the (Checked)Function type hierarchy. It was not public.
- Feature: For-comprehension supports List, Option, Future, Try
- Feature: Tuple - append(), concat() and hash()
- Feature: CheckedConsumer, CheckedPredicate and CheckedRunnable enhancements
- Feature: PartialFunction now implements Function1
- Feature: Predicates.not()
- Feature: Value: toJavaArray(IntFunction), toTree(Function, Function)
- Deprecation (for removal): API.Map(Tuple2)
- Deprecation (for removal): API.LinkedMap(Tuple2)
- Deprecation (for removal): API.SortedMap(Tuple2)
- Deprecation (for removal): API.SortedMap(Comparator, Tuple2)
- Deprecation (for removal): API.SortedMap(java.util.Map)
- Deprecation (for removal): Value.toLeft()
- Deprecation (for removal): Value.toRight()
- Deprecation (for removal): Value.toValid()
- Deprecation (for removal): Value.toInvalid()
Collections
- Feature: Traversable: forEachWithIndex, reject(Predicate)
- Feature: Iterator/Stream: fill(int, Object)
- Feature: Map/Multimap: reject(BiPredicate), rejectKeys(Predicate), rejectValues(Predicate), keysIterator(), valuesIterator()
- Feature: Map/Seq: asPartialFunction()
- Feature: Seq.rotateLeft, rotateRight, takeRight, takeRightUntil, takeRightWhile
Concurrent
- Change: Future now uses Executor instead of ExecutorService. The executorService() works as before if Future was initialized with an ExecutorService, otherwise it throws. User executor() instead.
- Change: Future DEFAULT_EXECUTOR: ForkJoinPool.commonPool()
- Feature: Future.await(long timeout, TimeUnit unit)
- Feature: Future.isCancelled()
- Feature (experimental): (Experimental) Future.run(Task), Future.run(Executor, Task)
- Deprecation (for removal): Seq/Map/Set withDefault, withDefaultValue
Controls
- Feature: Either.sequence, Either.sequenceRight
- Feature: Either.traverse, Either.traverseRight
- Feature: Either.filterOrElse
- Feature: Either.toValidation
- Feature: Option.traverse
- Feature: Option.fold
- Feature: Try.traverse
- Feature: Try.onFailure
- Feature: Try.fold
- Feature: Try.toValidation
- Feature: Validation.fromTry
- Feature: Validation.traverse
- Deprecation (for removal): Either.left(), Either.right()
- Deprecation (for removal): Either.LeftProjection, Either.RightProjection