Releases: arrow-kt/arrow
Release 0.7.2
Change Log
0.7.2 (2018-05-29)
Noteworthy changes:
-
Katalyst, the leading recursion schemes library in Kotlin is now part of the Arrow family and published under
arrow-recursion
. #831 (aedans) -
Arrow now supports
ForDataType syntax { ... }
syntax blocks where the data type instances are exposed and available asthis
in the block. #811 (raulraja) -
A brand new optics DSL makes changing immutable structure easier than ever. #825 (nomisRev)
-
MaybeK
has been added to the list of supported Rx2 data types providing support for theEffect
hierarchy of type classes. #862 (JorgeCastilloPrz)
Implemented enhancements:
- [Docs] Enable HTTPS #731
- [arrow-core] Make param names more dev friendly #853 (aballano)
- Renzu missing instances and simplifying the tree #822 (JorgeCastilloPrz)
- Add a
sequence
function to all datatypes that supportedtraverse
, instead of needing to use a typeclass to access it (pakoito)
Fixed bugs:
- Directory with source code must have name "arrow" or Renzu will fail #824
- Fix combination of
Option
. CombiningSome
withNone
used to incorrectly yieldNone
. Now it returnsSome
as it should #832
Closed issues:
- Add RxJava Maybe wrapper #860
- Add RxJava Single wrapper #856
- Constructor functions for Show to use receiver function #830
- Add State video #828
- Directory with source code must be name "arrow #823
- [v0.7.0] arrow.syntax.tuples.plus operator fun no more available in version 0.7.0 #815
- Add Kleisli video #809
- Infix
then
function #799 - Links to typeclasses in kotlinx.coroutines docs doesn't work #798
- Codecov is broken #632
- Error message autofold #462
Merged pull requests:
- Release 0.7.2 #864 (raulraja)
- Add MaybeK wrapper for RxJava Maybe #862 (JorgeCastilloPrz)
- Add some clarifications of For- being reused in both Syntax and Witness #861 (pakoito)
- Add a note about a convention on the instance annotation processor #858 (pakoito)
- Add SingleK wrapper for RxJava Single #857 (JorgeCastilloPrz)
- Optics compiler warning & instance fixes #851 (nomisRev)
- Add ApplicativeError example to Validated docs #847 (raulraja)
- EitherT video #846 (israelperezglez)
- Minor typo fix #843 (bdavisx)
- Bump Λnk dependencies to 0.7.1 #842 (Guardiola31337)
- EitherT: add .value() #837 (istonikula)
- Show constructor to use receiver type to enable object property access #835 (ersin-ertan)
- DocsFix: Functor extension method type #833 (ersin-ertan)
- Fix option monoid #832 (pakoito)
- Add Katalyst Core #831 (aedans)
- State video #829 (israelperezglez)
- Fix #824 #827 (jereksel)
- Add generated files to sources jar #826 (jereksel)
- Optics as extension on Companion #825 (nomisRev)
- Update kotlin-metadata library #821 (Takhion)
- Update Kotlin to 1.2.41 #820 (jereksel)
- Add "plus" methods for Tuples #818 (jereksel)
- Format functor #817 (pakoito)
- Remove references to bindAsync #816 (pakoito)
- [Renzu processor] UML generation for Typeclass + Instances info graph #812 (JorgeCastilloPrz)
- Direct type class
syntax
over concrete data types #811 (raulraja) - Kleisli video #810 (israelperezglez)
- Add error message to autofold #806 (nomisRev)
- Add a basic description of the Effect typeclass #805 (pakoito)
- Update README.md #804 (juancazalla)
- Improve Optics DSL with support for sum types and enable Each/At #803 (nomisRev)
- Fix links in docs #800 (jereksel)
- Add Introduction to Kotlin Arrow by Jacob Bass #796 (pakoito)
- Generate isos up to arity 22 #794 (nomisRev)
- Fix parameter order in extension functions in arrow-instances-core #793 (pakoito)
- Adds
1/n - How do I ... in FP : Validation
to list of blogs and examples #792 (raulraja) - Moar badges! #791 (wiyarmir)
- Fix Kotlin version in badge #790 (jereksel)
- Rewrite OpticsProcessor and write some tests for transforming #788 (jereksel)
- Reconcilliate READMEs #787 (pakoito)
- WIP Next dev iteration
0.7.2-SNAPSHOT
#785 (raulraja) - Fix codecov and speed up tests #783 (jereksel)
Release 0.7.1
Fixes @deriving
and releases 0.7.1 #784
Release 0.7.0
Noteworthy since 0.6.1
Paco Estevez : @pakoito
* [29384ab] Rename all Kinds, Witnesses, and typealiases
* [24f03d5] Remove remaining instances of reified
* [1456596] Refactor all typeclasses to use Typeclassless encoding
* [bdee8cb] sigh
* [7b942bd] Refactor all the codebase to have any typeclass dependency as first parameter
* [0930083] Rename pure to just
* [687b296] Split arrow-instances between core and data. Free now only depends on core.
* [a94dc2d] Add alias for platfom-dependent collections
* [7f62399] Add instances for Boolean.
* [d8977fd] Rename MonadSuspend to MonadDefer
* [27d372f] Add docs for dependency_injection
* [843179b] Fix all broken links in list of typeclasses/intro
* [66d9695] Improve typeclass/intro and glossary
* [7f62399] Add doc for platform types with instances.
Simon Vergauwen : @nomisRev
* [9181bae] Add At typeclass and instances
* [fd5a4df] Add Optional law tests for optic conversion
* [e1ae53b] Add Missing map optic
* [911a128] Add Getter test for optic conversion
* [1f01585] Add Iso law test for optic conversion
* [58e2dcd] Add Lens law test for optic conversion
* [9745952] Add Prism law test for optic conversion
* [74bc110] Add Setter law test for optic conversion
* [c3e1d26] Add Traversal law test for optic conversion
* [2615849] Complete map instance test and removed unlawfull map to
list iso
* [fe6bd9b] Add At instances for java_util
* [1b7aa81] Add Each instances for java_util
* [28a777c] Add FilterIndex instances for java_util
* [66936c1] Add Index instances for java_util
* [85fd877] Kind for PIso
* [1ed790e] Kind for PLens
* [a44b96d] Kind for PPrism
* [2a10efb] Kind for POptional
* [aefaf94] Kind for Setter
* [e665906] Kind for PTraversal
* [fe2b4a3] Kind for Getter
* [46cc1f4] Kind for Fold
* [c59876d] Move all optic generation to a single annotation
* [168c7e4] Move optics annotation to optics package and rename
@optic to @Optics
* [a632a67] Move bound to optics module
* [0b6948b] Add KDoc to BoundSetter
* [88d6905] Rename bound to BoundSetter
* [abdff51] Improve generation of Lens
and Optional
of nullable
and Option
types.
* [99920fe] Correction Setter KDoc
* [ec89e59] Docs for syntax DSL
* [e787f26] Compile generated optics in docs.
* [7963979] Move all optic generation to a single annotation
* [b71357e] Move optics annotation to optics package and rename
@optic to @Optics
* [9e57cc8] Move bound to optics module
* [c6cde81] Add KDoc to BoundSetter
* [a969a63] Rename bound to BoundSetter
* [85f3c9a] Improve generation of Lens
and Optional
of nullable
and Option
types.
* [f0a2133] Docs for syntax DSL
Raul Raja : @raulraja
* [f5e4950] arrow-dagger
enables compile time type class instances
resolution
* [11219c8] Group modules into folders for a more semantic
organization
* [db90b80] Dagger modules for effects, rx2 and coroutines exposing
effects instances
* [64ba325] Deriving Semigroup, Monoid, Eq, Order and Show for
products based on TupleN arities
* [b299e45] First iteration of Arrow Generic featuring @Product
http://arrow-kt.io/docs/generic/product/
* [1d3be3e] Extract utility methods in processor to ProcessorUtils
* [a12c765] Add companion object to all tupleN arities
* [7fd063c] semigroup +
syntax
* [b261d1d] Const refactoring Removes free
dependencies on optics
and mtl
.
* [3ff60bf] Moves Try
to arrow-core
since it's a popular used
data type along with other core ones like Option
reducing the need
for users to depend on arrow-data
* [87d0159] Nel docs and ank fixes
Cotel : @Cotel
* [4ddb475] Show typeclass and instances
Israel : @israelperezglez
* [b1de905] Either video
* [ea9fb37] Site improvements
* [1d17e07] Try video
* [efcdd16] NonEmptyList video
* [03eb42f] Validated video
* [0048024] Kinds video
* [6c7cd57] Id video
* [c4f3c9f] ListK video
* [1f378b0] Eval video
* [f1a5448] OptionT video
* [9f2b35e] Setk video
Andrzej Ressel : @jereksel
* [c80b076] Tests for annotation processor
* [af35d26] Clean .gitignore and fix tests
* [3541590] Annotation processor for [at]bounded
aedans : @aedans
* [834e561] Add Tuple2 instances
Guardiola31337 : @Guardiola31337
* [9e4ced8] Remove ank modules from arrow repo
* [481fd6a] Fix ank dep issue using timestamped snapshot versions for
ank-core and ank-gradle-plugin
* [fbd1229] Enable docs after fixing ank with arrow 0.7.0 changes
* [f192366] Fix arrow instances artifact ids adding core and data
suffixes
* [d01abf3] Bump ank dependency which now includes latest 0.7 syntax
changes and unblocks docs generation
AdrianRaFo : @AdrianRaFo
* [3affffe] Map docs
* [eac1ddb] Kleisli docs
* [6e6ac9a] Ap docs
Juan Valencia Calvellido : @calvellido
* [ef29b92] Linkify doc sections headers * This is done through JS
* [56de320] Add code highlighting also to list elements
* [755477e] Small edition to Nel docs to adapt to current general
docs stylings
* [820383c] Standardize all “Available Instances” data types sections
* [94718ce] Add implemented data types lists for all type classes
* [e0ea999] Fix link destination typo in Datatypes intro
* [5fdfecc] Add Id video
Mohit : @msya
* [e5cc22a] Update links to Lens and Iso data types
* [ea736dd] Add API version and meetup name
Daniele Campogiani : @dcampogiani
* [981ae21] Add Android Functional Validation to docs
Radimir Sorokin : @qradimir
* [b9d9871] BoundSetter class
Ricardo Meneghin Filho :
* [058af92] changes Left and Right field-backed properties isRight
and isLeft to function-only backed ones
Alf Kristian Stoyle : @stoyle
* [a49eae6] Allow exception to propagate from fold Success f
Jason Bennett : @jasonab
* [f6181eb] Update README.md
Jorge Castillo : @JorgeCastilloPrz
* [c99e3aa] upgrade kotlin and kotlinx.coroutines
Kaden Thomas : @tkaden4
* [9ac6980] Fix typo in MonadError docs
Mario Arias : @MarioArias
* [f44fb88] fix toPartialFunction implementation
Matthias Lüneberg : @matsluni
* [800a327] Update Readme.md
Pablo Gonzalez Alonso : @pablisco
* [8456246] Reverted problematic merge of the weak type
Robert Stoll : @robstoll
* [caa4e86] simplify settings.gradle by tutteli's settings plugin
itua :
* [664c9a6] Doc for SetK
Release 0.6.1
Noteworthy in this release:
- New optics
Index
andFilteredIndex
. Thank you @nomisRev - Update Option.forall to return true on None. Thanks @benfleis!
- Add Either.getOrHandle. Cheers @sbuettner
Eval
is stack safe and more performant now. Great job by @aedans- New datatype
Weak
by @pablisco. <3 you man :D - Better build errors in Java9 and JRE by @christophsturm. Awesome find!
- Deprecate
yields
inbinding
comprehensions, you can now return any value
A big thanks to all the contributors to the docs, especially those who did it for their first time!
Contributions:
-
Andrzej Ressel (12):
-@optional
annotation and converters -
Christoph Sturm (1):
- improve error message on incompatible jdk version -
Guardiola31337 (3):
- Fixes to README docs -
Israel (11):
- Website improvements and video enabled tutorials -
Juan Valencia Calvellido (6):
- Website improvements and video enabled tutorials -
Mike Kobit (5):
- Build improvements andrepl
task that opens a REPL with Arrow in its classpath -
Pablisco (2):
- Weak data type and docs -
Pratik Chaudhary (2):
- Option doc improvements -
Simon Buettner (2):
- getOrHandle extension -
Simon Vergauwen (26):
- Optic law fixes and `FilterIndex -
aedans (2):
- Compute -> FlatMap and Call -> Defer
- Improve Eval stack safety -
ben fleis (1):
- update Option.forall to return true on None (ie, empty) -
pakoito (20):
- Docs, Effects and binding improvements that deprecateyields
Release 0.6.0
- Merged funKtionale and kategory as arrow (release 0.5.X)
- Fix compatibility issue with Kotlin 1.2
- Refactored the effects package:
- Three typeclasses: MonadSuspend, Async, and Effect
- First pass, improvements coming
- Refactored comprehensions:
- Renamed bindingE to bindingCatch
- Renamed bindingECancellable to bindingCancellable
- Moved bindingCancellable to MonadSuspend
- bindAsync is now only available on bindingCancellable
- Removed bindInM due to its gotchas with suspended types
- Add bindDefer, bindDeferIn to bindingCancellable. They suspended a block to be executed lazily on the current CoroutineContext, or the one passed as a parameter
- New documentation
Release 0.4.0
- Update to Kotlin 1.2 and Gradle 4.3
- Lots of documentation added to the official site!
Additions
- New integration module: kategory-kotlinx-coroutines
- Add bindInM to monad comprehensions
- Add integration with KindedJ
- Add new wrapper for SortedMap #451
- Add new annotation @autofold to generate Fold lenses for sealed classes #448
- Typealias for multiple datatypes, i.e. Either.Left becomes Left #442
- MonadFilter can now provide comprehension guards #441
Fixes
- Refactor IO, Kleisli, Reader, ReaderT
- Redo the StateT API
- Removed all @JvmStatic occurrences as they caused issues with proguard
- Fix Yoneda and Coyoneda to have invoke operators instead of the old apply functions
Release 0.3.11
- Instances for Eval
- Iso instances
- Improved kategory processor (Iso, higherkind & instance)
- Eq instances
- Validated fixes
- Corrected Semigroup & Monoid API
Release 0.3.10
- Fixed a problem on Typeclass instance retrieval system causing Android apps to crash. (It was using a method just present on JDK 8).
Release 0.3.9
TODO
Release 0.3.8
Kategory 0.3.8
Added
- New RxJava2 compatibility module
- New Optics module
- Effects: TraverseFilter, Bifoldable, Alternative, MonadCombine
Changed
- Merged the annotation processor into the main repo
- New typeclass lookup algorithm that works for any arity
Removed
- No more dependency on JVM library kotlinx.coroutines for effects
Fixed
- Artifact upload generated with incorrect naming
Full list of merged PRs
- #250 Remove dependency on kotlinx.coroutines for effects [by @pakoito]
- #104 Add all Composed instances
- #160 Add test-global registry of law tests that removes duplicates
- #191
kategory-docs
module and proposed layout includingFunctor
andApplicative
[by @raulraja] - #207 Wrapper and instances for
Sequence
- #226 Add MonadFilter [by @JorgeCastilloPrz]
- #233 Add kategory-effects-rx2 [by @pakoito]
- #234 Improve Jobs [by @pakoito]
- #236 Add ApplicativeError laws [by @pakoito]
- #237 Recursion schemes [by @pakoito]
- #238 MonadError instance for Option
- #241 Add wrapper and instances for Sequence [by @pt2121, @pakoito]
- #242 Add MonadFilter [by @JorgeCastilloPrz]
- #247 Add wrapper class for Set [by @victorg1991, @pakoito]
- #248 Add MonadCombine [by @JorgeCastilloPrz]
- #249 Add Alternative [by @JorgeCastilloPrz]
- #110 Add katz-rx module
- #251 Optics module with initial lens impl [by @nomisRev]
- #253 Add TraverseFilter [by @tonilopezmr]
- #255 Add TraverseFilter [by @tonilopezmr, @pakoito]
- #256 Add Alternative [by @JorgeCastilloPrz]
- #257 Add Bifoldable [by @JorgeCastilloPrz]
- #258 Initial prism impl [by @nomisRev, @raulraja]
- #259 Bring
kategory-annotations
to thekategory
repo [by @raulraja] - #260 Add all possible implicit objects to manual instances
- #261 Add Alternative, Bifoldable, and MonadCombine [by @JorgeCastilloPrz, @raulraja]
- #262 Move SetKW files to the correct folder [by @victorg1991, @pakoito]
- #263 Update kotlin-metadata library from 1.1.0 to 1.2.0 [by @Takhion, @raulraja]
- #264 Typeclasses implicit objects [by @raulraja]
- #266 Alias for applicative builders for Try and other evaluation-based datatypes [by @anstaendig, @pakoito]
- #267 Prism processor [by @nomisRev]
- #270 Iso and iso generation [by @nomisRev]
- #273 Add lacking laws test for monadCombine ListKW instance [by @JorgeCastilloPrz, @raulraja]
- #278 #266: Alias constructors for applicative builders for Try, Eval, IO [by @anstaendig, @pakoito]