Skip to content

Commit

Permalink
Build: Bump Airstream version
Browse files Browse the repository at this point in the history
  • Loading branch information
raquo committed Jan 15, 2024
1 parent 7a1293b commit 0bf956d
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 1 deletion.
2 changes: 1 addition & 1 deletion project/Versions.scala
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ object Versions {

// -- Dependencies --

val Airstream = "17.0.0-M2"
val Airstream = "17.0.0-M6"

val Ew = "0.2.0"

Expand Down
10 changes: 10 additions & 0 deletions website/blog/2023-12-04-laminar-v17.0.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,16 @@ After some struggles, I've fixed this bug, and the code above now works as expec
To help **migration**, I published Airstream version `17.0.0-M1` that contains this one fix, and nothing else from v17. It is binary compatible with Airstream v16.0.0, so you can add it to your project, and test with it to make sure that it does not break anything, before upgrading to 17.0.0. Note that this is Airstream only, Laminar has no such version. Use `sbt evicted` to make sure that Airstream `17.0.0-M1` is actually selected.


### Fix Transaction Stack Overflow

Airstream's old Transaction code was not stack safe. It is now.

I also added a (configurable) limit to how deep you can nest transactions (`Transaction.maxDepth`). It defaults to 1000, and you should never hit it unless you have an infinite loop of transactions (e.g. two Var-s updating each other with no filter). If you do hit the limit, it will prevent the execution of the offending transaction (thus breaking the loop), report a `TransactionDepthExceeded` error into Airstream's unhandled errors, and proceed with the rest of your code.

**Migration:** no action needed unless you actually run into this error. You may want to check deeply nested or recursive code, but it's unlikely that you're hitting this limit yet don't hit the higher but still finite JS runtime stack depth with Airstream 16.

See [Airstream#115](https://github.com/raquo/Airstream/issues/115) and [Laminar#116](https://github.com/raquo/Laminar/issues/116).


## Smaller Laminar Improvements

Expand Down

0 comments on commit 0bf956d

Please sign in to comment.