Coder Social home page Coder Social logo

appsilon / shiny.benchmark Goto Github PK

View Code? Open in Web Editor NEW
30.0 5.0 2.0 1.3 MB

Tools to measure performance improvements in shiny apps

Home Page: https://appsilon.github.io/shiny.benchmark/

R 87.56% JavaScript 8.83% Shell 1.72% CSS 1.89%
performance-testing r shiny rhinoverse

shiny.benchmark's Issues

Remove git2r dependency

Right now git2r is not needed since most of the git functions are done by system("code") and we only need simple functions. With time we may need some more complex solutions and then we can reconsider using git2r. Right now it is only increasing complexity.

Last test does not work in Cypress

For some reason the last test in the Cypress list of tests does not works. It does not appear in the final list of time measurements.

Fix current lint issues

The beta version has some lint issues. Fix it using linter package and keep it organized for the further implementions

Improve README file

Add information such as:

  • How to install the package
  • What are the mandatory setup
  • How to install Cypress in your machine
  • How to use the package

Improve logs (INFO, DEBUG, WARNINGS)

Right now it is impossible to run the tests in silent mode. It will be better to have something like options(shiny.performance.logs = "debug") info, error and so on...

Improve error messages

Test can fail because of different problems e.g.:

  • not able to find the desired commit
  • not able to run renv::restore
  • not able to find the set of tests
  • permission issues

We should be able to inform the user the source of the error

Create a report template

It should be a Quarto template. The main idea is to have a wrapper like shiny.performance::create_report("path_to_report.md") and shiny.performance::render_report("path_to_report.md"). This way, the user can edit the path_to_report.md file instead of just observing the result.

Create an app and git setup to allow testing all the functionalities of this package

It is a little bit trick to test the functionalities of this package since we need an application and several branches with different setups. Therefore, it would be great to create a script able to setup an example application and all the characteristics desired (renv/no renv, single file/multiple files, no repetition/several repetitions, ...).

Update repo name

Update repo name so GitHub actions can run the tests properly

Define package name, color and animal

Animals:

List of the fastest animals in the earth:
https://en.wikipedia.org/wiki/Fastest_animals#:~:text=10%20References-,Fastest%20organism,conflicting%20reports%20of%20recorded%20speeds.

Peregrine Falcon - Fastest animal on earth
Cheetah - Fastest land animal on earth

Package name:

shiny.beanchmark
shiny.performance

Color:
Red (#FF0000) is the fastest color in a vacuum space
Violet (#8F00FF) is the slowest color in a vacuum space

f <- colorRampPalette(colors = c("#FF0000", "#8F00FF"))
f(3)[2]

Allow for different tests in different branches

Allow user to provide:

  • single test file (run the same set of test in all branches)
  • multiple test files as input (run specific tests for each branch)
  • multiple test files stored in the specific commit (tests/ folder)

Always run tests in a temporary folder

We do not want to add/remove files from the current git folder. In this case, it is preferable to run all the tests in a temporary folder. It will work unless we have hard coded paths in the application.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.