Skip to content

Releases: armanbilge/calico

v0.2.2

04 Dec 22:36
1cbb002
Compare
Choose a tag to compare

This release updates several dependencies, notably domtypes v18.0.0.

Updates

  • Update cats-core, cats-laws to 2.10.0 by @nimble-agar-steward in #287
  • Update scala3-library, ... to 3.3.1 by @nimble-agar-steward in #295
  • Update sbt-scalajs, scalajs-library_2.13, ... to 1.14.0 by @nimble-agar-steward in #305
  • Update cats-effect, cats-effect-testkit to 3.5.2 by @nimble-agar-steward in #307
  • Update scalajs-dom to 2.8.0 by @nimble-agar-steward in #308
  • Update fs2-core to 3.9.3 by @nimble-agar-steward in #322
  • Update http4s-core to 0.23.24 by @nimble-agar-steward in #328
  • Update domtypes to 18.0.0 by @nimble-agar-steward in #332

Full Changelog: v0.2.1...v0.2.2

v0.2.1

27 Jun 02:32
3d1983e
Compare
Choose a tag to compare

This release updates to Scala v3.3.0 LTS and includes some bug fixes.

What's Changed

Fixes

Docs

Updates

  • Update fs2-dom to 0.2.1 by @nimble-agar-steward in #250
  • Update scalajs-dom to 2.6.0 by @nimble-agar-steward in #251
  • Update scala3-library, ... to 3.3.0 by @nimble-agar-steward in #252
  • Update cats-effect to 3.5.1 by @nimble-agar-steward in #258
  • Update sbt-scalajs, scalajs-library_2.13, ... to 1.13.2 by @nimble-agar-steward in #257
  • Update http4s-core to 0.23.21 by @nimble-agar-steward in #256

Full Changelog: v0.2.0...v0.2.1

v0.2.0

13 May 01:19
759ec75
Compare
Choose a tag to compare

This is the first stable release in the Calico v0.2.x series! This new series continues the same look-and-feel as the 0.1.x series while delivering safer, more idiomatic APIs and performance improvements. For more details on these enhancements and a migration guide see the release notes for v0.2.0-M1.

The following is summary of changes since v0.2.0-RC2.

Features

Fixes

Docs

Updates

  • Update domtypes to 17.0.0 by @nimble-agar-steward in #224
  • Update cats-effect, cats-effect-testkit to 3.5.0 by @nimble-agar-steward in #242
  • Update scalajs-dom to 2.5.0 by @nimble-agar-steward in #244
  • Update http4s-core to 0.23.19 by @nimble-agar-steward in #246
  • Update fs2-core to 3.7.0 by @nimble-agar-steward in #243
  • Update fs2-dom to 0.2.0 by @nimble-agar-steward in #247

Full Changelog: v0.2.0-RC2...v0.2.0

v0.2.0-RC2

01 Mar 23:27
000d34c
Compare
Choose a tag to compare

This is the second release candidate of Calico v0.2.0. Unfortunately, this release has a bit more breakage than I might have liked for an RC 😅

In #199, tuples of modifiers became first-class modifiers themselves, which is an overall enhancement and simplification. However, this interacted badly with the existing modifier provided for Foldable, because Cats provides instances of Foldable for tuples, with conflicting, counter-intuitive behavior.

So the generic modifier for Foldable was removed and replaced by instances for List and Option. If you were using that modifier with Seq or Vector, it will no longer compile, and should be changed to List. List is better anyway 😇 if you were using it with some other Foldable type, please open an issue!

Other notable changes:

  • @yurique has published frontroute for Calico ❤️
  • Updates to latest RCs for Cats Effect, FS2, and FS2-DOM.

Thank you to everyone who has been trying the Calico RCs and sharing feedback! Very appreciated 😁

Features

Optimizations

Fixes

Docs

Updates

  • Update domtypes to 17.0.0-M7 by @nimble-agar-steward in #214
  • Update cats-effect, cats-effect-testkit to 3.5.0-RC3 by @nimble-agar-steward in #215
  • Update to FS2 3.7.0-RC2 by @armanbilge in #217
  • Update to fs2-dom 0.2.0-RC3 by @armanbilge in #216

Full Changelog: v0.2.0-RC1...v0.2.0-RC2

v0.2.0-RC1

16 Feb 19:57
559745b
Compare
Choose a tag to compare

This is the first release candidate of Calico v0.2.0. It updates to Cats Effect v3.5.0-RC1 which includes a new runtime for JS. This enabled some usability and performance enhancements that are described in the updated documentation for task scheduling and rendering.

If all goes well, this release candidate will become v0.2.0 final when Cats Effect v3.5.0 final is released.

I am also happy to announce that Calico is now a Typelevel affiliate project! 🎉

What's Changed

Docs

Full Changelog: v0.2.0-M4...v0.2.0-RC1

v0.2.0-M4

08 Feb 19:10
e2bbd91
Compare
Choose a tag to compare

This is the fourth milestone release of Calico v0.2.0. It updates to FS2 3.6.0 which upstreamed the Signal#changes method and includes other Signal-related performance improvements.

What's Changed

  • Update fs2-core to 3.6.0 by @nimble-agar-steward in #184
  • Update fs2-dom to 0.2.0-M4 by @nimble-agar-steward in #185
  • Fix inference for Signal modifiers by @armanbilge in #183

Full Changelog: v0.2.0-M3...v0.2.0-M4

v0.2.0-M3

07 Feb 10:16
fbf0ae4
Compare
Choose a tag to compare

This is the third milestone release of Calico v0.2.0. It upgrades to fs2-dom v0.2.0-M3 which introduces the Window[IO] wrapper that provides access to many useful browser APIs. This is now exposed as window in IOWebApp and is used by Router.

What's Changed

  • Make Html a class by @armanbilge in #178
  • Update cats-effect, cats-effect-testkit to 3.4.6 by @nimble-agar-steward in #181
  • Update fs2-dom to 0.2.0-M3 by @nimble-agar-steward in #177

Full Changelog: v0.2.0-M2...v0.2.0-M3

v0.2.0-M2

30 Jan 19:44
63d5d5f
Compare
Choose a tag to compare

This is the second milestone release of Calico v0.2.0. It brings one important, breaking change: events are now modeled by the new fs2.dom.Event[F] classes, which replicate the DOM event hierarchy, but properly suspend side-effects in F[_].

Enhancements

Docs

  • Prepare site for 0.2.x series and publish from main by @armanbilge in #165

Updates

  • Update domtypes to 17.0.0-M5 by @nimble-agar-steward in #170
  • Update sbt-scalajs, scalajs-library_2.13, ... to 1.13.0 by @nimble-agar-steward in #166
  • Update fs2-dom to 0.2.0-M2 by @nimble-agar-steward in #174
  • Update scala3-library, ... to 3.2.2 by @nimble-agar-steward in #175

Full Changelog: v0.2.0-M1...v0.2.0-M2

v0.2.0-M1

25 Jan 19:46
2eb6389
Compare
Choose a tag to compare

I am excited to release the first milestone of Calico v0.2.0! This new series continues the same look-and-feel as the 0.1.x series while delivering safer, more idiomatic APIs and performance improvements.

  1. Preferring Signal instead of Stream for rendering dynamic content e.g. via <--. A Stream can always become a Signal by providing an initial value (or None); see the FS2 Stream#hold APIs. The presence of that initial value—indeed, the notion there is always a current value—is important for both correctness and performance.

  2. Offering a more idiomatic Cats Effect-style API, with the option for tagless final. We are in the process of wrapping all unsafe JS APIs (e.g. HTMLElement and friends) with safe, Cats Effect-based versions in the FS2 DOM project. You may use these via the DSL directly with IO, or in tagless final style with the new Html typeclass.

  3. Updating to Scala Dom Types v17.0.0. It is no longer a runtime dependency; we are now 100% generating our own customized sources for HTML tags, attributes, and properties! Thanks to @2chilled for leading this effort.

  4. Performance enhancements, by strategically scheduling non-rendering-related work after rendering. This will also build on the new JS runtime developed in typelevel/cats-effect#3225 for the upcoming Cats Effect 3.5.0.

I expect development from this point to be "mostly stable". The remaining breaking changes will be the continued effort to provide safe Cats Effect wrappers for unsafe JS APIs (notably, Event and friends).

Otherwise, this milestone is fully functional and already a marked improvement over the 0.1.x series. So I strongly encourage its use, and consider the 0.1.x series to be EOL.

To migrate from Calico 0.1.x:

  1. Replace import calico.dsl.io.* with import calico.html.io.{*, given}
  2. Replace instances of <-- stream with <-- stream.holdResource(initialValue). Or .holdOptionResource or .hold1Resource, depending on the semantics you want.

User-facing PRs

New Contributors

Full Changelog: v0.1.2...v0.2.0-M1

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