Add a Changes doc

This commit is contained in:
mike-thompson-day8 2015-03-06 10:47:28 +11:00
parent a48f55ff79
commit f5e2d48441
1 changed files with 70 additions and 0 deletions

70
CHANGES.md Normal file
View File

@ -0,0 +1,70 @@
## Planned for v0.3.0
- automatically wrap subscriptions in a `reaction` (removing the need for over
10 keystrokes per handler!!). Just kidding there are better reasons than that.
- produce a more fully featured todomvc (beyond the standard one), todomvc-with-extras
- use `enrich` to handle todo duplication
- show testing
- show debug
- begin to use goog.Logger ?? How to let client apps know about exceptions, etc ??
## v0.2.0 (2015-03-06)
Being blocked by:
In todomvc, to be done tomorrow ahead of release:
- fix bug in todomvc which means the footer disappears and doesn't come back.
- add localstorage
- add history, back button etc.
### Breaking
Renames:
- `register-pure-handler` renamed to `register-handler` (and existing low level `register-handler` becomes `register-handler-base` but is not a part of the API).
- remove `apply-event` middleware and replace with similar `trim-v`
- rename `register-subs` to `register-sub` (avoid confusion over possible plurals)
- rename `set-max-undos` to `set-max-undos!`
Changes:
- `undoable` middleware is now a factory. Where before you used this `undoable`,
you must now use this `(undoable "some explanation")`. See further below.
### Headline
- example `todomvc` available in examples folder.
- Wiki documentation is now more substantial.
- introduce some new handler middleware: `debug`, `enrich` and `after`
### Other:
- exceptions in a go loop are a special type of hell. Improve the reporting of exceptions happening in event handlers.
- allow Middleware to be registered as a vector. data > functions > macros
- fix two bugs in undo implementation
- name licence file correctly, thanks to @smith
- fix typo in readme, thanks to @btheado
- Readme now admits to 200 lines of code, not 100.
- dispatch now explicitly returns nil
- travis integration (not that we have any tests currently)
### Details On Undo Changes
We've made changes so that the undo/redo feature is more powerful. Associated
with each undo state is an explanation which can be presented to the user to
inform them as to the actions they will be undoing or redoing.
Previously `undoable` was simply middleware, but it is now a middleware factory.
Essentially that means you can't use it "plain" anymore, you must call it to
get middleware (put it in `()`) and, when you do, supply a parameter which is
an explanation for the mutation. "Set spam flag to yes", "add todo", etc.
When the time comes to present undos to the user, you then have an explanation
associated with each one.
The `explanation` provided to undoable must be either a `string` (static
explanation) or a function `(db event) -> string` (allowing you to customize
the undo message based on details of the event. "Added todo called blah blah blah").