Skip to content

Commit

Permalink
Reformat changelog
Browse files Browse the repository at this point in the history
  • Loading branch information
japgolly committed Oct 30, 2018
1 parent d5c4d71 commit 340c2f3
Showing 1 changed file with 46 additions and 42 deletions.
88 changes: 46 additions & 42 deletions doc/changelog/2.3.0.md
Original file line number Diff line number Diff line change
@@ -1,65 +1,69 @@
# 2.3.0

* Changes affecting all `DomZipper` implementations:
### Changes affecting all `DomZipper` implementations:

* Greatly simply the `DomZipper` base abstractions.
* `DomZipper` is now the minimal interface
* `DomZipperBase` is the helper abstract class that most implementations can extend for more out-of-the-box functionality.
* Greatly simply the `DomZipper` base abstractions.
* `DomZipper` is now the minimal interface
* `DomZipperBase` is the helper abstract class that most implementations can extend for more out-of-the-box functionality.

* Add to all `DomZipper`s
* Methods to ensure that DOM doesn't change in the middle of an observation:
* `def startConsistencyCheck(): () => F[Unit]`
* `def ensureConsistency[A](f: this.type => A): F[A]`
* `def prepare[B](f: Self[F, A] => B): () => B` for eagerly validating the DOM path then extracting effectful functions
* Add to all `DomZipper`s
* Methods to ensure that DOM doesn't change in the middle of an observation:
* `def startConsistencyCheck(): () => F[Unit]`
* `def ensureConsistency[A](f: this.type => A): F[A]`
* `def prepare[B](f: Self[F, A] => B): () => B` for eagerly validating the DOM path then extracting effectful functions

* `DomZipper`s are now comonads, meaning the following methods now exist:
* `def extract: A`
* `def map[B](f: A => B): Self[F, B]`
* `def extend[B](f: Self[F, A] => B): Self[F, B]`
* `def duplicate: Self[F, Self[F, A]]`
* `def unmap: Self[F, Dom]` -- not part of comonad but related; it undoes all `.map` and `.extend` application
* `DomZipper`s are now comonads, meaning the following methods now exist:
* `def extract: A`
* `def map[B](f: A => B): Self[F, B]`
* `def extend[B](f: Self[F, A] => B): Self[F, B]`
* `def duplicate: Self[F, Self[F, A]]`
* `def unmap: Self[F, Dom]` -- not part of comonad but related; it undoes all `.map` and `.extend` application

* When `.collect` and `.children` queries fail, they now include path & html info in the error msg (like descent failures).
* When `.collect` and `.children` queries fail, they now include path & html info in the error msg (like descent failures).

* Add a `dom-zipper-jsoup` module to use Jsoup for in-memory HTML in the JVM
### New `DomZipper` implementations

* Add a `DomZippersFastAndSlow` for fusing two different zippers over identical content;
one as a slow source-of-truth zipper with real DOM,
and another as a fast inspection-only zipper.
* Add a `dom-zipper-jsoup` module to use Jsoup for in-memory HTML in the JVM

* Selenium
* Add a `DomZippersFastAndSlow` for fusing two different zippers over identical content;
one as a slow source-of-truth zipper with real DOM,
and another as a fast inspection-only zipper.

* Add `FastDomZipperSelenium` as a Jsoup-backed fast alternative to using Selenium for observation.
This typically results in a speedup between 5-50x!
### Selenium

* Add extension methods to Selenium `WebDriver`:
* `def addStyleTag(content: String): Unit`
* `def disableCssAnimation(...): Unit`
* `def onShutdownQuit(): Unit`
* Add `FastDomZipperSelenium` as a Jsoup-backed fast alternative to using Selenium for observation.
This typically results in a speedup between 5-50x!

* `.dom` is now `.dom()`
* Add extension methods to Selenium `WebDriver`:
* `def addStyleTag(content: String): Unit`
* `def disableCssAnimation(...): Unit`
* `def onShutdownQuit(): Unit`

* Add to `MultiBrowser`:
* `def onShutdownClose(quit: Boolean = true): Unit`
* `def onShutdownCloseRoot(): Unit`
* `.dom` is now `.dom()`

* Add to `MultiBrowser`:
* `def onShutdownClose(quit: Boolean = true): Unit`
* `def onShutdownCloseRoot(): Unit`

* JavaScript
### JavaScript

* Revise the JS `DomZipper` implementations:
* The `{,Html}DomZipper{,At,Root}` set of types have all been replaced by a single, simple `DomZipperJs`
* You no longer specify the DOM type of the focus and children at the zipper level,
but as you extract the DOM
(eg. instead of `.asHtml.dom` use `.domAsHtml`)
* Revise the JS `DomZipper` implementations:
* The `{,Html}DomZipper{,At,Root}` set of types have all been replaced by a single, simple `DomZipperJs`
* You no longer specify the DOM type of the focus and children at the zipper level,
but as you extract the DOM
(eg. instead of `.asHtml.dom` use `.domAsHtml`)

* Add extension methods to `dom.Document`:
* `def addStyleTag(content: String): Unit`
* `def disableCssAnimation(...): Unit`
* Add extension methods to `dom.Document`:
* `def addStyleTag(content: String): Unit`
* `def disableCssAnimation(...): Unit`

* Add to core `Dsl` instances: `.withPreActionAssertion` to perform an assertion just before executing any actions.
### Changes to core

* Add `.withPreActionAssertion` to `Dsl` instances to perform an assertion just before executing any actions.

### Migration
<br>

## Migration

```sh
find . -type f -name '*.scala' -exec perl -pi -e '
Expand Down

0 comments on commit 340c2f3

Please sign in to comment.