[Bug]: qenv is valid but code is not reproducible
还没有人认领这个 Issue。
评估
调研方向
在全新的 R --vanilla 会话中重现 within(qenv(), ...) 示例,然后检查 qenv 的初始化以及 .GlobalEnv 的使用情况。比较加载 teal.modules.clinical 与其缺失时的行为;当能够防止代码依赖不可用对象或函数的 qenv 看起来有效时,即可视为完成。
由索引模型根据 Issue 内容生成。
描述
What happened?
When creating/modifying a qenv object or derivative, it fails if there are objects or calls to packages outside the environment.
However, when a library is loaded before the creation of the qenv object, functions or object can be found so the code succeeds and results in a valid object even if code results on not reproducible.
This results on teal applications that work, but when users copy and paste the code on a new vanilla R session (R --vanilla), the code will raise an error because there aren't some objects or functions in the environment.
Some testing might also fail as in that environment(s) libraries might not be loaded (as I found on https://github.com/insightsengineering/coredev-tasks/issues/536) .
library("teal.code")
within(qenv(), {ADSL <- tmc_ex_adsl})
#> <qenv.error: object 'tmc_ex_adsl' not found
#> when evaluating qenv code:
#> ADSL <- tmc_ex_adsl>
library("teal.modules.clinical")
#> Loading required package: teal
#> Loading required package: shiny
#> Loading required package: teal.slice
#> Registered S3 method overwritten by 'teal':
#> method from
#> c.teal_slices teal.slice
#>
#> You are using teal version 1.0.0
#>
#> Attaching package: 'teal'
#> The following objects are masked from 'package:teal.slice':
#>
#> as.teal_slices, teal_slices
#> Loading required package: teal.transform
#> Loading required package: tern
#> Loading required package: rtables
#> Loading required package: formatters
#>
#> Attaching package: 'formatters'
#> The following object is masked from 'package:base':
#>
#> %||%
#> Loading required package: magrittr
#>
#> Attaching package: 'rtables'
#> The following object is masked from 'package:utils':
#>
#> str
#> Registered S3 method overwritten by 'tern':
#> method from
#> tidy.glm broom
within(qenv(), {ADSL <- tmc_ex_adsl})
#> <environment: 0x000001dc3ac0c8d0> 🔒
#> Parent: <environment: package:teal.modules.clinical>
#> Bindings:
#> - ADSL: [tbl_df]
Created on 2025-09-09 with reprex v2.1.1
I would expect that the last object don't succeed as the code can't be run in a fresh R session without the teal.modules.clinical package, and often there is no information about it (except in some occasions via parent.env([email protected]) and the attr(env, "name")).
I think this is because the package uses the global environment instead of the base environment on initialization.
This might be related to #201
sessionInfo()
R version 4.5.1 (2025-06-13 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows 11 x64 (build 22631)
Matrix products: default
LAPACK version 3.12.1
locale:
[1] LC_COLLATE=Spanish_Spain.utf8 LC_CTYPE=Spanish_Spain.utf8
[3] LC_MONETARY=Spanish_Spain.utf8 LC_NUMERIC=C
[5] LC_TIME=Spanish_Spain.utf8
time zone: Europe/Madrid
tzcode source: internal
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] teal.modules.clinical_0.11.1 tern_0.9.9
[3] rtables_0.6.13 magrittr_2.0.3
[5] formatters_0.5.11 teal.transform_0.7.0
[7] teal_1.0.0 teal.slice_0.7.0
[9] teal.data_0.8.0 shiny_1.11.1
[11] teal.code_0.7.0 pkgdown_2.1.3
[13] devtools_2.4.5 usethis_3.2.0
loaded via a namespace (and not attached):
[1] gtable_0.3.6 ggplot2_3.5.2 htmlwidgets_1.6.4 remotes_2.5.0.9000
[5] lattice_0.22-7 vctrs_0.6.5 tools_4.5.1 Rdpack_2.6.4
[9] generics_0.1.4 tibble_3.3.0 pkgconfig_2.0.3 Matrix_1.7-4
[13] checkmate_2.3.3 RColorBrewer_1.1-3 lifecycle_1.0.4 compiler_4.5.1
[17] farver_2.1.2 textshaping_1.0.3 httpuv_1.6.16 htmltools_0.5.8.1
[21] later_1.4.4 pillar_1.11.0 urlchecker_1.0.1 tidyr_1.3.1
[25] ellipsis_0.3.2 cachem_1.1.0 sessioninfo_1.2.3 mime_0.13
[29] nestcolor_0.1.3 tidyselect_1.2.1 digest_0.6.37 stringi_1.8.7
[33] dplyr_1.1.4 purrr_1.1.0 splines_4.5.1 fastmap_1.2.0
[37] grid_4.5.1 cli_3.6.5 logger_0.4.0 bsicons_0.1.2
[41] survival_3.8-3 pkgbuild_1.4.8 broom_1.0.9 rutils_0.0.2.92
[45] scales_1.4.0 promises_1.3.3 backports_1.5.0 ragg_1.5.0
[49] memoise_2.0.1 evaluate_1.0.5 rbibutils_2.3 miniUI_0.1.2
[53] profvis_0.4.0 rlang_1.1.6 Rcpp_1.1.0 xtable_1.8-4
[57] glue_1.8.0 pkgload_1.4.0 rstudioapi_0.17.1 teal.logger_0.4.0
[61] R6_2.6.1 systemfonts_1.2.3 fs_1.6.6
Relevant log output
Code of Conduct
- I agree to follow this project's Code of Conduct.
Contribution Guidelines
- I agree to follow this project's Contribution Guidelines.
Security Policy
- I agree to follow this project's Security Policy.
- 主要语言
- R
- 星标
- 12
- 派生
- 11
- 平均合并
- 8 天 15 小时
- 30 天内合并 PR
- 2
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
insightsengineering/teal.code 的其他 Issue
-
Move to Pharmaverse可能已有人在做 @llrs-roche 于 38 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 68/100
insightsengineering/teal.code#292 ·
-
[Feature Request]: High cyclomatic complexity leds to bad readability可能已有人在做 @llrs-roche 于 39 天前认领。 未关闭enhancement
难度 3/5 3-5 天 新手友好度 45/100
insightsengineering/teal.code#295 ·
-
core discussion
难度 5/5 一周以上 新手友好度 25/100
insightsengineering/teal.code#291 · 2 条评论 · 1 个 reaction ·
-
bug core
难度 3/5 1-2 天 新手友好度 45/100
insightsengineering/teal.code#275 ·
-
This is test issue to test copilot capabilities可能已有人在做 @copilot-swe-agent 于 435 天前认领。 未关闭bug
insightsengineering/teal.code#266 · 1 个 reaction · 已指派 1 人 ·
查看 insightsengineering/teal.code 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 64/100
mitchelloharawild/ggtime#39 ·
-
enhancement good first issue help wanted
难度 2/5 半天 新手友好度 82/100
-
难度 2/5 1-3 小时 新手友好度 62/100
-
question
难度 2/5 1-3 小时 新手友好度 62/100
-
Breaking 🏴☠️ Consistency :green_apple: :apple:
难度 1/5 1 小时以内 新手友好度 70/100
easystats/bayestestR#789 ·
维护者通常 1 天内回复