All notable changes to this project will be documented in this file. This change log follows the conventions of keepachangelog.com.
- Avoid throwing an error
No item 0 in vector of length 0
under certain circumstances.
To take advantage of the more granular timing info in this version, you will need to upgrade to re-frame 0.10.5.
- A time-travelling debugger. Navigating forwards and backwards through the event history updates app-db to match. Be careful when using this with a stateful backend; as in the movies if you change too much or go too far back, the future can become unpredictable.
- Improve Timing panel to show more granular timing info.
- Settings panel has a scroll bar if your screen height is too small.
- Massive overhaul to how subscriptions are processed.
- Subscriptions that exist but weren't run, now show up in the subscription panel.
- Subscription creations and disposals that happen during figwheel reloads or otherwise outside of the re-frame event domino cycle are now correctly handled. If any of these happen, they show up in the new section Inter-Epoch Subscriptions.
- All of the actions that happen to a subscription within an epoch are now shown. This lets you spot unusual behaviour like a subscription being created but not-run, or a subscription running multiple times.
- Present better explanation messages when viewing the diff section for a sub where the value is unchanged, not run yet, or only run once.
- Garden source dependencies are now working if you don't have your own dependency on Garden.
- New app-db path inspectors default to
"""
instead of "[]"
so you can see the help text.
- Garden source dependencies now work if you don't have your own dependency on Garden.
This version requires re-frame 0.10.4 to make use of the newly added Event panel.
- New event panel. This panel shows the coeffects given to your event handler, the effects your event handler produced, and all of the interceptors in the chain.
- Debugging instructions if re-frame-trace fails to start.
- Setting to drop low level traces. This reduces the memory overhead of re-frame-trace as we can drop more traces that you are unlikely to want most of the time.
- Diff the previous value of a subscription with its current value.
- In the subs panel "Ignore n layer 2 subs" is now "Ignore n unchanged layer 2 subs". This is a more useful filter, as you can filter out noisy layer 2 subscriptions, while still seeing the changes that do happen to layer 2 subs.
- The version of Garden that re-frame-trace uses is now bundled as a source dependency so you should no longer get conflicts if you use Garden 2.
- Refactored re-frame-trace trace parsing internals to incrementally parse new traces.
- Clicking on a trace's expanded information now prints the entire trace to the console instead of just the tags.
- Improved efficency of rendering views that do not need to filter out view namespaces.
- app-db and subs panel now have a slightly more responsive design.
- External windows not loading
- All app-db and subscription path expansions are now independent of each other #134.
- Layer 2/3 calculations are more accurate now. We now use the last seen layer level when a subscription runs, to inform it's layer level if it was created or destroyed.
- View namespaces that are ignored are no longer shown when showing traces for all epochs.
- Distinguish between subscriptions that return
nil
values and those that haven't run yet. - Timing panel not showing elapsed event processing time.
There is now a React 16 variant of re-frame-trace available under the version 0.1.16-react16
. If your application uses React 16 and Reagent 0.8.0-alpha2 or higher, this is the version that you will need to use.
- Setting to control how many epochs are retained
- Setting to reset all epochs
- Setting to ignore epochs
- Setting to filter out trace for views from uninteresting namespaces
- Updated bundled re-frame version to 0.10.3, and bundled reagent version to 0.7.0. This shouldn't impact your project's dependencies as they are source bundled via mranderson.
- Add hyperlinks to docs
- Set a print limit of 400 characters in the event header, to prevent very large events from DOSing the host application.
- XML encode # character in SVGs, fixing #130.
- Fix the reset tracing button in the traces panel.
- Fix a bug when there is only one traced event, re-frame-trace would allow you to go back an epoch, throwing an exception.
- The app-db panel now has buttons to reset app-db to the state at the beginning or end of any epoch.
- The subscription panel shows subscriptions that were created and destroyed.
- The trace panel automatically filters traces to just the current epoch
- A new timing panel shows basic timing statistics around event processing and rendering. More to come here.
- re-frame-trace is now organised around epochs. An epoch includes an event being processed, subscriptions running in response, and the view re-rendering.
- A new visual design language.
Lots of quality of life fixes:
- Lower count of items in sequence before expanding icon shows #126
- Only allow one time based filter at a time #125
- Persist trace expansions when changing tab #105
- Hide :sub/create traces for cached subscriptions #93
- Persist filter category settings to localstorage #121
- Highlight events in trace window #106
- New state snapshotting feature: Click the camera to snapshot app-db, and click the load button to restore to your snapshot. Snapshots only persist for the browser session, they aren't available after reloading the browser.
- X button to remove app-db paths
- Switched from LESS to Garden styles. Now interactive development and debugging of re-frame-trace is even faster.
- Reopen/reattach external popup windows when reloading host application
- Reorganise namespace layout and remove (hidden) subviz panel and D3 dependency. This may return in the future though.
- Only sort subscriptions by the subscription key, not the whole vector
- Visual tweaks
- Set panel width correctly so you can see the whole panel at all times. Previously the right edge was just off screen.
N.B. To make the best use of the new subscriptions panel, you also need to update to re-frame v0.10.3-alpha1.
- Bright yellow text when re-frame trace is preloaded, but tracing is not enabled.
- Add preliminary subscriptions panel. Still a bit buggy and not very pretty, but it should be useful even in this state.
- Preliminary support for React 16 component paths. #89
- External popout window. #92
- Namespace aware truncation in the traces panel. #100
- App DB expansions and contractions now persist across reloads. Note the limitations with this feature.
- Hide index spans (the blocks next to each element counting the number of elements in a collection)
- Rename app-state panel to app-db
- Visual improvements to data viewer
- Subvis panel has been commented out while it is in a broken state.
- Limit captured traces to a maximum of 4,000 to prevent performance slowdowns.
- Speed up animations for autoscrolling to bottom of list
- Print full keyword for operation name
- Bad merge for handling window width changing.
- Add a new App State panel. This lets you visualise your application state and inspect it. You can add multiple selections to view a subset of your application state.
- Handle window viewport size changing and other dragging bugs. This should be the last of them, but open an issue if you still find glitches when resizing.
- Improve style resetting
- Visual improvements
- Fix panel resizing behaviour under edge cases
- Log trace data to the console when clicking on it.
- Put CSS in resources directory
- Save settings to localstorage to persist across reloads
- Autoscroll to the bottom of the traces panel when at the bottom
- Use LESS for CSS
- Move styles and components to trace folder
- Add event filtering
- Pin the filter input to the top of the panel
- Improve installation instructions
- Artifact coordinates changed from
day8.re-frame/abra
to day8.re-frame/trace
.
- The preloads namespace now adds the tracing panel to the DOM automatically, so you don't need to change any of your app code to bring it in. #14 via Dexter Gramfors.
Migration steps: Remove any explicit rendering instructions for
day8.re-frame.trace/devtools
in your app, as this is automatically added now.
- There is now a preload namespace you can use to configure re-frame-trace. Install details are in the README.md. #13 via Dexter Gramfors.
This was a botched deploy. See 0.0.8.
- Added getting started instructions to README.