Skip to content

Latest commit

 

History

History
192 lines (134 loc) · 6.69 KB

NEWS.md

File metadata and controls

192 lines (134 loc) · 6.69 KB

Mandrake 1.1.1

Fixes

Frontend Dependency Management

Fix dependency problems when using attach_dependencies(standalone = TRUE):

  • bootstrap
    • Fully embed entire bootstrap package, including all assets, not just css
    • Attach src from top level of bootstrap, so all assets are bundled.
  • jquery:
    • Fix missing package argument in jquery's htmlDependency() definition
  • attach jquery & bootstrap dependencies before other frontend dependencies, as other dependencies require jquery (especially) to be loaded already.
    • I named a fixup commit "idk", sorry @me [aebf9372] [a2eb660]
  • mustache templates:
    • Fix outdated refEREnce to template file test.html.mustache, which was deleted.
    • Now include display.html.mustache

Frontend

  • make embedHandler() backwards compatible with graphs generated by mandrake<1.1.0
    • In mandrake<1.1.0, R generated html directly and this was passed to visNetwork to be rendered directly
    • In mandrake>=1.1.0, R encodes the data into json & passes this object to visNetwork, which can be decoded & flexibly rendered by the frontend.
    • Now, embedHandler() tries to parse the input as json, then rendering it into a template, but if JSON.parse raises a syntax error, the input will be given directly to the DOM
  • (Everything to be given to the DOM is still cleaned by DOMPurify)

Backend

  • When styling code from plan commands, now wrap styler::style_text() in try block
  • That way, if code that can't be parsed by styler (eg, contains a pretty printed quosure), it won't crash the workflow

Misc

  • Remove "Remotes" section from DESCRIPTION, change a few dependency packages from github/development head to CRAN

Mandrake 1.1.0

Features

  • Implement front-end rendering of metadata in network.
    • This allows for more flexible rendering of data in general.
    • Exceptions include highlighted code - R does a better job of linking documentation
  • Improve responsiveness of column documentation.

Fixes

  • Fix rmarkdown docomuments failing to render due to rstudio/rmarkdown#1948 not yet being merged.
    • DOMPurify js dependency (XSS Sanitization js lib) was previously included as href dependency
      • href dependencies are supported by htmltools, but not yet by rmarkdown.
    • Now DOMPurify is embedded directly (for now)

Minor

  • Add a warn_deprecated option to old js handlers so that they can be evaluated in generating docs without triggering a warning

Deprecations

  • Deprecate backend rendering of html - R does not have great tools for this.
    • Now pass json to the frontend handler, which renders it using mustache.js.

Mandrake 1.0.0

BREAKING CHANGES IN VERSION 1.0.0

  • Deprecate mandrake::embed_event_handler() due to XSS vector, and its annoying to maintain JS stored in R code.
    • Users now have to call:
      • mandrake::attach_dependencies() &
      • drake::render_graph(on_select = "embed_event_handler")

Fixes

  • Fix bug related to htmlwidgets::saveWidget when selfcontained = TRUE breaking embedded stylesheets.

Mandrake 0.2.3

Fixes

  • Now gracefully handle when targets are not cached, or missing from cache
  • Now gracefully handle duplication of column definitions across package
    • drops duplicate definitions, warns about dropping.

Additions

  • Implement attach_dependencies(), which attaches bootstrap and jquery deps to graphs

Mandrake 0.2.2

Version Skipped

Mandrake 0.2.1

Fixes

  • Qualified a call to rlang::\%||%``

Mandrake 0.2.0

Additions

  • Implement new tag, inheritCol. that allows columns to be inherited from other packages. Give a package name, and a list of columns.

Modifications

  • When fetching package name in roclet_process.roclet_col(),
    • if not found from roxygen2::roxy_meta_get("current_package"), will attempt to use env$.packageName.
  • When processing output for roclet_col(),
    • Writes columns from separate packages to separate files.
  • When adding columns to lookup cache, caches columns to three namespaces:
    • All columns are added to
      • "objects" (or the default storr namespace), where column is referenced by
        • Its name
        • Or any of its aliases
      • "unique", where they are referenced by name only
    • Each column, whose definition is provided by package srcpkg is added to "package:{srcpkg}", which contains only columns defined by srcpkg.

Export / NAMESPACE Changes

  • Now use @importFrom roxygen2 roclet_process, etc to import roxygen2 generics
  • Now export roxygen2 S3 methods as S3Methods.

Bugfixes

  • Fixed bug where if no column definitions were given to output, roclet would crash
  • Fixed (?) bug where if trying to self-inherit, would fail if docs for a col hadn't already been generated.
    • Because inheritance and column documentation were processed one-by-one (for each block, process col, then inheritCol), this failure would cause things to consistently fail, as @col outputs never got written to file, to be found by @inheritCol.
      • Now, all @col are processed, and results cached, then all @inheritCol outputs are processed.

Mandrake 0.1.0

  • Implement a top level decorate_plan() function. This function wraps the column extraction and linking process, and allows:
    • The user to specify a column containing markdown description, that will be rendered in the sidebar
    • The command column of the plan is parsed, highlighted, and code referenced are automagically linked to their docs (thanks to downlit).
      • This is also rendered in a collapsible segment in the sidebar.
    • The table of columns -> docs is still rendered in the sidebar, under the header "columns".

Mandrake 0.0.1

Tentative First-Pass

  • Implement roxygen-based @col tag + column doc workflow #8.
    • Implement serialization of column docs from docstrings to yaml.
    • Implement deserialization of column docs, by specifying package owning the column specs.
  • Implement Column spec lookup, extraction and formatting / integration with workflow graphs #6.
    • Incl. Extraction of metadata from plan.

mandrake 0.0.0.9002

Initial Dev Version

Implementations

  • Implement target-doc extraction function extract_column_names()
    • This uses the plan and the cache to extract column names from each target,
    • and returns the plan with a new list-col containing that target's variable names.

Demonstrations

  • Add demo article "Test Usecase", showing the ability to embed metadata about a specific target directly into the network graph