Skip to content

Releases: armanbilge/calico

v0.1.2

14 Nov 22:10
dc9f0e2
Compare
Choose a tag to compare

This is the third release in the 0.1.x series of Calico. There are two significant new features:

  • A new calico-router module, to add navigation to your application (i.e. URL-based, support for history forward/back, etc.). Check out the docs/demo.

  • A SignallingSortedMapRef, which is a MapRef implementation where each key is mapped to an FS2 SignallingRef. This enables precise updates and signals on a specific key.

In addition, Calico now has a dependency on fs2-dom, which provides idiomatic wrappers for several standard and useful browser APIs, such as Clipboard and local/session Storage.

The TodoMVC example has been updated to demonstrate each of these things:

  1. Navigating between the all/active/completed views of the todo list is implemented via routing and can be observed in the URL.
  2. The todo list is now stored in a SignallingSortedMapRef. This significantly improved performance and closed #45.
  3. The todo items are now persisted in your brower's local storage. Furthermore, if you have the Todo app open in multiple browser tabs, they will automatically stay in sync!

This will likely be the last 0.1.x release of Calico. I have already started work on Calico v0.2.0 in #107.

The overall feel will stay the same. Briefly, the major changes so far are:

  1. Requiring Signal instead of Stream for rendering dynamic content e.g. via <--. A Stream can always become a Signal by plugging in an initial value, and the presence of that initial value (indeed, the notion there is always a current value) is important for both correctness and performance.
  2. Some API restructuring so that Calico can be used to make effect agnostic components in tagless final style, without requiring Async[F] constraints everywhere.

If you have thoughts or feedback I would like to hear from you! :)

What's Changed

New Contributors

Thank you so much for your contribution! ❤️

Full Changelog: v0.1.1...v0.1.2

v0.1.1

10 May 18:24
1c0752e
Compare
Choose a tag to compare

This is the second release in the 0.1.x series of calico and is binary-compatible with v0.1.0 and published for Scala 3.1+ and Scala.js 1.8+.

This release introduces a new calico-frp module that is cross-compiled for JS and JVM and included by default in calico core. It provides a Monad instance for Signal which you can import like so:

import calico.frp.given

For example, the TodoMVC example uses it to compose the SignallingRef for the selected filter (all/active/completed) with the SignallingRef for the list of todo items.

User-facing PRs

Full Changelog: v0.1.0...v0.1.1

v0.1.0

18 Apr 03:13
822a8d1
Compare
Choose a tag to compare

I'm pleased to announce the first stable release of Calico 🎉 Of course, there is still much work to do, but I feel confident that we can continue to evolve the API backwards-compatibly from here. Yes, that's a "we"! I'm looking to you for your help: please try it out and contribute bug reports, feature requests, and code :)

The milestone that prompted this release was the implementation of the TodoMVC project with Calico. Please check it out at https://armanbilge.github.io/calico/todomvc/