Skip to main content

Work on more integration

· 2 min read

Once Arrow 2.0 is finally released, a fair question is what are the new goals of the Arrow project. This post outlines some of the future plans of the maintainer team. Having said so, Arrow welcomes any contribution — code or ideas — that fits its goal of being a companion in the Kotlin journey.

Apart from the any needed bugfixes, we aim to improve our integration with the broader Kotlin ecosystem, a line of work we started with the optics module for Compose. One line of work already in progress is better integration with Ktor. We would really appreciate any input on what integrations you miss as Arrow user.

At this point, the arrow-kt organization has more than 50 projects. Of those, only a handful have graduated from a proof-of-concept into part of Arrow. To make this status more clear, the arrow-integrations and SuspendApp projects are now hosted in the main arrow repository. This means that those projects become part of the regular Arrow release schedule, instead of the current model in which some libraries may be outdated for a few weeks. Furthermore, it removes some burden from maintainers, which now only need to care about one single repository.

Speaking of maintainance, in the past weeks we have been paying some of the debt in our build files, that had grown too wild. Technically, we have moved from separate arrow-gradle-config into a convention plug-in withing the same repository. This process has revealed some lack of uniformity between the different projects, especially with respect to supported platforms. From now on, all Arrow libraries support Native targets in tiers 1 and 2, plus Windows + MinGW.

From the point of view of Arrow users, the only visible part of this transition is that the next version of Arrow integration modules and SuspendApp should be 2.1.0, instead of 0.x. Note that no breaking changes are expected, regardless of the major version bump.