The day has come - Vavr 0.11.0 is out, marking the first minor release in several years.
From here on, the focus shifts toward Vavr 1.0.0, starting with a significant Java version bump.
The 0.11.x line will continue to receive bugfixes and maintenance updates, but no new features are planned. Roadmap details can be found here.
Huge thanks to everyone who contributed in any form.
Significant Additions
Lazy For() Comprehension (#3085)
The for-comprehension API has been expanded with lazy, evaluation-friendly signatures that accept functions instead of eagerly-evaluated objects:
Option<Integer> result = API.For(
calculate1(),
(r1) -> calculate2(r1),
(r1, r2) -> calculate3(r1, r2))
.yield((r1, r2, r3) -> r1 + r2 + r3);JSpecify Integration (#3113)
Vavr now integrates JSpecify annotations, enhancing null-safety support in IDEs and modern static analysis tools.
Better Future Cancellation (#3107)
As a result of internal refactoring, cancellation is now possible for Futures that have not yet started execution.
Various API Additions
Either/Validation.cond()Value.mapTo(U)andValue.mapToVoid()Try.toEither(Throwable -> L)
What's Changed
- New feature: Either.cond by @adamkopec in #3061
- New feature: Validation.cond by @adamkopec in #3062
- New feature: For-comprehensions for Eithers and Validations by @adamkopec in #3063
- New feature:
.mapTo(U)and.mapToVoid()for Value by @adamkopec in #3086, #3090 - Lazy For() Comprehension Generator by @pivovarit in #3085
- New feature:
Try.toEither(Throwable -> L)by @adamkopec in #3088 - Fix: Missing javadocs for types in For comprehensions by @adamkopec in #3089
- Fix: Missing javadocs for pattern matching and other components by @adamkopec in #3095
- Fix: flaky tests of set comparison by @lycoris106 in #3104
- Remove Future.Computation and streamline task execution/cancellation by @pivovarit in #3107
- Lazily-evaluated Iterator.unfoldRight by @pivovarit in #3112
- Fix bit indexing in BitSet to use word-relative offsets by @pivovarit in #3116
- JSpecify integration by @pivovarit in #3113
- Javadocs overhaul by @pivovarit in #3125, #3129, #3130, #3110, #3114
- Fix TreeMultimap Java map conversion by @pivovarit in #3132
- ... and many more
New Contributors
- @adamkopec made their first contribution in #3061
- @lycoris106 made their first contribution in #3104
Full Changelog: v0.10.7...v0.11.0
