Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace posh with ratom #784

Closed

Commits on Mar 9, 2021

  1. fix(router): Refactor navigation page-title to avoid nil error

    Original code alows executing a pull for `[:block/uid nil]`
    which is not a valid lookup ref (and throws an exception
    in DataScript). It was not a problem up to now, because
    Posh does allow this unspecified behavior (and just returns nil).
    
    Refactored the code to separate page-title and navigation concerns.
    pithyless committed Mar 9, 2021
    Configuration menu
    Copy the full SHA
    bb60659 View commit details
    Browse the repository at this point in the history
  2. perf(db): Replace posh with reagent.ratom (kudos @lambduhh)

    Solution was originally proposed by @lambduhh in
    athensresearch#665.
    See PR discussion for details why posh is considered
    slow and a mismatch for Athens UI performance right now.
    
    This version of the solution introduces a new namespace
    `athens.posh` as a form of indirection. This way the rest
    of the codebase does not need any further changes (aside from
    the namespace require) and also allows easy switching between
    the two different databases to compare performance and
    correctness (via `athens.posh/version`).
    
    The assumption is that later this hybrid duality can be elided
    and `athens.posh` refactored into a more robust data fetching layer.
    pithyless committed Mar 9, 2021
    Configuration menu
    Copy the full SHA
    b267d0d View commit details
    Browse the repository at this point in the history
  3. feat(devtool): Add athens.tracing dev tool for profiling

    Added athens.tracing which depends on tufte for profiling CLJS
    functions. It's not a great integration, as currently Athens is on an
    old version of re-frame-10x that does not have the appropriate
    monkeypatchin hooks.
    
    The assumption is that a developer will enable it by uncommenting the
    `athens.tracing` in shadow-cljs preloads and checking the results in
    console.log.
    pithyless committed Mar 9, 2021
    Configuration menu
    Copy the full SHA
    29eb3a3 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    96fc9f2 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    c2f3367 View commit details
    Browse the repository at this point in the history