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

Add support for callback graph improvements and timing #224

Merged
merged 16 commits into from
Oct 9, 2020

Conversation

rpkyle
Copy link
Contributor

@rpkyle rpkyle commented Aug 15, 2020

This PR proposes to introduce additional context within the dev tools callback graph, as outlined previously in plotly/dash#1179, specifically

  • a new callback_context.record_timing method is added, which permits capturing callback execution duration and adding it to Server-Timing headers (more info here), as seen in figure below

Most of the changes are due to updates within dash-renderer based on #1179, including:

  • viz.js is replaced with cytoscape.js via react-cytoscape; the callback graph is now interactive, and its layout/organization (e.g. when dragging/reordering nodes) persists throughout the session
  • CallbackGraphContainer now subscribes to layout and paths so it can introspect the current state
  • new reducers are added to compute profiling information and report all changed props (not just inputs)

Sample code (included within a callback), and a snapshot of the network pane illustrating callback profiling data within the Server Timing headers:

    Sys.sleep(0.1)
    app$callback_context.record_timing('task_1', 0.1, 'The first task.')
    
    Sys.sleep(0.7)
    app$callback_context.record_timing('task_2', 0.7)
    
    Sys.sleep(0.2)
    app$callback_context.record_timing('task_3', 0.2, 'Cleanup task.')

image

To do:

  • restrict invocation of callback_context.record_timing to callbacks, as with app$callback_context

Closes #223.

@rpkyle rpkyle added parity Modifications to improve parity across Dash implementations feature request Community request for a package enhancement labels Aug 15, 2020
@rpkyle rpkyle self-assigned this Aug 15, 2020
@rpkyle rpkyle linked an issue Aug 15, 2020 that may be closed by this pull request
@rpkyle
Copy link
Contributor Author

rpkyle commented Aug 24, 2020

@Marc-Andre-Rivet I've completed my investigation, and as I discussed with @alexcjohnson, the request object is not easily modified within the handler (like Dash, it's an R6 class -- entitled Request -- and environments/bindings can be locked).

If you try to add a field on the object in place of what we were doing previously, i.e. app$server$set_data("timing-information"), you are likely to see this error:

Browse[1]> request$timing_information <- "test"
Error in request$timing_information <- "test" : 
  cannot add bindings to a locked environment

Similarly, unlike Response, there is no way to append_header:

... and you cannot force one in there:

Browse[1]> request$headers$Server_Timing <- "test"
Error in (function ()  : 
  unused argument (base::quote(list(c("text/html", "application/xhtml+xml", "application/xml;q=0.9

An alternative I was considering is to hash the request object, then use the hash as a way to uniquely identify timing information within self$server$get_data("timing-information"), assuming the hash is reliably unique and not mutable. We could index by the hash, or index by URL and store the hash within the entry. The former feels "safer" since you could potentially have interleaved requests which are processed out of order for the same resource, if Alex's concerns given concurrent asynchronous requests are warranted.

We already pull in digest, which has a function for computing the MD5 sum:

digest::digest(request, "md5")

I did test twice, and upon initial request the hash was unique:

Browse[1]> digest::digest(request, "md5")
[1] "d9da9c5617b829a5148351b27302f7fb"
Browse[4]> digest::digest(request, "md5")
[1] "c1b00e7fdb85aeba08a1f6f32767453a"

I haven't verified that the hash is identical between self$server$on('before-request', function(server, request, ...) and self$server$on('request', function(server, request, ...), but I'd guess that it should be.

@Marc-Andre-Rivet Marc-Andre-Rivet added feature and removed feature request Community request for a package enhancement labels Aug 26, 2020
@rpkyle rpkyle force-pushed the 223-callback-instrumentation branch from c5f9d4e to 1d8bb22 Compare August 31, 2020 11:15
@rpkyle rpkyle force-pushed the 223-callback-instrumentation branch from 1d8bb22 to b8e4f38 Compare August 31, 2020 11:16
@rpkyle
Copy link
Contributor Author

rpkyle commented Sep 3, 2020

As I discussed with @alexcjohnson and @Marc-Andre-Rivet separately, I think we're going to revert to the original implementation which doesn't fuss around with evaluating functions in other environments (and setting attributes on the request object). I'll also write a test with three callbacks that are somewhat slow-running, to attempt to validate that the information recorded during a particular callback's execution is correctly matched within the server's data store.

The appropriate long-term solution is likely to submit a PR to provide an optional request context within reqres upstream, but that's out of scope for the current release cycle. We can reconsider this alternative at some point in the future.

@rpkyle
Copy link
Contributor Author

rpkyle commented Oct 2, 2020

As discussed with @chriddyp, @Marc-Andre-Rivet, @alexcjohnson, I'll finish up with this PR and defer the integration test we discussed to the next DE release cycle. I'll open an issue to ensure it remains a priority and link back her.

@rpkyle rpkyle marked this pull request as ready for review October 7, 2020 16:29
@rpkyle rpkyle requested a review from alexcjohnson October 7, 2020 16:30
@alexcjohnson
Copy link
Collaborator

@rpkyle this looks good! Agreed that we can defer testing the complex parallel callback timing / context test until later, but it would be nice to include a simple test that timing info makes its way to the response - just a straight port of https://github.com/plotly/dash/blob/dev/tests/integration/devtools/test_callback_timing.py, then I think we'll be good to go!

@rpkyle
Copy link
Contributor Author

rpkyle commented Oct 7, 2020

@rpkyle this looks good! Agreed that we can defer testing the complex parallel callback timing / context test until later, but it would be nice to include a simple test that timing info makes its way to the response - just a straight port of https://github.com/plotly/dash/blob/dev/tests/integration/devtools/test_callback_timing.py, then I think we'll be good to go!

Right, sorry for not including that here. I would not merge this without even a very basic test 😬 I'll handle that today. Thanks for taking a second pass!

@rpkyle rpkyle force-pushed the 223-callback-instrumentation branch from 878df44 to e0c0841 Compare October 8, 2020 22:41
@rpkyle
Copy link
Contributor Author

rpkyle commented Oct 8, 2020

@rpkyle this looks good! Agreed that we can defer testing the complex parallel callback timing / context test until later, but it would be nice to include a simple test that timing info makes its way to the response - just a straight port of https://github.com/plotly/dash/blob/dev/tests/integration/devtools/test_callback_timing.py, then I think we'll be good to go!

added in e0c0841

@rpkyle rpkyle requested a review from alexcjohnson October 8, 2020 23:05
@rpkyle rpkyle force-pushed the 223-callback-instrumentation branch from e0c0841 to 6b8c49c Compare October 8, 2020 23:44
app$run_server(debug=TRUE)
"""

def test_rsci001_test_callback_instrumentation(dashr):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Non-blocking, but in principle this can be dashr_server rather than dashr, since you don't need the browser, just a server to make a request to.

Copy link
Contributor Author

@rpkyle rpkyle Oct 9, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the heads-up, fixed in 9c8566e.

Copy link
Collaborator

@alexcjohnson alexcjohnson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great! 💃

@rpkyle rpkyle force-pushed the 223-callback-instrumentation branch from a246530 to 9c8566e Compare October 9, 2020 20:46
@rpkyle rpkyle merged commit 3a3ee2f into dev Oct 9, 2020
@rpkyle rpkyle deleted the 223-callback-instrumentation branch October 9, 2020 21:03
@rpkyle rpkyle mentioned this pull request Oct 26, 2020
rpkyle added a commit that referenced this pull request Oct 28, 2020
* New feature: callback graph improvements and timing (#224)
* New feature: support user-defined server routes and redirects (#225)
* Enable setting script and stylesheet attributes (#226)
* New feature: Pattern-Matching Callbacks (#228)
* Authenticate on pulls from Docker Hub (#231)
* Fixed a bug in the usage of glue (#233)
* Update dash-renderer to v1.8.2 (#234)

Co-authored-by: HammadTheOne <[email protected]>
HammadTheOne added a commit that referenced this pull request Oct 13, 2021
* contribute test script

* remove version updating in DESCRIPTION

* fix EOL

Co-authored-by: HammadTheOne <[email protected]>

* Add support for user-defined server routes (#225)

* Provide support for script and stylesheet attributes (#226)

* Authenticate on pulls from Docker Hub (#231)

* Add support for callback graph improvements and timing (#224)

* Update CHANGELOG.md

* 189 - Add Pattern Matching Callbacks for Dash R (#228)

* Testing initial implementation

* More testing

* Callback Context Updates

* Updating callback context logic

* Fixing callback returns

* Adding callback args conditional

* Cleanup and additional changes to callback value conditionals

* Comment cleanup

* Added PMC callback validation, removed unnecessary code

* Update R/dependencies.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update R/dependencies.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update R/dependencies.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update R/dependencies.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Added build to gitignore

* Updated dependencies.R

* Update boilerplate docs and add wildcard symbols

* Drying up validation code and applying symbol logic

* Update test to use symbols

* Cleaned up code and added allsmaller test example

* Cleaning up redundant code

* Update FUNDING.yml

* Updated callback_args logic and example

* Adding basic unittests, updated validation

* Fixed response for MATCH callbacks

* Added integration test and updated examples for docs

* Added additional integration test

* Formatting and cleanup

* update docs

* Update to-do app

* Add comments to examples

* Change empy vector to character type.

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update boilerplate text.

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update tests/integration/callbacks/test_pattern_matching.py

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update tests/integration/callbacks/test_pattern_matching.py

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update tests/integration/callbacks/test_pattern_matching.py

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update tests/integration/callbacks/test_pattern_matching.py

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update tests/integration/callbacks/test_pattern_matching.py

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update tests/testthat/test-wildcards.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update wildcards_test.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update wildcards_test.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update wildcards_test.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update wildcards_test.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update wildcards_test.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update wildcards_test.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update wildcards_test.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update wildcards_test.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Removed triple colon syntax

* Use seq_along and remove unnecessary unittest

* Update CHANGELOG.md

* Update CHANGELOG.md

* Add support for arbitrary and sorted keys

* Whitespace deleted

* Added integration tests

* Fixing test output

* Fixing flakiness

* Update test_pattern_matching.py

* Update test_pattern_matching.py

* Updating boilerplate text and test with generalized keys

* Minor test fixes

Co-authored-by: Ryan Patrick Kyle <[email protected]>
Co-authored-by: Nicolas Kruchten <[email protected]>
Co-authored-by: rpkyle <[email protected]>

* Fixing Null error with glue::glue interpolation (#233)

* Fixing NULL error with glue interpolation

* Update utils.R

* Update utils.R

* Update CHANGELOG.md

* Update dash-renderer to v1.8.2 (#234)

* bump dash-renderer to v1.8.2

* Update CHANGELOG.md

* add note about update to dash-renderer

* Fixing flaky test

* bump package version to v0.8.0

* Update R/dash.R

Co-authored-by: HammadTheOne <[email protected]>

* Update tests/testthat/test-wildcards.R

Co-authored-by: HammadTheOne <[email protected]>

* Update DESCRIPTION

Co-authored-by: HammadTheOne <[email protected]>

* add PMC example

* update documentation

* update CHANGELOG release date

* 🔨 PMC docs refactor

* Update tests/integration/callbacks/test_pattern_matching.py

Co-authored-by: HammadTheOne <[email protected]>

* Update tests/integration/callbacks/test_pattern_matching.py

Co-authored-by: HammadTheOne <[email protected]>

* Update tests/integration/callbacks/test_pattern_matching.py

Co-authored-by: HammadTheOne <[email protected]>

* add import of glue

* add glue to imports.R

* fix line length issue

* Fix setCallbackContext for wildcard and ordinary inputs (#237)

* Update setCallbackContext

* Adding graphs test

* Slight fix

* bump version and update CHANGELOG

* Less flaky test

Co-authored-by: rpkyle <[email protected]>

* bump dependency versions

* update CHANGELOG

* update dash-renderer to v1.8.3

* update CHANGELOG

* Favicon fix (#240)

* Adding default favicon

* Removing redundant codeblock

* Added default favicon

* Minor fix to requests prefix

* Update CHANGELOG.md

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Added simple test

* Fixed typo

* Fixed typo

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Remove context reference from CircleCI (#241)

* Dash R Core Package Unification (#243)

* Initialize npm and gulpfile in repo

* Adding directory structure

* Initial implementation of unification script

* Minor grep fixes

* Fixed DESCRIPTION imports

* Added updated dash-table deps

* Regex for version numbers

* Cut import entries from NAMESPACE

* Remove && include(dashr)

* Removing gulp-asset artifacts and rebuilding complete package

* Removing unnecessary files

* fix: remove html, core pkgs from tests

* fix: update script tags unit test

* Revert R6 import

* Add temporary collate

* Update README examples

* Scrubbing imports

* More import scrubbing

* Package development updates

* Update gitignore and namespace

* Updated gulpfile jobs

* Updated all dependencies

* Added templates for namespace/internal exports

* Update internal, namespace, and gulpfile cleanup

* Fix dependency sourcing

* Linting

* Adding job for asset retrieval and deletion

* Minor src change

* Added error handling

* Fixing favicon bug

* chore: use shallow clone

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Added deprecation warning if dcc, html, or table packages are attached (#249)

* Added deprecation warning

* Update R/dash.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update `highlight.js` dependency for dash-table (#262)

* Updating gulpfile

* Updating dependencies for dash components

* Updated highlight.js dependency source

* Add Dash 2 layout syntax wrappers and html tags (#265)

* Added add_meta helper

* Add helper functions and export pipe

* Adding in tags wrapper

* Updating ci config

* Updated CHANGELOG

* Updated circleci to include rust package manager (cargo).

* Removed dashr command in circleci config.

* Updating changelog

* added basic test

* Cleaning up Dash 2 references and duplication

* Updated documentation

* Allow conditional UI

* Add meta tag check

* More cleanup

* Last bit of cleanup

Co-authored-by: Steve Sperandeo <[email protected]>

* Fix suppress_callback_exceptions config (#268)

* Add config key

* Fixing CI

* Simplified callback syntax and addtional utility functions (#270)

* Tag updates

* Added RStudio dash snippet

* Added simple_table

* Added flexible callbacks

* Documentation and NAMESPACE updates

* Updated DESCRIPTION

* Adding unittests

* Adding context tags to tests

* Updated CHANGELOG

* Update monorepo and rebuild package (#271)

* Updating gulpfile and package.json

* More package.json and linting updates

* Adding in simplified callback updates/tests

* Import fixes

* Updating package.json

* Gulpfile script changes

* Gulpfile updates

* Rebuilding package with monorepo updates

* Re-running test

* Updating unittest

* Updating test dependencies

* Updating DESCRIPTION and .Rbuildignore forchecks

* Updating function descriptions and NAMESPACE imports

* Fixed examples and updated docs

* Updating version

* Remove references to dash namespace within package

* Update testthat and remove deprecated context calls

* Removed fixup_metadata.R

* Removing more dash namespace references

* Concatenating component function files

* Updating checks

* Merging components into package R files

* Fixing check

* More package cleanup

* testthat 3.0.0

* Rebuilding package

* Fixed conditional for multiple outputs

* Fix no_update test

* Fixing callback_instrumentation test

* Fixing unit test

* Added DBC to Dash R package (#273)

* Adding dbc to dashR namespace

* updated gitignore

* Adding dbc docs and updating gulpfile

* Updating test with dbc

* Moved misc tests and added dbc snapshot

* Fixing test

* fixing id

* Fixed export and test

* Reverting sorted prop order

* Checks updates

* Re-running test

Co-authored-by: Ryan Patrick Kyle <[email protected]>
Co-authored-by: Ryan Patrick Kyle <[email protected]>
Co-authored-by: Nicolas Kruchten <[email protected]>
Co-authored-by: rpkyle <[email protected]>
Co-authored-by: Steve Sperandeo <[email protected]>
HammadTheOne added a commit that referenced this pull request Oct 14, 2021
* contribute test script

* remove version updating in DESCRIPTION

* fix EOL

Co-authored-by: HammadTheOne <[email protected]>

* Add support for user-defined server routes (#225)

* Provide support for script and stylesheet attributes (#226)

* Authenticate on pulls from Docker Hub (#231)

* Add support for callback graph improvements and timing (#224)

* Update CHANGELOG.md

* 189 - Add Pattern Matching Callbacks for Dash R (#228)

* Testing initial implementation

* More testing

* Callback Context Updates

* Updating callback context logic

* Fixing callback returns

* Adding callback args conditional

* Cleanup and additional changes to callback value conditionals

* Comment cleanup

* Added PMC callback validation, removed unnecessary code

* Update R/dependencies.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update R/dependencies.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update R/dependencies.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update R/dependencies.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Added build to gitignore

* Updated dependencies.R

* Update boilerplate docs and add wildcard symbols

* Drying up validation code and applying symbol logic

* Update test to use symbols

* Cleaned up code and added allsmaller test example

* Cleaning up redundant code

* Update FUNDING.yml

* Updated callback_args logic and example

* Adding basic unittests, updated validation

* Fixed response for MATCH callbacks

* Added integration test and updated examples for docs

* Added additional integration test

* Formatting and cleanup

* update docs

* Update to-do app

* Add comments to examples

* Change empy vector to character type.

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update boilerplate text.

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update tests/integration/callbacks/test_pattern_matching.py

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update tests/integration/callbacks/test_pattern_matching.py

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update tests/integration/callbacks/test_pattern_matching.py

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update tests/integration/callbacks/test_pattern_matching.py

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update tests/integration/callbacks/test_pattern_matching.py

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update tests/testthat/test-wildcards.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update wildcards_test.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update wildcards_test.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update wildcards_test.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update wildcards_test.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update wildcards_test.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update wildcards_test.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update wildcards_test.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update wildcards_test.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Removed triple colon syntax

* Use seq_along and remove unnecessary unittest

* Update CHANGELOG.md

* Update CHANGELOG.md

* Add support for arbitrary and sorted keys

* Whitespace deleted

* Added integration tests

* Fixing test output

* Fixing flakiness

* Update test_pattern_matching.py

* Update test_pattern_matching.py

* Updating boilerplate text and test with generalized keys

* Minor test fixes

Co-authored-by: Ryan Patrick Kyle <[email protected]>
Co-authored-by: Nicolas Kruchten <[email protected]>
Co-authored-by: rpkyle <[email protected]>

* Fixing Null error with glue::glue interpolation (#233)

* Fixing NULL error with glue interpolation

* Update utils.R

* Update utils.R

* Update CHANGELOG.md

* Update dash-renderer to v1.8.2 (#234)

* bump dash-renderer to v1.8.2

* Update CHANGELOG.md

* add note about update to dash-renderer

* Fixing flaky test

* bump package version to v0.8.0

* Update R/dash.R

Co-authored-by: HammadTheOne <[email protected]>

* Update tests/testthat/test-wildcards.R

Co-authored-by: HammadTheOne <[email protected]>

* Update DESCRIPTION

Co-authored-by: HammadTheOne <[email protected]>

* add PMC example

* update documentation

* update CHANGELOG release date

* 🔨 PMC docs refactor

* Update tests/integration/callbacks/test_pattern_matching.py

Co-authored-by: HammadTheOne <[email protected]>

* Update tests/integration/callbacks/test_pattern_matching.py

Co-authored-by: HammadTheOne <[email protected]>

* Update tests/integration/callbacks/test_pattern_matching.py

Co-authored-by: HammadTheOne <[email protected]>

* add import of glue

* add glue to imports.R

* fix line length issue

* Fix setCallbackContext for wildcard and ordinary inputs (#237)

* Update setCallbackContext

* Adding graphs test

* Slight fix

* bump version and update CHANGELOG

* Less flaky test

Co-authored-by: rpkyle <[email protected]>

* bump dependency versions

* update CHANGELOG

* update dash-renderer to v1.8.3

* update CHANGELOG

* Favicon fix (#240)

* Adding default favicon

* Removing redundant codeblock

* Added default favicon

* Minor fix to requests prefix

* Update CHANGELOG.md

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Added simple test

* Fixed typo

* Fixed typo

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Remove context reference from CircleCI (#241)

* Dash R Core Package Unification (#243)

* Initialize npm and gulpfile in repo

* Adding directory structure

* Initial implementation of unification script

* Minor grep fixes

* Fixed DESCRIPTION imports

* Added updated dash-table deps

* Regex for version numbers

* Cut import entries from NAMESPACE

* Remove && include(dashr)

* Removing gulp-asset artifacts and rebuilding complete package

* Removing unnecessary files

* fix: remove html, core pkgs from tests

* fix: update script tags unit test

* Revert R6 import

* Add temporary collate

* Update README examples

* Scrubbing imports

* More import scrubbing

* Package development updates

* Update gitignore and namespace

* Updated gulpfile jobs

* Updated all dependencies

* Added templates for namespace/internal exports

* Update internal, namespace, and gulpfile cleanup

* Fix dependency sourcing

* Linting

* Adding job for asset retrieval and deletion

* Minor src change

* Added error handling

* Fixing favicon bug

* chore: use shallow clone

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Added deprecation warning if dcc, html, or table packages are attached (#249)

* Added deprecation warning

* Update R/dash.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update `highlight.js` dependency for dash-table (#262)

* Updating gulpfile

* Updating dependencies for dash components

* Updated highlight.js dependency source

* Add Dash 2 layout syntax wrappers and html tags (#265)

* Added add_meta helper

* Add helper functions and export pipe

* Adding in tags wrapper

* Updating ci config

* Updated CHANGELOG

* Updated circleci to include rust package manager (cargo).

* Removed dashr command in circleci config.

* Updating changelog

* added basic test

* Cleaning up Dash 2 references and duplication

* Updated documentation

* Allow conditional UI

* Add meta tag check

* More cleanup

* Last bit of cleanup

Co-authored-by: Steve Sperandeo <[email protected]>

* Fix suppress_callback_exceptions config (#268)

* Add config key

* Fixing CI

* Simplified callback syntax and addtional utility functions (#270)

* Tag updates

* Added RStudio dash snippet

* Added simple_table

* Added flexible callbacks

* Documentation and NAMESPACE updates

* Updated DESCRIPTION

* Adding unittests

* Adding context tags to tests

* Updated CHANGELOG

* Update monorepo and rebuild package (#271)

* Updating gulpfile and package.json

* More package.json and linting updates

* Adding in simplified callback updates/tests

* Import fixes

* Updating package.json

* Gulpfile script changes

* Gulpfile updates

* Rebuilding package with monorepo updates

* Re-running test

* Updating unittest

* Updating test dependencies

* Updating DESCRIPTION and .Rbuildignore forchecks

* Updating function descriptions and NAMESPACE imports

* Fixed examples and updated docs

* Updating version

* Remove references to dash namespace within package

* Update testthat and remove deprecated context calls

* Removed fixup_metadata.R

* Removing more dash namespace references

* Concatenating component function files

* Updating checks

* Merging components into package R files

* Fixing check

* More package cleanup

* testthat 3.0.0

* Rebuilding package

* Fixed conditional for multiple outputs

* Fix no_update test

* Fixing callback_instrumentation test

* Fixing unit test

* Added DBC to Dash R package (#273)

* Adding dbc to dashR namespace

* updated gitignore

* Adding dbc docs and updating gulpfile

* Updating test with dbc

* Moved misc tests and added dbc snapshot

* Fixing test

* fixing id

* Fixed export and test

* Reverting sorted prop order

* Checks updates

* Re-running test

* Remove html exports and update tags (#274)

* Updating tags and html exports

* Re-running tests

* Updating tag generation

* Re-running tests

* Updating tests to use new html list syntax

* Adjusting tests

* Re-run tests again

* Updating tests

* Wrapping up test fixes

* Percy test

Co-authored-by: Ryan Patrick Kyle <[email protected]>
Co-authored-by: Ryan Patrick Kyle <[email protected]>
Co-authored-by: Nicolas Kruchten <[email protected]>
Co-authored-by: rpkyle <[email protected]>
Co-authored-by: Steve Sperandeo <[email protected]>
HammadTheOne added a commit that referenced this pull request Nov 1, 2021
* contribute test script

* remove version updating in DESCRIPTION

* fix EOL

Co-authored-by: HammadTheOne <[email protected]>

* Add support for user-defined server routes (#225)

* Provide support for script and stylesheet attributes (#226)

* Authenticate on pulls from Docker Hub (#231)

* Add support for callback graph improvements and timing (#224)

* Update CHANGELOG.md

* 189 - Add Pattern Matching Callbacks for Dash R (#228)

* Testing initial implementation

* More testing

* Callback Context Updates

* Updating callback context logic

* Fixing callback returns

* Adding callback args conditional

* Cleanup and additional changes to callback value conditionals

* Comment cleanup

* Added PMC callback validation, removed unnecessary code

* Update R/dependencies.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update R/dependencies.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update R/dependencies.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update R/dependencies.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Added build to gitignore

* Updated dependencies.R

* Update boilerplate docs and add wildcard symbols

* Drying up validation code and applying symbol logic

* Update test to use symbols

* Cleaned up code and added allsmaller test example

* Cleaning up redundant code

* Update FUNDING.yml

* Updated callback_args logic and example

* Adding basic unittests, updated validation

* Fixed response for MATCH callbacks

* Added integration test and updated examples for docs

* Added additional integration test

* Formatting and cleanup

* update docs

* Update to-do app

* Add comments to examples

* Change empy vector to character type.

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update boilerplate text.

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update tests/integration/callbacks/test_pattern_matching.py

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update tests/integration/callbacks/test_pattern_matching.py

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update tests/integration/callbacks/test_pattern_matching.py

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update tests/integration/callbacks/test_pattern_matching.py

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update tests/integration/callbacks/test_pattern_matching.py

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update tests/testthat/test-wildcards.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update wildcards_test.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update wildcards_test.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update wildcards_test.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update wildcards_test.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update wildcards_test.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update wildcards_test.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update wildcards_test.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update wildcards_test.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Removed triple colon syntax

* Use seq_along and remove unnecessary unittest

* Update CHANGELOG.md

* Update CHANGELOG.md

* Add support for arbitrary and sorted keys

* Whitespace deleted

* Added integration tests

* Fixing test output

* Fixing flakiness

* Update test_pattern_matching.py

* Update test_pattern_matching.py

* Updating boilerplate text and test with generalized keys

* Minor test fixes

Co-authored-by: Ryan Patrick Kyle <[email protected]>
Co-authored-by: Nicolas Kruchten <[email protected]>
Co-authored-by: rpkyle <[email protected]>

* Fixing Null error with glue::glue interpolation (#233)

* Fixing NULL error with glue interpolation

* Update utils.R

* Update utils.R

* Update CHANGELOG.md

* Update dash-renderer to v1.8.2 (#234)

* bump dash-renderer to v1.8.2

* Update CHANGELOG.md

* add note about update to dash-renderer

* Fixing flaky test

* bump package version to v0.8.0

* Update R/dash.R

Co-authored-by: HammadTheOne <[email protected]>

* Update tests/testthat/test-wildcards.R

Co-authored-by: HammadTheOne <[email protected]>

* Update DESCRIPTION

Co-authored-by: HammadTheOne <[email protected]>

* add PMC example

* update documentation

* update CHANGELOG release date

* 🔨 PMC docs refactor

* Update tests/integration/callbacks/test_pattern_matching.py

Co-authored-by: HammadTheOne <[email protected]>

* Update tests/integration/callbacks/test_pattern_matching.py

Co-authored-by: HammadTheOne <[email protected]>

* Update tests/integration/callbacks/test_pattern_matching.py

Co-authored-by: HammadTheOne <[email protected]>

* add import of glue

* add glue to imports.R

* fix line length issue

* Fix setCallbackContext for wildcard and ordinary inputs (#237)

* Update setCallbackContext

* Adding graphs test

* Slight fix

* bump version and update CHANGELOG

* Less flaky test

Co-authored-by: rpkyle <[email protected]>

* bump dependency versions

* update CHANGELOG

* update dash-renderer to v1.8.3

* update CHANGELOG

* Favicon fix (#240)

* Adding default favicon

* Removing redundant codeblock

* Added default favicon

* Minor fix to requests prefix

* Update CHANGELOG.md

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Added simple test

* Fixed typo

* Fixed typo

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Remove context reference from CircleCI (#241)

* Dash R Core Package Unification (#243)

* Initialize npm and gulpfile in repo

* Adding directory structure

* Initial implementation of unification script

* Minor grep fixes

* Fixed DESCRIPTION imports

* Added updated dash-table deps

* Regex for version numbers

* Cut import entries from NAMESPACE

* Remove && include(dashr)

* Removing gulp-asset artifacts and rebuilding complete package

* Removing unnecessary files

* fix: remove html, core pkgs from tests

* fix: update script tags unit test

* Revert R6 import

* Add temporary collate

* Update README examples

* Scrubbing imports

* More import scrubbing

* Package development updates

* Update gitignore and namespace

* Updated gulpfile jobs

* Updated all dependencies

* Added templates for namespace/internal exports

* Update internal, namespace, and gulpfile cleanup

* Fix dependency sourcing

* Linting

* Adding job for asset retrieval and deletion

* Minor src change

* Added error handling

* Fixing favicon bug

* chore: use shallow clone

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Added deprecation warning if dcc, html, or table packages are attached (#249)

* Added deprecation warning

* Update R/dash.R

Co-authored-by: Ryan Patrick Kyle <[email protected]>

Co-authored-by: Ryan Patrick Kyle <[email protected]>

* Update `highlight.js` dependency for dash-table (#262)

* Updating gulpfile

* Updating dependencies for dash components

* Updated highlight.js dependency source

* Add Dash 2 layout syntax wrappers and html tags (#265)

* Added add_meta helper

* Add helper functions and export pipe

* Adding in tags wrapper

* Updating ci config

* Updated CHANGELOG

* Updated circleci to include rust package manager (cargo).

* Removed dashr command in circleci config.

* Updating changelog

* added basic test

* Cleaning up Dash 2 references and duplication

* Updated documentation

* Allow conditional UI

* Add meta tag check

* More cleanup

* Last bit of cleanup

Co-authored-by: Steve Sperandeo <[email protected]>

* Fix suppress_callback_exceptions config (#268)

* Add config key

* Fixing CI

* Simplified callback syntax and addtional utility functions (#270)

* Tag updates

* Added RStudio dash snippet

* Added simple_table

* Added flexible callbacks

* Documentation and NAMESPACE updates

* Updated DESCRIPTION

* Adding unittests

* Adding context tags to tests

* Updated CHANGELOG

* Update monorepo and rebuild package (#271)

* Updating gulpfile and package.json

* More package.json and linting updates

* Adding in simplified callback updates/tests

* Import fixes

* Updating package.json

* Gulpfile script changes

* Gulpfile updates

* Rebuilding package with monorepo updates

* Re-running test

* Updating unittest

* Updating test dependencies

* Updating DESCRIPTION and .Rbuildignore forchecks

* Updating function descriptions and NAMESPACE imports

* Fixed examples and updated docs

* Updating version

* Remove references to dash namespace within package

* Update testthat and remove deprecated context calls

* Removed fixup_metadata.R

* Removing more dash namespace references

* Concatenating component function files

* Updating checks

* Merging components into package R files

* Fixing check

* More package cleanup

* testthat 3.0.0

* Rebuilding package

* Fixed conditional for multiple outputs

* Fix no_update test

* Fixing callback_instrumentation test

* Fixing unit test

* Added DBC to Dash R package (#273)

* Adding dbc to dashR namespace

* updated gitignore

* Adding dbc docs and updating gulpfile

* Updating test with dbc

* Moved misc tests and added dbc snapshot

* Fixing test

* fixing id

* Fixed export and test

* Reverting sorted prop order

* Checks updates

* Re-running test

* Remove html exports and update tags (#274)

* Updating tags and html exports

* Re-running tests

* Updating tag generation

* Re-running tests

* Updating tests to use new html list syntax

* Adjusting tests

* Re-run tests again

* Updating tests

* Wrapping up test fixes

* Percy test

* CRAN submission updates

* Fix callback outputs with short ID's (#280)

* CRAN submission updates

* Callback output ID validation fixes

* Updating duplicate callbacks test

* Security updates

* Update R/utils.R

Co-authored-by: Dean Attali <[email protected]>

* Updating error message

Co-authored-by: Dean Attali <[email protected]>

* Updating README link

Co-authored-by: Ryan Patrick Kyle <[email protected]>
Co-authored-by: Ryan Patrick Kyle <[email protected]>
Co-authored-by: Nicolas Kruchten <[email protected]>
Co-authored-by: rpkyle <[email protected]>
Co-authored-by: Steve Sperandeo <[email protected]>
Co-authored-by: Dean Attali <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature parity Modifications to improve parity across Dash implementations size: 4
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support for callback timing and general graph improvements
3 participants