Releases: armanbilge/calico
v0.2.3
What's Changed
- Raise helpful error if
IOWebApp
fails to mount by @gmkumar2005 in #346 - improve todo-mvc example by @RoelVanderPaal in #354
- Introduce
apply
syntax for event listeners by @kubukoz in #402
Updates
- Update http4s-dom to 0.2.11 by @nimble-agar-steward in #333
- Update sbt-scalajs, scalajs-library_2.13, ... to 1.17.0 by @nimble-agar-steward in #398
- Update scala3-library, ... to 3.3.4 by @nimble-agar-steward in #397
- Update circe-jawn to 0.14.10 by @nimble-agar-steward in #393
- Update cats-core, cats-laws to 2.12.0 by @nimble-agar-steward in #381
- Update shapeless3-deriving to 3.4.3 by @nimble-agar-steward in #391
- Update fs2-core to 3.11.0 by @nimble-agar-steward in #392
- Update monocle-core, monocle-macro to 3.3.0 by @nimble-agar-steward in #390
- Update cats-effect, cats-effect-testkit to 3.5.7 by @nimble-agar-steward in #411
- Update http4s-core to 0.23.29 by @nimble-agar-steward in #406
New Contributors
- @gmkumar2005 made their first contribution in #346
- @RoelVanderPaal made their first contribution in #354
- @kubukoz made their first contribution in #402
Full Changelog: v0.2.2...v0.2.3
v0.2.2
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
This release updates to Scala v3.3.0 LTS and includes some bug fixes.
What's Changed
Fixes
- Fix
OptionSignalResourceModifier
by @armanbilge in #259
Docs
- Use
toResource
everywhere in docs by @armanbilge in #249
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
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
- Add
modify
syntax by @armanbilge in #222
Fixes
Router#teleport
should usereplaceState
by @armanbilge in #237- Delegate to upstream
Applicative[Signal]
by @armanbilge in #229
Docs
- Fix tick rendering in demo by @armanbilge in #221
- Add demo for
FetchClient
by @armanbilge in #231
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
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
- Add
rel
attribute by @armanbilge in #200 - Add modifier instance for tuple of modifiers by @armanbilge in #199
Optimizations
- Override
getAndDiscreteUpdates
forMonad[Signal]
by @armanbilge in #211
Fixes
- Fix attribute modifiers by @armanbilge in #213
Docs
- Link to frontroute in docs by @armanbilge in #206
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
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
- Update to Cats Effect v3.5.0-RC1 by @armanbilge in #192
- Refresh
SignallingSortedMapRef
by @armanbilge in #195
Docs
- More explicit types in examples by @armanbilge in #190
- Restore Typelevel theming to site by @armanbilge in #191
- Add
Signal
,IOWebApp
docs, reorganize by @armanbilge in #196
Full Changelog: v0.2.0-M4...v0.2.0-RC1
v0.2.0-M4
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
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
aclass
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
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
EventProp
is aFunctor
by @armanbilge in #168Modifier
,Prop
, andHtmlAttr
areContravariant
by @armanbilge in #169- Use
fs2.dom.Event[F]
and friends by @armanbilge in #172
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
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.
-
Preferring
Signal
instead ofStream
for rendering dynamic content e.g. via<--
. AStream
can always become aSignal
by providing an initial value (orNone
); see the FS2Stream#hold
APIs. The presence of that initial value—indeed, the notion there is always a current value—is important for both correctness and performance. -
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 withIO
, or in tagless final style with the newHtml
typeclass. -
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.
-
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:
- Replace
import calico.dsl.io.*
withimport calico.html.io.{*, given}
- Replace instances of
<-- stream
with<-- stream.holdResource(initialValue)
. Or.holdOptionResource
or.hold1Resource
, depending on the semantics you want.
User-facing PRs
- Towards Calico 0.2 by @armanbilge in #107
- Update to Scala Dom Types v17.0.0 by @2chilled in #117
- Add
HtmlTag#withSelf
, restore debounce example by @armanbilge in #155 - Add
Resource
variants of attr+propSignal
-based modifiers by @armanbilge in #158 - Update to fs2-dom v0.2.0-M1 by @armanbilge in #162
- Cleanup syntax by @armanbilge in #164
New Contributors
Full Changelog: v0.1.2...v0.2.0-M1