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

wasm + shinylive #243

Merged
merged 24 commits into from
May 6, 2024
Merged

wasm + shinylive #243

merged 24 commits into from
May 6, 2024

Conversation

pawelru
Copy link
Contributor

@pawelru pawelru commented Apr 15, 2024

close #32

tlg-catalog-table.mp4
tlg-catalog-app.mp4
  • for each tlg output:
    • move the current output into "static" tab
    • add a new tab "webR" with webR instance including both setup code as well as variant code
  • for each teal app:
    • move the current output into "static" tab
    • add a new tab "shinylive" with a shinylive-webr interactive instance of an app

This is done for one article only but it's assumed that once green-lighted this will be copy&pasted for other articles as well.

Please share your thoughts on:

  • whether it is working for you
  • wording / tab titles / look&feel
  • page layout
    I have experimented a lot and have found out that the tab-based layout looks the best for me. I considered vertical alignment (static output above webR or vice versa) but then if one executes webR there will be two identical outputs one after another which looks odd.
    I have also considered having wasm alone (i.e. without static outputs) but this would force users to click "run" to see the outcome as well as eliminate testability of the article code (i.e. run-on-demand vs run-on-render). Therefore I think we have to have the "static" part.

@cicdguy I might need some help to test whether deployed version is fully functional as well as the deployment process itself. In particular I have found out that folks observed some issues like this. I would appreciate your help on this. Feel free to push commits if needed.

TODO:

  • use different repos for stable / devel profile
  • other articles

Copy link
Contributor

github-actions bot commented Apr 15, 2024

CLA Assistant Lite bot ✅ All contributors have signed the CLA

@pawelru
Copy link
Contributor Author

pawelru commented Apr 15, 2024

I have read the CLA Document and I hereby sign the CLA

@cicdguy
Copy link
Contributor

cicdguy commented Apr 15, 2024

This is so cool! Let me test it out locally and also investigate the deployment issues you're referring to.

Copy link
Contributor

@Melkiades Melkiades left a comment

Choose a reason for hiding this comment

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

Amazing stuff Pawel!! I am only a bit worried about backend speed with shinylive. Could it be a issue wdyt?

@pawelru
Copy link
Contributor Author

pawelru commented Apr 16, 2024

I am only a bit worried about backend speed with shinylive. Could it be a issue wdyt?

Honestly - I don't know. By definition, this is executed in the browser so it's very much depends on the user local machine. I'm afraid there is little we can do about this... I will try to research this more

@pawelru
Copy link
Contributor Author

pawelru commented Apr 16, 2024

Hi All,

I have pushed an alternative way of embedding webR - inside collapsible panel instead of a tab. Please let me know which one is better

  • tab
    (please refer to the top message)

  • panel

webr-table-callout.mp4
webr-app-callout.mp4

These two exists in a separate articles so you can render and try this out yourself. (I would actually recommend to do it)

Please share your feedback with emojis:
🚀 tabs
🎉 panel

@donyunardi
Copy link

I'm having a hard time running this locally. The error log is so long that I can't see the beginning, which usually gives me clues about any missed dependencies.

I'm pretty sure I'm just missing some dependencies. So far, I've installed shinylive, webr, and webshot.
Any idea what else I should install?

Incomplete Error Log
local function resolveDependencyLinkTags(linkTags)
   if linkTags ~= nil then
      for i, v in ipairs(linkTags) do
         v.href = resolvePath(v.href)
      end
      return linkTags
   else
      return nil
   end
end

-- Convert dependency files which may be just a string (path) or
-- incomplete objects into valid file dependencies
local function resolveFileDependencies(name, dependencyFiles)
   if dependencyFiles ~= nil then
 
     -- make sure this is an array
     if type(dependencyFiles) ~= "table" or not utils.table.isarray(dependencyFiles) then
       error("Invalid HTML Dependency: " .. name .. " property must be an array")
     end

 
     local finalDependencies = {}
     for i, v in ipairs(dependencyFiles) do
      if type(v) == "table" then
             -- fill in the name, if one is not provided
             if v.name == nil then
                v.name = pandoc.path.filename(v.path)
             end
             finalDependencies[i] = v
       elseif type(v) == "string" then
             -- turn a string into a name and path
             finalDependencies[i] = {
                name = pandoc.path.filename(v),
                path = v
             }
       else
             -- who knows what this is!
             error("Invalid HTML Dependency: " .. name .. " property contains an unexpected type.")
       end
     end
     return finalDependencies
   else
     return nil
   end
end

-- Convert dependency files which may be just a string (path) or
-- incomplete objects into valid file dependencies
local function resolveServiceWorkers(serviceworkers)
   if serviceworkers ~= nil then 
    -- make sure this is an array
     if type(serviceworkers) ~= "table" or not utils.table.isarray(serviceworkers) then
       error("Invalid HTML Dependency: serviceworkers property must be an array")
     end
 
     local finalServiceWorkers = {}
     for i, v in ipairs(serviceworkers) do
       if type(v) == "table" then
         -- fill in the destination as the root, if one is not provided
         if v.source == nil then
           error("Invalid HTML Dependency: a serviceworker must have a source.")
         else
           v.source = resolvePathExt(v.source)
         end
         finalServiceWorkers[i] = v

       elseif type(v) == "string" then
         -- turn a string into a name and path
         finalServiceWorkers[i] = {
            source = resolvePathExt(v)
         }
       else
         -- who knows what this is!
         error("Invalid HTML Dependency: serviceworkers property contains an unexpected type.")
       end
     end
     return finalServiceWorkers
   else
     return nil
   end
 end


local latexTableWithOptionsPattern = "(\\begin{table}%[[^%]]+%])(.*)(\\end{table})"
local latexTablePattern = "(\\begin{table})(.*)(\\end{table})"
local latexLongtablePatternwWithPosAndAlign = "(\\begin{longtable}%[[^%]]+%]{[^\n]*})(.*)(\\end{longtable})"
local latexLongtablePatternWithPos = "(\\begin{longtable}%[[^%]]+%])(.*)(\\end{longtable})"
local latexLongtablePatternWithAlign = "(\\begin{longtable}{[^\n]*})(.*)(\\end{longtable})"
local latexLongtablePattern = "(\\begin{longtable})(.*)(\\end{longtable})"
local latexTabularPatternWithPosAndAlign = "(\\begin{tabular}%[[^%]]+%]{[^\n]*})(.*)(\\end{tabular})"
local latexTabularPatternWithPos = "(\\begin{tabular}%[[^%]]+%])(.*)(\\end{tabular})"
local latexTabularPatternWithAlign = "(\\begin{tabular}{[^\n]*})(.*)(\\end{tabular})"
local latexTabularPattern = "(\\begin{tabular})(.*)(\\end{tabular})"
local latexCaptionPattern =  "(\\caption{)(.-)(}[^\n]*\n)"

local latexTablePatterns = pandoc.List({
  latexTableWithOptionsPattern,
  latexTablePattern,
  latexLongtablePatternwWithPosAndAlign,
  latexLongtablePatternWithPos,
  latexLongtablePatternWithAlign,
  latexLongtablePattern,
  latexTabularPatternWithPosAndAlign,
  latexTabularPatternWithPos,
  latexTabularPatternWithAlign,
  latexTabularPattern,
})

-- global quarto params
local paramsJson = base64.decode(os.getenv("QUARTO_FILTER_PARAMS"))
local quartoParams = json.decode(paramsJson)

function param(name, default)
  local value = quartoParams[name]
  if value == nil then
    value = default
  end
  return value
end

local function projectDirectory() 
   return os.getenv("QUARTO_PROJECT_DIR")
end

local function projectOutputDirectory()
   local outputDir = param("project-output-dir", "")
   local projectDir = projectDirectory()
   if projectDir then
      return pandoc.path.join({projectDir, outputDir})
   else
      return nil
   end
end

-- Provides the project relative path to the current input
-- if this render is in the context of a project
local function projectRelativeOutputFile()
   
   -- the project directory
   local projDir = projectDirectory()

   -- the offset to the project
   if projDir then
      -- relative from project directory to working directory
      local workingDir = pandoc.system.get_working_directory()
      local projRelFolder = pandoc.path.make_relative(workingDir, projDir, false)
      
      -- add the file output name and normalize
      local projRelPath = pandoc.path.join({projRelFolder, PANDOC_STATE['output_file']})
      return pandoc.path.normalize(projRelPath);
   else
      return nil
   end
end

local function inputFile()
   local source = param("quarto-source", "")
   if pandoc.path.is_absolute(source) then 
      return source
   else
      local projectDir = projectDirectory()
      if projectDir then
         return pandoc.path.join({projectDir, source})
      else
         -- outside of a project, quarto already changes 
         -- pwd to the file's directory prior to calling pandoc,
         -- so we should just use the filename
         -- https://github.com/quarto-dev/quarto-cli/issues/7424
         local path_parts = pandoc.path.split(source)
         return pandoc.path.join({pandoc.system.get_working_directory(), path_parts[#path_parts]})
      end   
   end
end

local function outputFile() 
   local projectOutDir = projectOutputDirectory()
   if projectOutDir then
      local projectDir = projectDirectory()
      if projectDir then
         local input = pandoc.path.directory(inputFile())
         local relativeDir = pandoc.path.make_relative(input, projectDir)
         if relativeDir and relativeDir ~= '.' then
            return pandoc.path.join({projectOutDir, relativeDir, PANDOC_STATE['output_file']})
         end
      end
      return pandoc.path.join({projectOutDir, PANDOC_STATE['output_file']})
   else
      return pandoc.path.join({pandoc.system.get_working_directory(), PANDOC_STATE['output_file']})
   end
end

local function version()
   local versionString = param('quarto-version', 'unknown')
   local success, versionObject = pcall(pandoc.types.Version, versionString)
   if success then
      return versionObject
   else
      return versionString
   end
end

local function projectProfiles()
   return param('quarto_profile', {})
end

local function projectOffset() 
   return param('project-offset', nil)
end

local function file_exists(name)
   local f = io.open(name, 'r')
   if f ~= nil then
     io.close(f)
     return true
   else
     return false
   end
 end


 local function write_file(path, contents, mode)
   pandoc.system.make_directory(pandoc.path.directory(path), true)
   mode = mode or "a"
   local file = io.open(path, mode)
   if file then
     file:write(contents)
     file:close()
     return true
   else
     return false
   end
 end
 
 local function read_file(path)
   local file = io.open(path, "rb") 
   if not file then return nil end
   local content = file:read "*a"
   file:close()
   return content
 end

 local function remove_file(path) 
   return os.remove(path)
 end

-- Quarto internal module - makes functions available
-- through the filters
_quarto = {   
   processDependencies = processDependencies,
   format = format,
   patterns = {
      latexTabularPattern = latexTabularPattern,
      latexTablePattern = latexTablePattern,
      latexLongtablePattern = latexLongtablePattern,
      latexTablePatterns = latexTablePatterns,
      latexCaptionPattern = latexCaptionPattern
   },
   utils = utils,
   withScriptFile = function(file, callback)
      table.insert(scriptFile, file)
      local result = callback()
      table.remove(scriptFile, #scriptFile)
      return result
   end,
   projectOffset = projectOffset,
   file = {
      read = read_file,
      write = function(path, contents) 
         return write_file(path, contents, "wb") 
      end,
      write_text = function(path, contents) 
         return write_file(path, contents, "a")
      end,
      exists = file_exists,
      remove = remove_file
   }
}

-- this injection here is ugly but gets around
-- a hairy order-of-import issue that would otherwise happen
-- because string_to_inlines requires some filter code that is only
-- later imported

_quarto.utils.string_to_inlines = function(s)
   return string_to_quarto_ast_inlines(s)
end 
_quarto.utils.string_to_blocks = function(s)
   return string_to_quarto_ast_blocks(s)
end
_quarto.utils.render = function(n)
   return _quarto.ast.walk(n, render_extended_nodes())
end

-- The main exports of the quarto module
quarto = {
  doc = {
    add_html_dependency = function(htmlDependency)
   
      -- validate the dependency
      if htmlDependency.name == nil then 
         error("HTML dependencies must include a name")
      end

      if htmlDependency.meta == nil and 
         htmlDependency.links == nil and 
         htmlDependency.scripts == nil and 
         htmlDependency.stylesheets == nil and 
         htmlDependency.resources == nil and
         htmlDependency.serviceworkers == nil and
         htmlDependency.head == nil then
         error("HTML dependencies must include at least one of meta, links, scripts, stylesheets, serviceworkers, or resources. All appear empty.")
      end

      -- validate that the meta is as expected
      if htmlDependency.meta ~= nil then
         if type(htmlDependency.meta) ~= 'table' then
               error("Invalid HTML Dependency: meta value must be a table")
         elseif utils.table.isarray(htmlDependency.meta) then
               error("Invalid HTML Dependency: meta value must must not be an array")
         end
      end

      -- validate link tags
      if htmlDependency.links ~= nil then
         if type(htmlDependency.links) ~= 'table' or not utils.table.isarray(htmlDependency.links) then
            error("Invalid HTML Dependency: links must be an array")
         else 
            for i, v in ipairs(htmlDependency.links) do
               if type(v) ~= "table" or (v.href == nil or v.rel == nil) then
                 error("Invalid HTML Dependency: each link must be a table containing both rel and href properties.")
               end
            end
         end
      end
   
      -- resolve names so they aren't required
      htmlDependency.scripts = resolveFileDependencies("scripts", htmlDependency.scripts)
      htmlDependency.stylesheets = resolveFileDependencies("stylesheets", htmlDependency.stylesheets)
      htmlDependency.resources = resolveFileDependencies("resources", htmlDependency.resources)

      -- pass the dependency through to the file
      writeToDependencyFile(dependency("html", {
         name = htmlDependency.name,
         version = htmlDependency.version,
         external = true,
         meta = htmlDependency.meta,
         links = resolveDependencyLinkTags(htmlDependency.links),
         scripts = resolveDependencyFilePaths(htmlDependency.scripts),
         stylesheets = resolveDependencyFilePaths(htmlDependency.stylesheets),
         resources = resolveDependencyFilePaths(htmlDependency.resources),
         serviceworkers = resolveServiceWorkers(htmlDependency.serviceworkers),
         head = htmlDependency.head,
      }))
    end,

    attach_to_dependency = function(name, pathOrFileObj)

      if name == nil then
         fail("The target dependency name for an attachment cannot be nil. Please provide a valid dependency name.")
      end

      -- path can be a string or an obj { name, path }
      local resolvedFile = {}
      if type(pathOrFileObj) == "table" then

         -- validate that there is at least a path
         if pathOrFileObj.path == nil then
            fail("Error attaching to dependency '" .. name .. "'.\nYou must provide a 'path' when adding an attachment to a dependency.")
         end

         -- resolve a name, if one isn't provided
         local name = pathOrFileObj.name      
         if name == nil then
            name = pandoc.path.filename(pathOrFileObj.path)
         end

         -- the full resolved file
         resolvedFile = {
            name = name,
            path = resolvePathExt(pathOrFileObj.path)
         }
      else
         resolvedFile = {
            name = pandoc.path.filename(pathOrFileObj),
            path = resolvePathExt(pathOrFileObj)
         }
      end

      writeToDependencyFile(dependency("html-attachment", {
         name = name,
         file = resolvedFile
      }))
    end,
  
    use_latex_package = function(package, options)
      writeToDependencyFile(dependency("usepackage", {package = package, options = options }))
    end,

    add_format_resource = function(path)
      writeToDependencyFile(dependency("format-resources", { file = resolvePathExt(path)}))
    end,

    add_resource = function(path)
      writeToDependencyFile(dependency("resources", { file = resolvePathExt(path)}))
    end,

    add_supporting = function(path)
      writeToDependencyFile(dependency("supporting", { file = resolvePathExt(path)}))
    end,

    include_text = function(location, text)
      writeToDependencyFile(dependency("text", { text = text, location = resolveLocation(location)}))
    end,
  
    include_file = function(location, path)
      writeToDependencyFile(dependency("file", { path = resolvePathExt(path), location = resolveLocation(location)}))
    end,

    is_format = format.isFormat,

    cite_method = function() 
      local citeMethod = param('cite-method', 'citeproc')
      return citeMethod
    end,
    pdf_engine = function() 
      local engine = param('pdf-engine', 'pdflatex')
      return engine      
    end,
    has_bootstrap = function() 
      local hasBootstrap = param('has-bootstrap', false)
      return hasBootstrap
    end,
    is_filter_active = function(filter)
      return quarto_global_state.active_filters[filter]
    end,

    output_file = outputFile(),
    input_file = inputFile(),
    crossref = {}
  },
  project = {
   directory = projectDirectory(),
   offset = projectOffset(),
   profile = pandoc.List(projectProfiles()),
   output_directory = projectOutputDirectory()
  },
  utils = {
   dump = utils.dump,
   table = utils.table,
   type = utils.type,
   resolve_path = resolvePathExt,
   resolve_path_relative_to_document = resolvePath,
   as_inlines = utils.as_inlines,
   as_blocks = utils.as_blocks,
   string_to_blocks = utils.string_to_blocks,
   string_to_inlines = utils.string_to_inlines,
   render = utils.render,
   match = utils.match,
   add_to_blocks = utils.add_to_blocks
  },
  json = json,
  base64 = base64,
  log = logging,
  version = version()
}

-- alias old names for backwards compatibility
quarto.doc.addHtmlDependency = quarto.doc.add_html_dependency
quarto.doc.attachToDependency = quarto.doc.attach_to_dependency
quarto.doc.useLatexPackage = quarto.doc.use_latex_package
quarto.doc.addFormatResource = quarto.doc.add_format_resource
quarto.doc.includeText = quarto.doc.include_text
quarto.doc.includeFile = quarto.doc.include_file
quarto.doc.isFormat = quarto.doc.is_format
quarto.doc.citeMethod = quarto.doc.cite_method
quarto.doc.pdfEngine = quarto.doc.pdf_engine
quarto.doc.hasBootstrap = quarto.doc.has_bootstrap
quarto.doc.project_output_file = projectRelativeOutputFile
quarto.utils.resolvePath = quarto.utils.resolve_path

-- since Pandoc 3, pandoc.Null is no longer an allowed constructor.
-- this workaround makes it so that our users extensions which use pandoc.Null 
-- still work, assuming they call pandoc.Null() in a "simple" way.
pandoc.Null = function()
   return {}
end
:1537) An error occurred:
Error reading dependencies from /Users/unardid/Documents/dsx/insightengineering/tlg-catalog/book/_extensions/coatless/webr/qwebr-monaco-editor-init.html
Error running filter /Applications/quarto/share/filters/main.lua:
/Applications/quarto/share/filters/main.lua:2246: attempt to call a nil value (global 'crash_with_stack_trace')
stack traceback:
	/Applications/quarto/share/filters/main.lua:1826: in function 'fail'
	[string "..."]:1537: in upvalue 'processFileDependency'
	[string "..."]:1602: in field 'processDependencies'
	/Applications/quarto/share/filters/main.lua:7356: in field 'Meta'
	/Applications/quarto/share/filters/main.lua:240: in function 'run_emulated_filter'
	/Applications/quarto/share/filters/main.lua:942: in local 'callback'
	/Applications/quarto/share/filters/main.lua:960: in upvalue 'run_emulated_filter_chain'
	/Applications/quarto/share/filters/main.lua:996: in function </Applications/quarto/share/filters/main.lua:993>

@pawelru
Copy link
Contributor Author

pawelru commented Apr 22, 2024

Thanks Dony for checking this. After your message I noticed that one file is missing because it was git-ignored. I added this to the repo and this should work. Can you please try again now?

@donyunardi
Copy link

donyunardi commented Apr 23, 2024

Thanks @pawelru. It works for me now.
I also ended up spending some time learning about webr and shinylive to better understand the framework, which helped me prepare the environment to run this.

Performance

I noticed that the teal app is performing quite slow, for example when adding a filter, during the shinylive session. It felt like there's a delay to the reactivity.
Do you experience this too? Perhaps this is just my machine since it's using my browser?

Design

When I see a panel, I typically perceive it as a notification, and it's not clear that I have to click the panel or the arrow button on the far right, which then reveals another major interaction.
I understand this is a personal preference.
For now, I like the tab panel better because it's more apparent.

Thanks for exploring this! This is interesting to see and we should look into this further.

@pawelru
Copy link
Contributor Author

pawelru commented Apr 23, 2024

Thank you Dony for a good feedback. I can confirm that I am also observing some delays. This is probably coming from webR itself. I cannot spot any settings that could impact performance directly so if this is (will be) a big problem then we would have to dig much deeper.

When I see a panel, I typically perceive it as a notification, and it's not clear that I have to click the panel or the arrow button on the far right, which then reveals another major interaction.

Note that we can work on panel CSS styling and / or the displayed text label (e.g. "Click here to try this out in WebR"). Would this change your view on that? Let's also see what others will say.

@shajoezhu
Copy link
Contributor

first of all, this is an absolutely amazing feature!

i prefer the tab version, as the collapse thing might just get too long and confusing,
however, i like the tab name to be called "Try me with webR"

@donyunardi
Copy link

donyunardi commented Apr 24, 2024

Note that we can work on panel CSS styling and / or the displayed text label (e.g. "Click here to try this out in WebR"). Would this change your view on that? Let's also see what others will say.

Yeah, I'm always open to seeing what it looks like if we had a chance to design this. If it makes sense for everyone, I'm fine with going with it. I don't have a strong preference here.

By the way, I did try to get the feel if the editor and the teal app are side-by-side in full screen.
image

The full screen can be achieved by using the .column-screen class.

I like this format better but I wish there's a way to set the editor's width when loaded. I want to make it smaller so we can see the teal's app in full view.

@donyunardi
Copy link

donyunardi commented Apr 24, 2024

I have also considered having wasm alone (i.e. without static outputs) but this would force users to click "run" to see the outcome as well as eliminate testability of the article code (i.e. run-on-demand vs run-on-render). Therefore I think we have to have the "static" part.

From what I've observed, Once webR and shinylive finished with loading the packages, the code will run automatically and generate the static tables and teal app. But if we're using the static output for unit testing, then yes, maybe we should keep them.

It sucks because the static output for teal app is forcing the tabset panel to be two levels.

If we don't have static output for teal app, we can expand the view to not use the right margin like so:
image

This view already looks good to me and will look even better on a wide-screen monitor.

@pawelru
Copy link
Contributor Author

pawelru commented Apr 24, 2024

From what I've observed, Once webR and shinylive finished with loading the packages, the code will run automatically and generate the static tables and teal app. But if we're using the static output for unit testing, then yes, maybe we should keep them.

There is one more important thing against going webr only which is when the error occurs. Under webr-only scenario, all the code will be evaluated only in the user browser and the book rendering process will be always successful. We have to have this code evaluated during render as well. I actually have one more idea - eval and don't include. Let me try this one as well

@pawelru
Copy link
Contributor Author

pawelru commented Apr 24, 2024

OK I have pushed a new version with a separate article using webr-only approach. Please have a look.

I personally don't really like that. It's slow (one needs to wait for packages install and code eval to see the results), not so nice as quarto-rendered outputs and it's quite complicated (it's not super obvious to add include=FALSE and then use shortcode that would re-use this code). But still - please have a look at tell me what you think about this.

I was also experimenting with the layout width for shinylive apps with no success. If I extend the width of this callout/tab then it makes the width of the overall table a little bit smaller. That's some bad side-effect that I don't know how to control
Original:
image
feature branch with expanded with of shinylive:
image
(note that the "teal App" title is cutted-off because of the smaller overall width)

I have abandoned this for now

@pawelru
Copy link
Contributor Author

pawelru commented Apr 25, 2024

It seems that there is a preference towards the tabs so I'm going to continue with that for all the rest of articles

@donyunardi
Copy link

donyunardi commented Apr 25, 2024

OK I have pushed a new version with a separate article using webr-only approach. Please have a look.
I personally don't really like that. It's slow (one needs to wait for packages install and code eval to see the results), not so nice as quarto-rendered outputs and it's quite complicated (it's not super obvious to add include=FALSE and then use shortcode that would re-use this code). But still - please have a look at tell me what you think about this.

I see your point on this and I agree. Because webR takes a while to load, we shouldn't have to force users to wait for the webR/shinylive to run if they don't want to use it and just want to see the result quickly.

In the end, I like what you did with AET01_AESI the best where we have "Preview" and "Try this using webR/shinylive" tabs.

@pawelru
Copy link
Contributor Author

pawelru commented Apr 26, 2024

This is ready to be reviewed 🚀

@pawelru pawelru marked this pull request as ready for review April 26, 2024 17:09
Copy link
Contributor

github-actions bot commented Apr 29, 2024

Unit Tests Summary

341 tests     0 ✅  56s ⏱️
136 suites  341 💤
  1 files      0 ❌

Results for commit 0d254be.

♻️ This comment has been updated with latest results.

Copy link
Contributor

github-actions bot commented Apr 29, 2024

Unit Test Performance Difference

Test suite performance difference
Test Suite $Status$ Time on main $±Time$ $±Tests$ $±Skipped$ $±Failures$ $±Errors$
graph-snaps 💀 $4.22$ $-4.22$ $-42$ $-42$ $0$ $0$
graphs-efficacy-fstg01 👶 $+2.41$ $+7$ $+7$ $0$ $0$
graphs-efficacy-fstg02 👶 $+0.50$ $+7$ $+7$ $0$ $0$
graphs-efficacy-kmg01 👶 $+0.99$ $+8$ $+8$ $0$ $0$
graphs-efficacy-mmrmg01 👶 $+0.77$ $+6$ $+6$ $0$ $0$
graphs-efficacy-mmrmg02 👶 $+0.15$ $+3$ $+3$ $0$ $0$
graphs-other-brg01 👶 $+0.19$ $+9$ $+9$ $0$ $0$
graphs-other-bwg01 👶 $+0.69$ $+9$ $+9$ $0$ $0$
graphs-other-cig01 👶 $+0.20$ $+5$ $+5$ $0$ $0$
graphs-other-ippg01 👶 $+0.05$ $+2$ $+2$ $0$ $0$
graphs-other-ltg01 👶 $+0.18$ $+7$ $+7$ $0$ $0$
graphs-other-mng01 👶 $+0.47$ $+7$ $+7$ $0$ $0$
graphs-pharmacokinetic-pkcg01 👶 $+0.05$ $+2$ $+2$ $0$ $0$
graphs-pharmacokinetic-pkcg02 👶 $+0.05$ $+2$ $+2$ $0$ $0$
graphs-pharmacokinetic-pkcg03 👶 $+0.06$ $+2$ $+2$ $0$ $0$
graphs-pharmacokinetic-pkpg01 👶 $+0.06$ $+2$ $+2$ $0$ $0$
graphs-pharmacokinetic-pkpg02 👶 $+0.07$ $+2$ $+2$ $0$ $0$
graphs-pharmacokinetic-pkpg03 👶 $+0.05$ $+1$ $+1$ $0$ $0$
graphs-pharmacokinetic-pkpg04 👶 $+0.05$ $+1$ $+1$ $0$ $0$
graphs-pharmacokinetic-pkpg06 👶 $+0.07$ $+4$ $+4$ $0$ $0$
listings-ADA-adal02 👶 $+0.04$ $+1$ $+1$ $0$ $0$
listings-ECG-egl01 👶 $+0.05$ $+1$ $+1$ $0$ $0$
listings-adverse-events-ael01 👶 $+0.03$ $+1$ $+1$ $0$ $0$
listings-adverse-events-ael01_nollt 👶 $+0.03$ $+1$ $+1$ $0$ $0$
listings-adverse-events-ael02 👶 $+0.05$ $+1$ $+1$ $0$ $0$
listings-adverse-events-ael02_ed 👶 $+0.06$ $+1$ $+1$ $0$ $0$
listings-adverse-events-ael03 👶 $+0.05$ $+1$ $+1$ $0$ $0$
listings-adverse-events-ael04 👶 $+0.04$ $+1$ $+1$ $0$ $0$
listings-concomitant-medications-cml01 👶 $+0.05$ $+1$ $+1$ $0$ $0$
listings-concomitant-medications-cml02a_gl 👶 $+0.03$ $+1$ $+1$ $0$ $0$
listings-concomitant-medications-cml02b_gl 👶 $+0.03$ $+1$ $+1$ $0$ $0$
listings-development-safety-update-report-dsur4 👶 $+0.03$ $+1$ $+1$ $0$ $0$
listings-disposition-dsl01 👶 $+0.03$ $+1$ $+1$ $0$ $0$
listings-disposition-dsl02 👶 $+0.04$ $+1$ $+1$ $0$ $0$
listings-efficacy-oncl01 👶 $+0.04$ $+1$ $+1$ $0$ $0$
listings-exposure-exl01 👶 $+0.04$ $+1$ $+1$ $0$ $0$
listings-lab-results-lbl01 👶 $+0.04$ $+1$ $+1$ $0$ $0$
listings-lab-results-lbl01_rls 👶 $+0.04$ $+1$ $+1$ $0$ $0$
listings-lab-results-lbl02a 👶 $+0.04$ $+1$ $+1$ $0$ $0$
listings-lab-results-lbl02a_rls 👶 $+0.05$ $+1$ $+1$ $0$ $0$
listings-lab-results-lbl02b 👶 $+0.04$ $+1$ $+1$ $0$ $0$
listings-medical-history-mhl01 👶 $+0.04$ $+1$ $+1$ $0$ $0$
listings-pharmacokinetic-pkcl01 👶 $+0.04$ $+1$ $+1$ $0$ $0$
listings-pharmacokinetic-pkcl02 👶 $+0.06$ $+1$ $+1$ $0$ $0$
listings-pharmacokinetic-pkpl01 👶 $+0.04$ $+1$ $+1$ $0$ $0$
listings-pharmacokinetic-pkpl02 👶 $+0.04$ $+1$ $+1$ $0$ $0$
listings-pharmacokinetic-pkpl04 👶 $+0.04$ $+1$ $+1$ $0$ $0$
listings-vital-signs-vsl01 👶 $+0.06$ $+1$ $+1$ $0$ $0$
markdown-snaps 💀 $52.33$ $-52.33$ $-253$ $-253$ $0$ $0$
tables-ADA-adat01 👶 $+0.21$ $+1$ $+1$ $0$ $0$
tables-ADA-adat02 👶 $+0.07$ $+1$ $+1$ $0$ $0$
tables-ADA-adat03 👶 $+0.31$ $+1$ $+1$ $0$ $0$
tables-ADA-adat04a 👶 $+0.16$ $+1$ $+1$ $0$ $0$
tables-ADA-adat04b 👶 $+0.14$ $+1$ $+1$ $0$ $0$
tables-ECG-egt01 👶 $+0.52$ $+1$ $+1$ $0$ $0$
tables-ECG-egt02 👶 $+0.14$ $+2$ $+2$ $0$ $0$
tables-ECG-egt03 👶 $+1.39$ $+2$ $+2$ $0$ $0$
tables-ECG-egt04 👶 $+0.17$ $+1$ $+1$ $0$ $0$
tables-ECG-egt05_qtcat 👶 $+0.29$ $+1$ $+1$ $0$ $0$
tables-adverse-events-aet01 👶 $+0.64$ $+4$ $+4$ $0$ $0$
tables-adverse-events-aet01_aesi 👶 $+0.60$ $+4$ $+4$ $0$ $0$
tables-adverse-events-aet02 👶 $+1.71$ $+13$ $+13$ $0$ $0$
tables-adverse-events-aet02_smq 👶 $+0.15$ $+2$ $+2$ $0$ $0$
tables-adverse-events-aet03 👶 $+0.32$ $+1$ $+1$ $0$ $0$
tables-adverse-events-aet04 👶 $+3.28$ $+8$ $+8$ $0$ $0$
tables-adverse-events-aet04_pi 👶 $+1.74$ $+8$ $+8$ $0$ $0$
tables-adverse-events-aet05 👶 $+0.10$ $+2$ $+2$ $0$ $0$
tables-adverse-events-aet05_all 👶 $+0.10$ $+2$ $+2$ $0$ $0$
tables-adverse-events-aet06 👶 $+1.50$ $+5$ $+5$ $0$ $0$
tables-adverse-events-aet06_smq 👶 $+0.31$ $+3$ $+3$ $0$ $0$
tables-adverse-events-aet07 👶 $+0.10$ $+2$ $+2$ $0$ $0$
tables-adverse-events-aet09 👶 $+0.31$ $+2$ $+2$ $0$ $0$
tables-adverse-events-aet09_smq 👶 $+0.14$ $+2$ $+2$ $0$ $0$
tables-adverse-events-aet10 👶 $+0.18$ $+2$ $+2$ $0$ $0$
tables-concomitant-medications-cmt01 👶 $+0.38$ $+4$ $+4$ $0$ $0$
tables-concomitant-medications-cmt01a 👶 $+0.70$ $+4$ $+4$ $0$ $0$
tables-concomitant-medications-cmt01b 👶 $+0.90$ $+3$ $+3$ $0$ $0$
tables-concomitant-medications-cmt02_pt 👶 $+0.08$ $+1$ $+1$ $0$ $0$
tables-deaths-dtht01 👶 $+0.50$ $+4$ $+4$ $0$ $0$
tables-demography-dmt01 👶 $+0.84$ $+5$ $+5$ $0$ $0$
tables-disclosures-disclosurest01 👶 $+0.63$ $+6$ $+6$ $0$ $0$
tables-disclosures-eudrat01 👶 $+0.13$ $+1$ $+1$ $0$ $0$
tables-disclosures-eudrat02 👶 $+0.09$ $+1$ $+1$ $0$ $0$
tables-disposition-dst01 👶 $+0.37$ $+3$ $+3$ $0$ $0$
tables-disposition-pdt01 👶 $+0.16$ $+1$ $+1$ $0$ $0$
tables-disposition-pdt02 👶 $+0.07$ $+1$ $+1$ $0$ $0$
tables-efficacy-aovt01 👶 $+0.89$ $+1$ $+1$ $0$ $0$
tables-efficacy-aovt02 👶 $+0.15$ $+1$ $+1$ $0$ $0$
tables-efficacy-aovt03 👶 $+0.95$ $+1$ $+1$ $0$ $0$
tables-efficacy-cfbt01 👶 $+0.40$ $+1$ $+1$ $0$ $0$
tables-efficacy-cmht01 👶 $+2.14$ $+2$ $+2$ $0$ $0$
tables-efficacy-coxt01 👶 $+0.40$ $+4$ $+4$ $0$ $0$
tables-efficacy-coxt02 👶 $+0.13$ $+2$ $+2$ $0$ $0$
tables-efficacy-dort01 👶 $+1.17$ $+4$ $+4$ $0$ $0$
tables-efficacy-lgrt02 👶 $+0.58$ $+4$ $+4$ $0$ $0$
tables-efficacy-mmrmt01 👶 $+0.60$ $+4$ $+4$ $0$ $0$
tables-efficacy-onct05 👶 $+0.47$ $+4$ $+4$ $0$ $0$
tables-efficacy-ratet01 👶 $+0.26$ $+1$ $+1$ $0$ $0$
tables-efficacy-rbmit01 👶 $+0.12$ $+1$ $+1$ $0$ $0$
tables-efficacy-rspt01 👶 $+0.94$ $+6$ $+6$ $0$ $0$
tables-efficacy-ttet01 👶 $+1.94$ $+6$ $+6$ $0$ $0$
tables-exposure-ext01 👶 $+0.62$ $+3$ $+3$ $0$ $0$
tables-lab-results-lbt01 👶 $+0.21$ $+1$ $+1$ $0$ $0$
tables-lab-results-lbt02 👶 $+0.44$ $+1$ $+1$ $0$ $0$
tables-lab-results-lbt03 👶 $+0.27$ $+2$ $+2$ $0$ $0$
tables-lab-results-lbt04 👶 $+0.07$ $+1$ $+1$ $0$ $0$
tables-lab-results-lbt05 👶 $+0.37$ $+3$ $+3$ $0$ $0$
tables-lab-results-lbt06 👶 $+0.66$ $+2$ $+2$ $0$ $0$
tables-lab-results-lbt07 👶 $+0.14$ $+1$ $+1$ $0$ $0$
tables-lab-results-lbt08 👶 $+0.14$ $+1$ $+1$ $0$ $0$
tables-lab-results-lbt09 👶 $+0.49$ $+2$ $+2$ $0$ $0$
tables-lab-results-lbt10 👶 $+0.11$ $+2$ $+2$ $0$ $0$
tables-lab-results-lbt10_bl 👶 $+0.11$ $+2$ $+2$ $0$ $0$
tables-lab-results-lbt11 👶 $+0.47$ $+3$ $+3$ $0$ $0$
tables-lab-results-lbt11_bl 👶 $+0.46$ $+3$ $+3$ $0$ $0$
tables-lab-results-lbt12 👶 $+0.09$ $+1$ $+1$ $0$ $0$
tables-lab-results-lbt12_bl 👶 $+0.10$ $+1$ $+1$ $0$ $0$
tables-lab-results-lbt13 👶 $+2.93$ $+5$ $+5$ $0$ $0$
tables-lab-results-lbt14 👶 $+1.65$ $+5$ $+5$ $0$ $0$
tables-lab-results-lbt15 👶 $+0.18$ $+2$ $+2$ $0$ $0$
tables-medical-history-mht01 👶 $+0.53$ $+4$ $+4$ $0$ $0$
tables-pharmacokinetic-pkct01 👶 $+0.78$ $+3$ $+3$ $0$ $0$
tables-pharmacokinetic-pkpt02 👶 $+0.23$ $+2$ $+2$ $0$ $0$
tables-pharmacokinetic-pkpt03 👶 $+1.83$ $+3$ $+3$ $0$ $0$
tables-pharmacokinetic-pkpt04 👶 $+0.27$ $+2$ $+2$ $0$ $0$
tables-pharmacokinetic-pkpt05 👶 $+0.22$ $+2$ $+2$ $0$ $0$
tables-pharmacokinetic-pkpt06 👶 $+0.13$ $+2$ $+2$ $0$ $0$
tables-pharmacokinetic-pkpt07 👶 $+0.13$ $+2$ $+2$ $0$ $0$
tables-pharmacokinetic-pkpt08 👶 $+0.11$ $+1$ $+1$ $0$ $0$
tables-pharmacokinetic-pkpt11 👶 $+0.06$ $+1$ $+1$ $0$ $0$
tables-risk-management-plan-rmpt01 👶 $+0.05$ $+1$ $+1$ $0$ $0$
tables-risk-management-plan-rmpt03 👶 $+0.20$ $+2$ $+2$ $0$ $0$
tables-risk-management-plan-rmpt04 👶 $+0.05$ $+1$ $+1$ $0$ $0$
tables-risk-management-plan-rmpt05 👶 $+0.06$ $+1$ $+1$ $0$ $0$
tables-risk-management-plan-rmpt06 👶 $+0.67$ $+4$ $+4$ $0$ $0$
tables-safety-enrollment01 👶 $+2.08$ $+4$ $+4$ $0$ $0$
tables-vital-signs-vst01 👶 $+0.31$ $+1$ $+1$ $0$ $0$
tables-vital-signs-vst02 👶 $+0.22$ $+2$ $+2$ $0$ $0$
Additional test case details
Test Suite $Status$ Time on main $±Time$ Test Case
graph-snaps 💀 $0.17$ $-0.17$ unnamed
graph-snaps 💀 $3.25$ $-3.25$ plot_v1
graph-snaps 💀 $0.39$ $-0.39$ plot_v2
graph-snaps 💀 $0.09$ $-0.09$ plot_v3
graph-snaps 💀 $0.09$ $-0.09$ plot_v4
graph-snaps 💀 $0.07$ $-0.07$ plot_v5
graph-snaps 💀 $0.07$ $-0.07$ plot_v6
graph-snaps 💀 $0.03$ $-0.03$ plot_v7
graph-snaps 💀 $0.03$ $-0.03$ plot_v8
graph-snaps 💀 $0.03$ $-0.03$ plot_v9
graphs-efficacy-fstg01 👶 $+0.06$ graphs_efficacy_fstg01.qmd_height_development
graphs-efficacy-fstg01 👶 $+0.04$ graphs_efficacy_fstg01.qmd_plot_v1_development
graphs-efficacy-fstg01 👶 $+0.01$ graphs_efficacy_fstg01.qmd_plot_v2_development
graphs-efficacy-fstg01 👶 $+0.01$ graphs_efficacy_fstg01.qmd_plot_v3_development
graphs-efficacy-fstg01 👶 $+0.01$ graphs_efficacy_fstg01.qmd_plot_v4_development
graphs-efficacy-fstg01 👶 $+0.01$ graphs_efficacy_fstg01.qmd_plot_v5_development
graphs-efficacy-fstg01 👶 $+2.25$ graphs_efficacy_fstg01.qmd_width_development
graphs-efficacy-fstg02 👶 $+0.02$ graphs_efficacy_fstg02.qmd_height_development
graphs-efficacy-fstg02 👶 $+0.01$ graphs_efficacy_fstg02.qmd_plot_v1_development
graphs-efficacy-fstg02 👶 $+0.01$ graphs_efficacy_fstg02.qmd_plot_v2_development
graphs-efficacy-fstg02 👶 $+0.01$ graphs_efficacy_fstg02.qmd_plot_v3.width_development
graphs-efficacy-fstg02 👶 $+0.01$ graphs_efficacy_fstg02.qmd_plot_v3_development
graphs-efficacy-fstg02 👶 $+0.01$ graphs_efficacy_fstg02.qmd_plot_v4_development
graphs-efficacy-fstg02 👶 $+0.41$ graphs_efficacy_fstg02.qmd_width_development
graphs-efficacy-kmg01 👶 $+0.01$ graphs_efficacy_kmg01.qmd_height_development
graphs-efficacy-kmg01 👶 $+0.01$ graphs_efficacy_kmg01.qmd_plot_v1_development
graphs-efficacy-kmg01 👶 $+0.01$ graphs_efficacy_kmg01.qmd_plot_v2_development
graphs-efficacy-kmg01 👶 $+0.01$ graphs_efficacy_kmg01.qmd_plot_v3_development
graphs-efficacy-kmg01 👶 $+0.01$ graphs_efficacy_kmg01.qmd_plot_v4_development
graphs-efficacy-kmg01 👶 $+0.01$ graphs_efficacy_kmg01.qmd_plot_v5_development
graphs-efficacy-kmg01 👶 $+0.01$ graphs_efficacy_kmg01.qmd_plot_v6_development
graphs-efficacy-kmg01 👶 $+0.90$ graphs_efficacy_kmg01.qmd_width_development
graphs-efficacy-mmrmg01 👶 $+0.71$ graphs_efficacy_mmrmg01.qmd_plot_v1_development
graphs-efficacy-mmrmg01 👶 $+0.01$ graphs_efficacy_mmrmg01.qmd_plot_v2_development
graphs-efficacy-mmrmg01 👶 $+0.01$ graphs_efficacy_mmrmg01.qmd_plot_v3_development
graphs-efficacy-mmrmg01 👶 $+0.01$ graphs_efficacy_mmrmg01.qmd_plot_v4_development
graphs-efficacy-mmrmg01 👶 $+0.01$ graphs_efficacy_mmrmg01.qmd_plot_v5_development
graphs-efficacy-mmrmg01 👶 $+0.01$ graphs_efficacy_mmrmg01.qmd_plot_v6_development
graphs-efficacy-mmrmg02 👶 $+0.01$ graphs_efficacy_mmrmg02.qmd_plot_v1_development
graphs-efficacy-mmrmg02 👶 $+0.01$ graphs_efficacy_mmrmg02.qmd_plot_v2_development
graphs-efficacy-mmrmg02 👶 $+0.12$ graphs_efficacy_mmrmg02.qmd_width_development
graphs-other-brg01 👶 $+0.10$ graphs_other_brg01.qmd_plot_v1_development
graphs-other-brg01 👶 $+0.01$ graphs_other_brg01.qmd_plot_v2_development
graphs-other-brg01 👶 $+0.01$ graphs_other_brg01.qmd_plot_v3_development
graphs-other-brg01 👶 $+0.01$ graphs_other_brg01.qmd_plot_v4_development
graphs-other-brg01 👶 $+0.01$ graphs_other_brg01.qmd_plot_v5_development
graphs-other-brg01 👶 $+0.01$ graphs_other_brg01.qmd_plot_v6_development
graphs-other-brg01 👶 $+0.01$ graphs_other_brg01.qmd_plot_v7_development
graphs-other-brg01 👶 $+0.01$ graphs_other_brg01.qmd_plot_v8_development
graphs-other-brg01 👶 $+0.01$ graphs_other_brg01.qmd_plot_v9_development
graphs-other-bwg01 👶 $+0.60$ graphs_other_bwg01.qmd_plot_v1_development
graphs-other-bwg01 👶 $+0.01$ graphs_other_bwg01.qmd_plot_v2_development
graphs-other-bwg01 👶 $+0.01$ graphs_other_bwg01.qmd_plot_v3_development
graphs-other-bwg01 👶 $+0.01$ graphs_other_bwg01.qmd_plot_v4_development
graphs-other-bwg01 👶 $+0.01$ graphs_other_bwg01.qmd_plot_v5_development
graphs-other-bwg01 👶 $+0.01$ graphs_other_bwg01.qmd_plot_v6_development
graphs-other-bwg01 👶 $+0.01$ graphs_other_bwg01.qmd_plot_v7_development
graphs-other-bwg01 👶 $+0.01$ graphs_other_bwg01.qmd_plot_v8_development
graphs-other-bwg01 👶 $+0.01$ graphs_other_bwg01.qmd_plot_v9_development
graphs-other-cig01 👶 $+0.02$ graphs_other_cig01.qmd_plot_v1_and_v2_development
graphs-other-cig01 👶 $+0.01$ graphs_other_cig01.qmd_plot_v3_development
graphs-other-cig01 👶 $+0.01$ graphs_other_cig01.qmd_plot_v4_development
graphs-other-cig01 👶 $+0.01$ graphs_other_cig01.qmd_plot_v5_development
graphs-other-cig01 👶 $+0.15$ graphs_other_cig01.qmd_table_v6_development
graphs-other-ippg01 👶 $+0.04$ graphs_other_ippg01.qmd_plots_v1_development
graphs-other-ippg01 👶 $+0.01$ graphs_other_ippg01.qmd_plots_v2_development
graphs-other-ltg01 👶 $+0.11$ graphs_other_ltg01.qmd_plot_v1_development
graphs-other-ltg01 👶 $+0.01$ graphs_other_ltg01.qmd_plot_v2_development
graphs-other-ltg01 👶 $+0.01$ graphs_other_ltg01.qmd_plot_v3_development
graphs-other-ltg01 👶 $+0.01$ graphs_other_ltg01.qmd_plot_v4_development
graphs-other-ltg01 👶 $+0.01$ graphs_other_ltg01.qmd_plot_v51_development
graphs-other-ltg01 👶 $+0.01$ graphs_other_ltg01.qmd_plot_v52_development
graphs-other-ltg01 👶 $+0.01$ graphs_other_ltg01.qmd_plot_v53_development
graphs-other-mng01 👶 $+0.17$ graphs_other_mng01.qmd_plot_v1_development
graphs-other-mng01 👶 $+0.01$ graphs_other_mng01.qmd_plot_v2_development
graphs-other-mng01 👶 $+0.01$ graphs_other_mng01.qmd_plot_v3_development
graphs-other-mng01 👶 $+0.01$ graphs_other_mng01.qmd_plot_v4_development
graphs-other-mng01 👶 $+0.01$ graphs_other_mng01.qmd_plot_v5_development
graphs-other-mng01 👶 $+0.01$ graphs_other_mng01.qmd_plot_v6_development
graphs-other-mng01 👶 $+0.24$ graphs_other_mng01.qmd_plot_v7_development
graphs-pharmacokinetic-pkcg01 👶 $+0.03$ graphs_pharmacokinetic_pkcg01.qmd_plot_v1_development
graphs-pharmacokinetic-pkcg01 👶 $+0.01$ graphs_pharmacokinetic_pkcg01.qmd_plot_v2_development
graphs-pharmacokinetic-pkcg02 👶 $+0.04$ graphs_pharmacokinetic_pkcg02.qmd_plot_v1_development
graphs-pharmacokinetic-pkcg02 👶 $+0.01$ graphs_pharmacokinetic_pkcg02.qmd_plot_v2_development
graphs-pharmacokinetic-pkcg03 👶 $+0.05$ graphs_pharmacokinetic_pkcg03.qmd_plot_v1_development
graphs-pharmacokinetic-pkcg03 👶 $+0.01$ graphs_pharmacokinetic_pkcg03.qmd_plot_v2_development
graphs-pharmacokinetic-pkpg01 👶 $+0.05$ graphs_pharmacokinetic_pkpg01.qmd_plot_v1_development
graphs-pharmacokinetic-pkpg01 👶 $+0.01$ graphs_pharmacokinetic_pkpg01.qmd_plot_v2_development
graphs-pharmacokinetic-pkpg02 👶 $+0.06$ graphs_pharmacokinetic_pkpg02.qmd_plot_v1_development
graphs-pharmacokinetic-pkpg02 👶 $+0.01$ graphs_pharmacokinetic_pkpg02.qmd_plot_v2_development
graphs-pharmacokinetic-pkpg03 👶 $+0.05$ graphs_pharmacokinetic_pkpg03.qmd_plot_v1_development
graphs-pharmacokinetic-pkpg04 👶 $+0.05$ graphs_pharmacokinetic_pkpg04.qmd_plot_v1_development
graphs-pharmacokinetic-pkpg06 👶 $+0.04$ graphs_pharmacokinetic_pkpg06.qmd_plot_v1_development
graphs-pharmacokinetic-pkpg06 👶 $+0.01$ graphs_pharmacokinetic_pkpg06.qmd_plot_v2_development
graphs-pharmacokinetic-pkpg06 👶 $+0.01$ graphs_pharmacokinetic_pkpg06.qmd_plot_v3_development
graphs-pharmacokinetic-pkpg06 👶 $+0.01$ graphs_pharmacokinetic_pkpg06.qmd_plot_v4_development
listings-ADA-adal02 👶 $+0.04$ listings_ADA_adal02.qmd_lsting_development
listings-ECG-egl01 👶 $+0.05$ listings_ECG_egl01.qmd_lsting_development
listings-adverse-events-ael01 👶 $+0.03$ listings_adverse_events_ael01.qmd_lsting_development
listings-adverse-events-ael01_nollt 👶 $+0.03$ listings_adverse_events_ael01_nollt.qmd_lsting_development
listings-adverse-events-ael02 👶 $+0.05$ listings_adverse_events_ael02.qmd_lsting_development
listings-adverse-events-ael02_ed 👶 $+0.06$ listings_adverse_events_ael02_ed.qmd_lsting_development
listings-adverse-events-ael03 👶 $+0.05$ listings_adverse_events_ael03.qmd_lsting_development
listings-adverse-events-ael04 👶 $+0.04$ listings_adverse_events_ael04.qmd_lsting_development
listings-concomitant-medications-cml01 👶 $+0.05$ listings_concomitant_medications_cml01.qmd_lsting_development
listings-concomitant-medications-cml02a_gl 👶 $+0.03$ listings_concomitant_medications_cml02a_gl.qmd_lsting_development
listings-concomitant-medications-cml02b_gl 👶 $+0.03$ listings_concomitant_medications_cml02b_gl.qmd_lsting_development
listings-development-safety-update-report-dsur4 👶 $+0.03$ listings_development_safety_update_report_dsur4.qmd_lsting_development
listings-disposition-dsl01 👶 $+0.03$ listings_disposition_dsl01.qmd_lsting_development
listings-disposition-dsl02 👶 $+0.04$ listings_disposition_dsl02.qmd_lsting_development
listings-efficacy-oncl01 👶 $+0.04$ listings_efficacy_oncl01.qmd_lsting_development
listings-exposure-exl01 👶 $+0.04$ listings_exposure_exl01.qmd_lsting_development
listings-lab-results-lbl01 👶 $+0.04$ listings_lab_results_lbl01.qmd_lsting_development
listings-lab-results-lbl01_rls 👶 $+0.04$ listings_lab_results_lbl01_rls.qmd_lsting_development
listings-lab-results-lbl02a 👶 $+0.04$ listings_lab_results_lbl02a.qmd_lsting_development
listings-lab-results-lbl02a_rls 👶 $+0.05$ listings_lab_results_lbl02a_rls.qmd_lsting_development
listings-lab-results-lbl02b 👶 $+0.04$ listings_lab_results_lbl02b.qmd_lsting_development
listings-medical-history-mhl01 👶 $+0.04$ listings_medical_history_mhl01.qmd_lsting_development
listings-pharmacokinetic-pkcl01 👶 $+0.04$ listings_pharmacokinetic_pkcl01.qmd_lsting_development
listings-pharmacokinetic-pkcl02 👶 $+0.06$ listings_pharmacokinetic_pkcl02.qmd_lsting_development
listings-pharmacokinetic-pkpl01 👶 $+0.04$ listings_pharmacokinetic_pkpl01.qmd_lsting_development
listings-pharmacokinetic-pkpl02 👶 $+0.04$ listings_pharmacokinetic_pkpl02.qmd_lsting_development
listings-pharmacokinetic-pkpl04 👶 $+0.04$ listings_pharmacokinetic_pkpl04.qmd_lsting_development
listings-vital-signs-vsl01 👶 $+0.06$ listings_vital_signs_vsl01.qmd_lsting_development
markdown-snaps 💀 $1.32$ $-1.32$ lsting
markdown-snaps 💀 $26.21$ $-26.21$ result_v1
markdown-snaps 💀 $0.17$ $-0.17$ result_v10
markdown-snaps 💀 $0.46$ $-0.46$ result_v11
markdown-snaps 💀 $0.10$ $-0.10$ result_v12
markdown-snaps 💀 $0.08$ $-0.08$ result_v13
markdown-snaps 💀 $8.83$ $-8.83$ result_v2
markdown-snaps 💀 $5.69$ $-5.69$ result_v3
markdown-snaps 💀 $4.58$ $-4.58$ result_v4
markdown-snaps 💀 $2.59$ $-2.59$ result_v5
markdown-snaps 💀 $0.92$ $-0.92$ result_v6
markdown-snaps 💀 $0.22$ $-0.22$ result_v7
markdown-snaps 💀 $0.69$ $-0.69$ result_v8
markdown-snaps 💀 $0.48$ $-0.48$ result_v9
tables-ADA-adat01 👶 $+0.21$ tables_ADA_adat01.qmd_result_v1_development
tables-ADA-adat02 👶 $+0.07$ tables_ADA_adat02.qmd_result_v1_development
tables-ADA-adat03 👶 $+0.31$ tables_ADA_adat03.qmd_result_v1_development
tables-ADA-adat04a 👶 $+0.16$ tables_ADA_adat04a.qmd_result_v1_development
tables-ADA-adat04b 👶 $+0.14$ tables_ADA_adat04b.qmd_result_v1_development
tables-ECG-egt01 👶 $+0.52$ tables_ECG_egt01.qmd_result_v1_development
tables-ECG-egt02 👶 $+0.07$ tables_ECG_egt02.qmd_result_v1_development
tables-ECG-egt02 👶 $+0.06$ tables_ECG_egt02.qmd_result_v2_development
tables-ECG-egt03 👶 $+1.30$ tables_ECG_egt03.qmd_result_v1_development
tables-ECG-egt03 👶 $+0.10$ tables_ECG_egt03.qmd_result_v2_development
tables-ECG-egt04 👶 $+0.17$ tables_ECG_egt04.qmd_result_v1_development
tables-ECG-egt05_qtcat 👶 $+0.29$ tables_ECG_egt05_qtcat.qmd_result_v1_development
tables-adverse-events-aet01 👶 $+0.35$ tables_adverse_events_aet01.qmd_result_v1_development
tables-adverse-events-aet01 👶 $+0.10$ tables_adverse_events_aet01.qmd_result_v2_development
tables-adverse-events-aet01 👶 $+0.08$ tables_adverse_events_aet01.qmd_result_v3_development
tables-adverse-events-aet01 👶 $+0.11$ tables_adverse_events_aet01.qmd_result_v4_development
tables-adverse-events-aet01_aesi 👶 $+0.12$ tables_adverse_events_aet01_aesi.qmd_result_v1_development
tables-adverse-events-aet01_aesi 👶 $+0.14$ tables_adverse_events_aet01_aesi.qmd_result_v2_development
tables-adverse-events-aet01_aesi 👶 $+0.19$ tables_adverse_events_aet01_aesi.qmd_result_v3_development
tables-adverse-events-aet01_aesi 👶 $+0.14$ tables_adverse_events_aet01_aesi.qmd_result_v4_development
tables-adverse-events-aet02 👶 $+0.09$ tables_adverse_events_aet02.qmd_result_v10_development
tables-adverse-events-aet02 👶 $+0.07$ tables_adverse_events_aet02.qmd_result_v11_development
tables-adverse-events-aet02 👶 $+0.09$ tables_adverse_events_aet02.qmd_result_v12_development
tables-adverse-events-aet02 👶 $+0.07$ tables_adverse_events_aet02.qmd_result_v13_development
tables-adverse-events-aet02 👶 $+0.31$ tables_adverse_events_aet02.qmd_result_v1_development
tables-adverse-events-aet02 👶 $+0.16$ tables_adverse_events_aet02.qmd_result_v2_development
tables-adverse-events-aet02 👶 $+0.16$ tables_adverse_events_aet02.qmd_result_v3_development
tables-adverse-events-aet02 👶 $+0.24$ tables_adverse_events_aet02.qmd_result_v4_development
tables-adverse-events-aet02 👶 $+0.08$ tables_adverse_events_aet02.qmd_result_v5_development
tables-adverse-events-aet02 👶 $+0.14$ tables_adverse_events_aet02.qmd_result_v6_development
tables-adverse-events-aet02 👶 $+0.09$ tables_adverse_events_aet02.qmd_result_v7_development
tables-adverse-events-aet02 👶 $+0.12$ tables_adverse_events_aet02.qmd_result_v8_development
tables-adverse-events-aet02 👶 $+0.09$ tables_adverse_events_aet02.qmd_result_v9_development
tables-adverse-events-aet02_smq 👶 $+0.07$ tables_adverse_events_aet02_smq.qmd_result_v1_development
tables-adverse-events-aet02_smq 👶 $+0.08$ tables_adverse_events_aet02_smq.qmd_result_v2_development
tables-adverse-events-aet03 👶 $+0.32$ tables_adverse_events_aet03.qmd_result_v1_development
tables-adverse-events-aet04 👶 $+0.34$ tables_adverse_events_aet04.qmd_result_v11_development
tables-adverse-events-aet04 👶 $+0.58$ tables_adverse_events_aet04.qmd_result_v1_development
tables-adverse-events-aet04 👶 $+0.34$ tables_adverse_events_aet04.qmd_result_v2_development
tables-adverse-events-aet04 👶 $+0.65$ tables_adverse_events_aet04.qmd_result_v3_development
tables-adverse-events-aet04 👶 $+0.35$ tables_adverse_events_aet04.qmd_result_v4_development
tables-adverse-events-aet04 👶 $+0.34$ tables_adverse_events_aet04.qmd_result_v6_development
tables-adverse-events-aet04 👶 $+0.34$ tables_adverse_events_aet04.qmd_result_v8_development
tables-adverse-events-aet04 👶 $+0.34$ tables_adverse_events_aet04.qmd_result_v9_development
tables-adverse-events-aet04_pi 👶 $+0.68$ tables_adverse_events_aet04_pi.qmd_result_v1_development
tables-adverse-events-aet04_pi 👶 $+0.08$ tables_adverse_events_aet04_pi.qmd_result_v2_development
tables-adverse-events-aet04_pi 👶 $+0.46$ tables_adverse_events_aet04_pi.qmd_result_v3_development
tables-adverse-events-aet04_pi 👶 $+0.06$ tables_adverse_events_aet04_pi.qmd_result_v4_development
tables-adverse-events-aet04_pi 👶 $+0.11$ tables_adverse_events_aet04_pi.qmd_result_v5_development
tables-adverse-events-aet04_pi 👶 $+0.12$ tables_adverse_events_aet04_pi.qmd_result_v6_development
tables-adverse-events-aet04_pi 👶 $+0.10$ tables_adverse_events_aet04_pi.qmd_result_v7_development
tables-adverse-events-aet04_pi 👶 $+0.11$ tables_adverse_events_aet04_pi.qmd_result_v8_development
tables-adverse-events-aet05 👶 $+0.05$ tables_adverse_events_aet05.qmd_result_v1_development
tables-adverse-events-aet05 👶 $+0.05$ tables_adverse_events_aet05.qmd_result_v2_development
tables-adverse-events-aet05_all 👶 $+0.06$ tables_adverse_events_aet05_all.qmd_result_v1_development
tables-adverse-events-aet05_all 👶 $+0.05$ tables_adverse_events_aet05_all.qmd_result_v2_development
tables-adverse-events-aet06 👶 $+0.41$ tables_adverse_events_aet06.qmd_result_v1_development
tables-adverse-events-aet06 👶 $+0.27$ tables_adverse_events_aet06.qmd_result_v2_development
tables-adverse-events-aet06 👶 $+0.29$ tables_adverse_events_aet06.qmd_result_v3_development
tables-adverse-events-aet06 👶 $+0.20$ tables_adverse_events_aet06.qmd_result_v4_development
tables-adverse-events-aet06 👶 $+0.32$ tables_adverse_events_aet06.qmd_result_v5_development
tables-adverse-events-aet06_smq 👶 $+0.11$ tables_adverse_events_aet06_smq.qmd_result_v1_development
tables-adverse-events-aet06_smq 👶 $+0.11$ tables_adverse_events_aet06_smq.qmd_result_v2_development
tables-adverse-events-aet06_smq 👶 $+0.09$ tables_adverse_events_aet06_smq.qmd_result_v3_development
tables-adverse-events-aet07 👶 $+0.06$ tables_adverse_events_aet07.qmd_result_v1_development
tables-adverse-events-aet07 👶 $+0.04$ tables_adverse_events_aet07.qmd_result_v2_development
tables-adverse-events-aet09 👶 $+0.15$ tables_adverse_events_aet09.qmd_result_v1_development
tables-adverse-events-aet09 👶 $+0.16$ tables_adverse_events_aet09.qmd_result_v2_development
tables-adverse-events-aet09_smq 👶 $+0.07$ tables_adverse_events_aet09_smq.qmd_result_v1_development
tables-adverse-events-aet09_smq 👶 $+0.07$ tables_adverse_events_aet09_smq.qmd_result_v2_development
tables-adverse-events-aet10 👶 $+0.10$ tables_adverse_events_aet10.qmd_result_v1_development
tables-adverse-events-aet10 👶 $+0.08$ tables_adverse_events_aet10.qmd_result_v2_development
tables-concomitant-medications-cmt01 👶 $+0.12$ tables_concomitant_medications_cmt01.qmd_result_v1_development
tables-concomitant-medications-cmt01 👶 $+0.07$ tables_concomitant_medications_cmt01.qmd_result_v2_development
tables-concomitant-medications-cmt01 👶 $+0.09$ tables_concomitant_medications_cmt01.qmd_result_v3_development
tables-concomitant-medications-cmt01 👶 $+0.10$ tables_concomitant_medications_cmt01.qmd_result_v4_development
tables-concomitant-medications-cmt01a 👶 $+0.22$ tables_concomitant_medications_cmt01a.qmd_result_v1_development
tables-concomitant-medications-cmt01a 👶 $+0.17$ tables_concomitant_medications_cmt01a.qmd_result_v2_development
tables-concomitant-medications-cmt01a 👶 $+0.17$ tables_concomitant_medications_cmt01a.qmd_result_v3_development
tables-concomitant-medications-cmt01a 👶 $+0.14$ tables_concomitant_medications_cmt01a.qmd_result_v4_development
tables-concomitant-medications-cmt01b 👶 $+0.39$ tables_concomitant_medications_cmt01b.qmd_result_v1_development
tables-concomitant-medications-cmt01b 👶 $+0.21$ tables_concomitant_medications_cmt01b.qmd_result_v2_development
tables-concomitant-medications-cmt01b 👶 $+0.29$ tables_concomitant_medications_cmt01b.qmd_result_v4_development
tables-concomitant-medications-cmt02_pt 👶 $+0.08$ tables_concomitant_medications_cmt02_pt.qmd_result_v1_development
tables-deaths-dtht01 👶 $+0.19$ tables_deaths_dtht01.qmd_result_v1_development
tables-deaths-dtht01 👶 $+0.15$ tables_deaths_dtht01.qmd_result_v2_development
tables-deaths-dtht01 👶 $+0.07$ tables_deaths_dtht01.qmd_result_v3_development
tables-deaths-dtht01 👶 $+0.09$ tables_deaths_dtht01.qmd_result_v4_development
tables-demography-dmt01 👶 $+0.22$ tables_demography_dmt01.qmd_result_v1_development
tables-demography-dmt01 👶 $+0.17$ tables_demography_dmt01.qmd_result_v2_development
tables-demography-dmt01 👶 $+0.16$ tables_demography_dmt01.qmd_result_v3_development
tables-demography-dmt01 👶 $+0.17$ tables_demography_dmt01.qmd_result_v4_development
tables-demography-dmt01 👶 $+0.12$ tables_demography_dmt01.qmd_result_v5_development
tables-disclosures-disclosurest01 👶 $+0.15$ tables_disclosures_disclosurest01.qmd_result_v1_development
tables-disclosures-disclosurest01 👶 $+0.17$ tables_disclosures_disclosurest01.qmd_result_v2_development
tables-disclosures-disclosurest01 👶 $+0.08$ tables_disclosures_disclosurest01.qmd_result_v3_development
tables-disclosures-disclosurest01 👶 $+0.10$ tables_disclosures_disclosurest01.qmd_result_v4_development
tables-disclosures-disclosurest01 👶 $+0.09$ tables_disclosures_disclosurest01.qmd_result_v5_development
tables-disclosures-disclosurest01 👶 $+0.05$ tables_disclosures_disclosurest01.qmd_result_v6_development
tables-disclosures-eudrat01 👶 $+0.13$ tables_disclosures_eudrat01.qmd_result_v1_development
tables-disclosures-eudrat02 👶 $+0.09$ tables_disclosures_eudrat02.qmd_result_v1_development
tables-disposition-dst01 👶 $+0.17$ tables_disposition_dst01.qmd_result_v1_development
tables-disposition-dst01 👶 $+0.09$ tables_disposition_dst01.qmd_result_v2_development
tables-disposition-dst01 👶 $+0.12$ tables_disposition_dst01.qmd_result_v3_development
tables-disposition-pdt01 👶 $+0.16$ tables_disposition_pdt01.qmd_result_v1_development
tables-disposition-pdt02 👶 $+0.07$ tables_disposition_pdt02.qmd_result_v1_development
tables-efficacy-aovt01 👶 $+0.89$ tables_efficacy_aovt01.qmd_result_v1_development
tables-efficacy-aovt02 👶 $+0.15$ tables_efficacy_aovt02.qmd_result_v1_development
tables-efficacy-aovt03 👶 $+0.95$ tables_efficacy_aovt03.qmd_result_v1_development
tables-efficacy-cfbt01 👶 $+0.40$ tables_efficacy_cfbt01.qmd_result_v1_development
tables-efficacy-cmht01 👶 $+1.91$ tables_efficacy_cmht01.qmd_result_v1_development
tables-efficacy-cmht01 👶 $+0.23$ tables_efficacy_cmht01.qmd_result_v2_development
tables-efficacy-coxt01 👶 $+0.14$ tables_efficacy_coxt01.qmd_result_v1_development
tables-efficacy-coxt01 👶 $+0.09$ tables_efficacy_coxt01.qmd_result_v2_development
tables-efficacy-coxt01 👶 $+0.09$ tables_efficacy_coxt01.qmd_result_v3_development
tables-efficacy-coxt01 👶 $+0.08$ tables_efficacy_coxt01.qmd_result_v4_development
tables-efficacy-coxt02 👶 $+0.08$ tables_efficacy_coxt02.qmd_result_v1_development
tables-efficacy-coxt02 👶 $+0.05$ tables_efficacy_coxt02.qmd_result_v2_development
tables-efficacy-dort01 👶 $+0.91$ tables_efficacy_dort01.qmd_result_v1_development
tables-efficacy-dort01 👶 $+0.08$ tables_efficacy_dort01.qmd_result_v2_development
tables-efficacy-dort01 👶 $+0.08$ tables_efficacy_dort01.qmd_result_v3_development
tables-efficacy-dort01 👶 $+0.08$ tables_efficacy_dort01.qmd_result_v4_development
tables-efficacy-lgrt02 👶 $+0.17$ tables_efficacy_lgrt02.qmd_result_v1_development
tables-efficacy-lgrt02 👶 $+0.15$ tables_efficacy_lgrt02.qmd_result_v2_development
tables-efficacy-lgrt02 👶 $+0.11$ tables_efficacy_lgrt02.qmd_result_v3_development
tables-efficacy-lgrt02 👶 $+0.14$ tables_efficacy_lgrt02.qmd_result_v4_development
tables-efficacy-mmrmt01 👶 $+0.08$ tables_efficacy_mmrmt01.qmd_result_baseline_development
tables-efficacy-mmrmt01 👶 $+0.21$ tables_efficacy_mmrmt01.qmd_result_v1_development
tables-efficacy-mmrmt01 👶 $+0.08$ tables_efficacy_mmrmt01.qmd_result_v2_development
tables-efficacy-mmrmt01 👶 $+0.23$ tables_efficacy_mmrmt01.qmd_result_v3_development
tables-efficacy-onct05 👶 $+0.18$ tables_efficacy_onct05.qmd_result_v1_development
tables-efficacy-onct05 👶 $+0.09$ tables_efficacy_onct05.qmd_result_v2_development
tables-efficacy-onct05 👶 $+0.09$ tables_efficacy_onct05.qmd_result_v3_development
tables-efficacy-onct05 👶 $+0.10$ tables_efficacy_onct05.qmd_result_v4_development
tables-efficacy-ratet01 👶 $+0.26$ tables_efficacy_ratet01.qmd_result_v1_development
tables-efficacy-rbmit01 👶 $+0.12$ tables_efficacy_rbmit01.qmd_result_v1_development
tables-efficacy-rspt01 👶 $+0.44$ tables_efficacy_rspt01.qmd_result_v1_development
tables-efficacy-rspt01 👶 $+0.11$ tables_efficacy_rspt01.qmd_result_v2_development
tables-efficacy-rspt01 👶 $+0.09$ tables_efficacy_rspt01.qmd_result_v3_development
tables-efficacy-rspt01 👶 $+0.11$ tables_efficacy_rspt01.qmd_result_v4_development
tables-efficacy-rspt01 👶 $+0.10$ tables_efficacy_rspt01.qmd_result_v5_development
tables-efficacy-rspt01 👶 $+0.08$ tables_efficacy_rspt01.qmd_result_v6_development
tables-efficacy-ttet01 👶 $+1.21$ tables_efficacy_ttet01.qmd_result_v1_development
tables-efficacy-ttet01 👶 $+0.14$ tables_efficacy_ttet01.qmd_result_v2_development
tables-efficacy-ttet01 👶 $+0.12$ tables_efficacy_ttet01.qmd_result_v3_development
tables-efficacy-ttet01 👶 $+0.23$ tables_efficacy_ttet01.qmd_result_v4_development
tables-efficacy-ttet01 👶 $+0.12$ tables_efficacy_ttet01.qmd_result_v5_development
tables-efficacy-ttet01 👶 $+0.12$ tables_efficacy_ttet01.qmd_result_v6_development
tables-exposure-ext01 👶 $+0.22$ tables_exposure_ext01.qmd_result_v1_development
tables-exposure-ext01 👶 $+0.17$ tables_exposure_ext01.qmd_result_v2_development
tables-exposure-ext01 👶 $+0.23$ tables_exposure_ext01.qmd_result_v3_development
tables-lab-results-lbt01 👶 $+0.21$ tables_lab_results_lbt01.qmd_result_v1_development
tables-lab-results-lbt02 👶 $+0.44$ tables_lab_results_lbt02.qmd_result_v1_development
tables-lab-results-lbt03 👶 $+0.14$ tables_lab_results_lbt03.qmd_result_v1_development
tables-lab-results-lbt03 👶 $+0.13$ tables_lab_results_lbt03.qmd_result_v2_development
tables-lab-results-lbt04 👶 $+0.07$ tables_lab_results_lbt04.qmd_result_v1_development
tables-lab-results-lbt05 👶 $+0.14$ tables_lab_results_lbt05.qmd_result_v1_development
tables-lab-results-lbt05 👶 $+0.13$ tables_lab_results_lbt05.qmd_result_v2_development
tables-lab-results-lbt05 👶 $+0.10$ tables_lab_results_lbt05.qmd_result_v4_development
tables-lab-results-lbt06 👶 $+0.22$ tables_lab_results_lbt06.qmd_result_v1_development
tables-lab-results-lbt06 👶 $+0.45$ tables_lab_results_lbt06.qmd_result_v2_development
tables-lab-results-lbt07 👶 $+0.14$ tables_lab_results_lbt07.qmd_result_v1_development
tables-lab-results-lbt08 👶 $+0.14$ tables_lab_results_lbt08.qmd_result_v1_development
tables-lab-results-lbt09 👶 $+0.30$ tables_lab_results_lbt09.qmd_result_v1_development
tables-lab-results-lbt09 👶 $+0.19$ tables_lab_results_lbt09.qmd_result_v2_development
tables-lab-results-lbt10 👶 $+0.07$ tables_lab_results_lbt10.qmd_result_v1_development
tables-lab-results-lbt10 👶 $+0.05$ tables_lab_results_lbt10.qmd_result_v2_development
tables-lab-results-lbt10_bl 👶 $+0.07$ tables_lab_results_lbt10_bl.qmd_result_v1_development
tables-lab-results-lbt10_bl 👶 $+0.05$ tables_lab_results_lbt10_bl.qmd_result_v2_development
tables-lab-results-lbt11 👶 $+0.31$ tables_lab_results_lbt11.qmd_result_v1_development
tables-lab-results-lbt11 👶 $+0.06$ tables_lab_results_lbt11.qmd_result_v2_development
tables-lab-results-lbt11 👶 $+0.10$ tables_lab_results_lbt11.qmd_result_v3_development
tables-lab-results-lbt11_bl 👶 $+0.31$ tables_lab_results_lbt11_bl.qmd_result_v1_development
tables-lab-results-lbt11_bl 👶 $+0.06$ tables_lab_results_lbt11_bl.qmd_result_v2_development
tables-lab-results-lbt11_bl 👶 $+0.09$ tables_lab_results_lbt11_bl.qmd_result_v3_development
tables-lab-results-lbt12 👶 $+0.09$ tables_lab_results_lbt12.qmd_result_v1_development
tables-lab-results-lbt12_bl 👶 $+0.10$ tables_lab_results_lbt12_bl.qmd_result_v1_development
tables-lab-results-lbt13 👶 $+0.70$ tables_lab_results_lbt13.qmd_result_v1_development
tables-lab-results-lbt13 👶 $+0.46$ tables_lab_results_lbt13.qmd_result_v2_development
tables-lab-results-lbt13 👶 $+0.45$ tables_lab_results_lbt13.qmd_result_v3_development
tables-lab-results-lbt13 👶 $+0.46$ tables_lab_results_lbt13.qmd_result_v4_development
tables-lab-results-lbt13 👶 $+0.86$ tables_lab_results_lbt13.qmd_result_v5_development
tables-lab-results-lbt14 👶 $+0.35$ tables_lab_results_lbt14.qmd_result_v1_development
tables-lab-results-lbt14 👶 $+0.27$ tables_lab_results_lbt14.qmd_result_v2_development
tables-lab-results-lbt14 👶 $+0.25$ tables_lab_results_lbt14.qmd_result_v3_development
tables-lab-results-lbt14 👶 $+0.26$ tables_lab_results_lbt14.qmd_result_v4_development
tables-lab-results-lbt14 👶 $+0.52$ tables_lab_results_lbt14.qmd_result_v5_development
tables-lab-results-lbt15 👶 $+0.09$ tables_lab_results_lbt15.qmd_result_v1_development
tables-lab-results-lbt15 👶 $+0.09$ tables_lab_results_lbt15.qmd_result_v2_development
tables-medical-history-mht01 👶 $+0.15$ tables_medical_history_mht01.qmd_result_v1_development
tables-medical-history-mht01 👶 $+0.05$ tables_medical_history_mht01.qmd_result_v2_development
tables-medical-history-mht01 👶 $+0.18$ tables_medical_history_mht01.qmd_result_v3_development
tables-medical-history-mht01 👶 $+0.15$ tables_medical_history_mht01.qmd_result_v4_development
tables-pharmacokinetic-pkct01 👶 $+0.46$ tables_pharmacokinetic_pkct01.qmd_result_v1_development
tables-pharmacokinetic-pkct01 👶 $+0.14$ tables_pharmacokinetic_pkct01.qmd_result_v2_development
tables-pharmacokinetic-pkct01 👶 $+0.18$ tables_pharmacokinetic_pkct01.qmd_result_v3_development
tables-pharmacokinetic-pkpt02 👶 $+0.14$ tables_pharmacokinetic_pkpt02.qmd_result_v1_development
tables-pharmacokinetic-pkpt02 👶 $+0.09$ tables_pharmacokinetic_pkpt02.qmd_result_v2_development
tables-pharmacokinetic-pkpt03 👶 $+1.80$ tables_pharmacokinetic_pkpt03.qmd_result_v1_development
tables-pharmacokinetic-pkpt03 👶 $+0.01$ tables_pharmacokinetic_pkpt03.qmd_result_v2_development
tables-pharmacokinetic-pkpt03 👶 $+0.01$ tables_pharmacokinetic_pkpt03.qmd_result_v3_development
tables-pharmacokinetic-pkpt04 👶 $+0.16$ tables_pharmacokinetic_pkpt04.qmd_result_v1_development
tables-pharmacokinetic-pkpt04 👶 $+0.11$ tables_pharmacokinetic_pkpt04.qmd_result_v2_development
tables-pharmacokinetic-pkpt05 👶 $+0.14$ tables_pharmacokinetic_pkpt05.qmd_result_v1_development
tables-pharmacokinetic-pkpt05 👶 $+0.08$ tables_pharmacokinetic_pkpt05.qmd_result_v2_development
tables-pharmacokinetic-pkpt06 👶 $+0.08$ tables_pharmacokinetic_pkpt06.qmd_result_v1_development
tables-pharmacokinetic-pkpt06 👶 $+0.05$ tables_pharmacokinetic_pkpt06.qmd_result_v2_development
tables-pharmacokinetic-pkpt07 👶 $+0.08$ tables_pharmacokinetic_pkpt07.qmd_result_v1_development
tables-pharmacokinetic-pkpt07 👶 $+0.05$ tables_pharmacokinetic_pkpt07.qmd_result_v2_development
tables-pharmacokinetic-pkpt08 👶 $+0.11$ tables_pharmacokinetic_pkpt08.qmd_result_v1_development
tables-pharmacokinetic-pkpt11 👶 $+0.06$ tables_pharmacokinetic_pkpt11.qmd_result_v1_development
tables-risk-management-plan-rmpt01 👶 $+0.05$ tables_risk_management_plan_rmpt01.qmd_result_v1_development
tables-risk-management-plan-rmpt03 👶 $+0.14$ tables_risk_management_plan_rmpt03.qmd_result_v1_development
tables-risk-management-plan-rmpt03 👶 $+0.06$ tables_risk_management_plan_rmpt03.qmd_result_v2_development
tables-risk-management-plan-rmpt04 👶 $+0.05$ tables_risk_management_plan_rmpt04.qmd_result_v1_development
tables-risk-management-plan-rmpt05 👶 $+0.06$ tables_risk_management_plan_rmpt05.qmd_result_v1_development
tables-risk-management-plan-rmpt06 👶 $+0.15$ tables_risk_management_plan_rmpt06.qmd_result_v1_development
tables-risk-management-plan-rmpt06 👶 $+0.07$ tables_risk_management_plan_rmpt06.qmd_result_v2_development
tables-risk-management-plan-rmpt06 👶 $+0.10$ tables_risk_management_plan_rmpt06.qmd_result_v3_development
tables-risk-management-plan-rmpt06 👶 $+0.34$ tables_risk_management_plan_rmpt06.qmd_result_v4_development
tables-safety-enrollment01 👶 $+0.69$ tables_safety_enrollment01.qmd_result_v1_development
tables-safety-enrollment01 👶 $+0.45$ tables_safety_enrollment01.qmd_result_v2_development
tables-safety-enrollment01 👶 $+0.49$ tables_safety_enrollment01.qmd_result_v3_development
tables-safety-enrollment01 👶 $+0.45$ tables_safety_enrollment01.qmd_result_v4_development
tables-vital-signs-vst01 👶 $+0.31$ tables_vital_signs_vst01.qmd_result_v1_development
tables-vital-signs-vst02 👶 $+0.12$ tables_vital_signs_vst02.qmd_result_v1_development
tables-vital-signs-vst02 👶 $+0.10$ tables_vital_signs_vst02.qmd_result_v2_development

Results for commit f25ae25

♻️ This comment has been updated with latest results.

@pawelru pawelru changed the title wasm + shinylive - first try wasm + shinylive Apr 29, 2024
@pawelru
Copy link
Contributor Author

pawelru commented May 6, 2024

I forked the repo in order to test deployment before the merge. I discovered some issues when installing shinylive package but this was about the image we are using. This just got fixed. You can see the stable deployed here: https://pawelru.github.io/tlg-catalog/stable/. WebR and shiny apps are all working well!
The devel failed for some reason on staged dependencies step - I don't want to dig more into this. The goal was to test webR and this has been completed!

@pawelru pawelru merged commit 685c8e9 into main May 6, 2024
20 checks passed
@pawelru pawelru deleted the 32_wasm branch May 6, 2024 15:53
@github-actions github-actions bot locked and limited conversation to collaborators May 6, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feature Request]: WASM for interactive R code play
5 participants