mirror of
https://github.com/srid/ema.git
synced 2024-11-29 09:25:14 +03:00
Expand changelog
This commit is contained in:
parent
666bdc8cb5
commit
1e46e85cdf
17
CHANGELOG.md
17
CHANGELOG.md
@ -1,14 +1,23 @@
|
||||
# Revision history for ema
|
||||
|
||||
## Unreleased
|
||||
## 0.8.0.0 (Unreleased)
|
||||
|
||||
This is a significant release. If you choose to upgrade your apps from 0.6, see https://ema.srid.ca/guide/upgrade
|
||||
|
||||
- GHC 9.0 support
|
||||
- Better handling of URL anchors (#83; #87)
|
||||
- Multisite rewrite (Ema is rewritten)
|
||||
- Add `IsRoute` class to define route encoders
|
||||
- Add the notion of `RouteEncoder` (first-class values), along with a `IsRoute` class to define them.
|
||||
- Generic deriving of route encoders, so you do not have to hand-write them.
|
||||
- Route encoding isomorphism checks
|
||||
- Composable Ema apps (Extend another Ema to build new ones)
|
||||
- Automatic isomorphism checks ensures that encoding and decoding are isomorphic.
|
||||
- Composable Ema apps
|
||||
- There are two ways of composing Ema apps. Using heterogenous lists (see `Ema.Multi`), or by defining a top-level route type (see `Ex04_Multi.hs`).
|
||||
- Replace `LVar` with `Dynamic`.
|
||||
- Ema still uses `LVar` internally (for live server updates), but on the user-side one only needs to provide a `Dynamic` which is a tuple of initial value and an updating function. The [unionmount](https://github.com/srid/unionmount/pull/1) library was changed to provide this tuple.
|
||||
- Add `EmaSite` typeclass to "connect them all"
|
||||
- `SiteArg`: Type of value to pass from the environment.
|
||||
- `siteInput`: Define the `Dynamic` model for the site.
|
||||
- `siteOutput`: Asset (eg: HTML) to produce for each route.
|
||||
|
||||
## 0.6.0.0 -- 2022-02-05
|
||||
|
||||
|
@ -1,12 +1,22 @@
|
||||
|
||||
# Upgrading to newer Ema
|
||||
|
||||
Until 1.0 is released, newer releases of Ema might seen breaking or significant changes. This page exists to help you with upgrading your apps to the latest version.
|
||||
|
||||
## 0.6 -> 0.8
|
||||
|
||||
`0.8` is a *substantial* change, with Ema almost rewritten entirely. See [PR #81](https://github.com/srid/ema/pull/81) called 'Multisite rewrite'. If you do not wish to upgrade, you should stay with version `0.6`.
|
||||
`0.8` is a *substantial* change, with Ema almost rewritten entirely. See [PR #81](https://github.com/srid/ema/pull/81) called 'Multisite rewrite'.
|
||||
|
||||
TODO: How to upgrade to 0.8?
|
||||
|
||||
- `RouteEncoder` (first-class route encoders)
|
||||
- Pass it around, for use in `Ema.routeUrl`, etc.
|
||||
- `EmaSite` defines both "input" (model dynamic) and "output" (html rendering)
|
||||
- `EmaSite` defines both "input" (model dynamic) and "output" (html rendering)
|
||||
|
||||
|
||||
### Apps that already use Ema 0.8
|
||||
|
||||
You may want to read the source code of these apps to further understand how to upgrade.
|
||||
|
||||
- https://github.com/srid/emanote
|
||||
- https://github.com/srid/timedot-invoice
|
Loading…
Reference in New Issue
Block a user