Minor Release 0.10.0
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