Skip to content

adding reports - #1533

Merged
shajoezhu merged 4 commits into
mainfrom
validation_report
Sep 26, 2026
Merged

shajoezhu merged 4 commits into
mainfrom
validation_report

Conversation

@shajoezhu

@shajoezhu shajoezhu commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

What changes are proposed in this pull request?

  • Adds a "Validation report" entry to the pkgdown navbar, resolved per documentation version. (adding reports #1533)

pkgdown builds one static site per version, so a hardcoded link would freeze at whichever report was current when it was written. pkgdown/extra.js reads the version from the navbar and points the link at the newest report at or below it. Doc versions older than the first report drop the item entirely. _pkgdown.yml keeps a static href as the fallback for readers with JavaScript disabled.

Only 0.9.11 currently has a report, so 0.9.11 and later resolve to it and earlier doc versions get no navbar item.

DESCRIPTION also swaps RoxygenNote: 8.0.0 for Config/roxygen2/version: 8.1.0, which is unrelated to the navbar link.

Same change as pharmaverse/formatters#377 and pharmaverse/rtables#1122.

@github-actions

github-actions Bot commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

Unit Test Performance Difference

Test Suite $Status$ Time on main $±Time$ $±Tests$ $±Skipped$ $±Failures$ $±Errors$
g_forest 💔 $22.68$ $+3.60$ $0$ $0$ $0$ $0$
g_km 💔 $5.86$ $+1.02$ $0$ $0$ $0$ $0$
prop_diff 💔 $1.08$ $+8.87$ $+7$ $-20$ $0$ $0$
Additional test case details
Test Suite $Status$ Time on main $±Time$ Test Case
prop_diff 💔 $0.17$ $+8.83$ _prop_diff_uncond_exact_matches_reference_values_and_works_with_edge_cases

Results for commit be3aa4c

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

badge

Code Coverage Summary

Filename                                   Stmts    Miss  Cover    Missing
---------------------------------------  -------  ------  -------  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
R/abnormal_by_baseline.R                     101       3  97.03%   242, 244-245
R/abnormal_by_marked.R                        88       8  90.91%   94-98, 281, 283-284
R/abnormal_by_worst_grade.R                   94       3  96.81%   215, 217-218
R/abnormal_lab_worsen_by_baseline.R          159      10  93.71%   205-208, 213, 215-216, 459-461
R/abnormal.R                                  78       2  97.44%   222, 224
R/analyze_variables.R                        320      11  96.56%   593-596, 818-823, 831
R/analyze_vars_in_cols.R                     178      14  92.13%   178, 221, 235-236, 238, 246-254
R/bland_altman.R                              92       1  98.91%   46
R/combination_function.R                       9       0  100.00%
R/compare_variables.R                         35       0  100.00%
R/control_incidence_rate.R                    10       0  100.00%
R/control_logistic.R                           7       0  100.00%
R/control_step.R                              23       1  95.65%   58
R/control_survival.R                          16       0  100.00%
R/count_cumulative.R                         115       4  96.52%   74, 270-271, 273
R/count_missed_doses.R                        89       4  95.51%   206-209
R/count_occurrences_by_grade.R               169       8  95.27%   178, 386, 388, 465, 467, 469, 473-474
R/count_occurrences.R                        137      10  92.70%   119, 262-264, 330-332, 334, 338-339
R/count_patients_events_in_cols.R             67       1  98.51%   60
R/count_patients_with_event.R                 73       2  97.26%   220, 223
R/count_patients_with_flags.R                 93       2  97.85%   234, 236
R/count_values.R                              61       2  96.72%   193, 196
R/cox_regression_inter.R                     154       0  100.00%
R/cox_regression.R                           161       0  100.00%
R/coxph.R                                    165       7  95.76%   190-194, 236, 251, 259, 265-266
R/d_pkparam.R                                406       0  100.00%
R/decorate_grob.R                            116       0  100.00%
R/desctools_binom_diff.R                     621      64  89.69%   53, 88-89, 125-126, 129, 199, 223-232, 264, 266, 286, 290, 294, 298, 353, 356, 359, 362, 422, 430, 439, 444-447, 454, 457, 466, 469, 516-517, 519-520, 522-523, 525-526, 593, 604-616, 620, 663, 676, 680
R/df_explicit_na.R                            45       0  100.00%
R/estimate_multinomial_rsp.R                  86       4  95.35%   65, 212, 214-215
R/estimate_proportion.R                      245       6  97.55%   88, 99, 255, 257-258, 389
R/fit_rsp_step.R                              36       0  100.00%
R/fit_survival_step.R                         36       0  100.00%
R/formatting_functions.R                     190       2  98.95%   141, 276
R/g_forest.R                                 636      47  92.61%   306, 309, 368, 370, 528, 615, 628, 632-633, 638-639, 652, 668, 715, 744, 819, 828, 834, 853, 908-928, 931, 942, 961, 1016, 1019, 1154-1159
R/g_ipp.R                                    133       0  100.00%
R/g_km.R                                     354      57  83.90%   285-288, 307-309, 363-366, 400, 428, 432-475, 482-486
R/g_lineplot.R                               261      22  91.57%   222, 397-404, 443-453, 562, 570
R/g_step.R                                    68       1  98.53%   108
R/g_waterfall.R                               47       0  100.00%
R/h_adsl_adlb_merge_using_worst_flag.R        73       0  100.00%
R/h_biomarkers_subgroups.R                    91      23  74.73%   40-42, 84-103
R/h_cox_regression.R                         110       0  100.00%
R/h_incidence_rate.R                          45       0  100.00%
R/h_km.R                                     510      39  92.35%   147, 199-204, 297, 388, 390-391, 402-404, 423, 430-431, 433-435, 443-445, 470, 475-478, 661-664, 1118-1127
R/h_logistic_regression.R                    468       3  99.36%   203-204, 273
R/h_map_for_count_abnormal.R                  54       0  100.00%
R/h_pkparam_sort.R                            15       0  100.00%
R/h_response_biomarkers_subgroups.R           77      12  84.42%   50-55, 107-112
R/h_response_subgroups.R                     178      18  89.89%   257-270, 329-334
R/h_stack_by_baskets.R                        64       1  98.44%   89
R/h_step.R                                   178       0  100.00%
R/h_survival_biomarkers_subgroups.R           73       6  91.78%   111-116
R/h_survival_duration_subgroups.R            207      18  91.30%   259-271, 336-341
R/imputation_rule.R                           17       0  100.00%
R/incidence_rate.R                           103       7  93.20%   68-73, 242
R/logistic_regression.R                      102       0  100.00%
R/missing_data.R                              26       5  80.77%   39, 62-63, 96, 106
R/odds_ratio.R                               157       4  97.45%   270-273
R/prop_diff_test.R                           234       2  99.15%   298, 300
R/prop_diff.R                                578       7  98.79%   386, 388, 864, 1192, 1363, 1367, 1370
R/prune_occurrences.R                         57       0  100.00%
R/response_biomarkers_subgroups.R            124      10  91.94%   88-91, 270-275
R/response_subgroups.R                       252      16  93.65%   100-105, 271-275, 280, 282-283, 310-311
R/riskdiff.R                                  65       4  93.85%   94-97
R/rtables_access.R                            38       0  100.00%
R/score_occurrences.R                         20       1  95.00%   124
R/split_cols_by_groups.R                      49       0  100.00%
R/stat.R                                      59       0  100.00%
R/summarize_ancova.R                         174       2  98.85%   355-356
R/summarize_change.R                          72       3  95.83%   175, 177-178
R/summarize_colvars.R                         13       1  92.31%   75
R/summarize_coxreg.R                         172       0  100.00%
R/summarize_glm_count.R                      269      10  96.28%   129-130, 202-203, 459-463, 596
R/summarize_num_patients.R                   121      10  91.74%   122-124, 244, 248, 252-253, 337-338, 340
R/summarize_patients_exposure_in_cols.R      155       7  95.48%   58, 232-233, 237, 357-358, 362
R/survival_biomarkers_subgroups.R            136      10  92.65%   117-122, 228-231
R/survival_coxph_pairwise.R                  154       9  94.16%   55-56, 124, 138, 145, 149, 288, 290-291
R/survival_duration_subgroups.R              250      15  94.00%   124-129, 268-273, 286, 288-289
R/survival_time.R                            128       1  99.22%   261
R/survival_timepoint.R                       153       2  98.69%   320, 322
R/utils_checkmate.R                           93       0  100.00%
R/utils_default_stats_formats_labels.R       201       0  100.00%
R/utils_factor.R                              87       1  98.85%   99
R/utils_ggplot.R                             110       0  100.00%
R/utils_grid.R                               126       5  96.03%   164, 279-286
R/utils_rtables.R                            125       9  92.80%   39, 46, 414-415, 537-541
R/utils_split_funs.R                          52       2  96.15%   82, 94
R/utils.R                                    156       7  95.51%   131, 134, 137, 141, 150-151, 345
TOTAL                                      12545     566  95.49%

Diff against main

Filename      Stmts    Miss  Cover
----------  -------  ------  --------
TOTAL             0       0  +100.00%

Results for commit: 6dfc6f8

Minimum allowed coverage is 80%

♻️ This comment has been updated with latest results

findLink() scanned every anchor on the page, so a vignette using the words
"validation report" as link text would have been rewritten instead of the
navbar item. Scope it to the navbar.

closest() and remove() are the only ES6-era APIs in an otherwise strict ES5
file; replace them with equivalents so the target is consistent.

pickReport() now takes the maximum eligible report rather than the last match,
so REPORTS no longer has to be kept sorted, and the header comment notes that
the static fallback in _pkgdown.yml needs updating alongside it.

Mirrors the same fixes on pharmaverse/formatters#377 and pharmaverse/rtables#1122.
@Melkiades

Copy link
Copy Markdown
Contributor

@shajoezhu Same three fixes as on pharmaverse/formatters#377 and pharmaverse/rtables#1122, pushed here too, plus a description since the body was the unfilled template.

  • findLink() scanned every anchor on the page, so a vignette linking the words "validation report" would have been rewritten instead of the navbar item. Scoped to the navbar.
  • closest() and remove() were the only ES6-era DOM calls in an otherwise strict ES5 file. Swapped for equivalents.
  • pickReport() took the last match, so it depended on REPORTS being sorted. It now takes the maximum. The header comment also claimed adding a version needs "no other change", but the static href in _pkgdown.yml that no-JS readers get has to move too.

All four copies of extra.js are now byte-identical once the package-specific strings are normalised, so they will not drift.

Verified for tern: the 0.9.11 report is a 200, main at 0.9.11.9000 resolves to it, and older doc versions correctly drop the item. Note the branch is currently behind main, so it will need an update before merge.

One left for you across all four: an rc such as 0.9.11-rc1 resolves to the 0.9.11 report, since parseInt("rc1") is NaN and becomes 0, so the rc compares equal to the release. Happy to change it if you would rather rc builds got the previous report.

@Melkiades Melkiades left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Approving. The mechanism is sound and I checked it end to end: the report URL is live, the current version resolves to it, older doc versions correctly drop the item, and the live nesttemplate navbar exposes the version exactly where detectVersion() looks. Three small fixes pushed, described above.

@github-actions

github-actions Bot commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

Unit Tests Summary

    1 files     89 suites   1m 20s ⏱️
1 016 tests 1 007 ✅   9 💤 0 ❌
2 626 runs  1 895 ✅ 731 💤 0 ❌

Results for commit 6dfc6f8.

♻️ This comment has been updated with latest results.

@shajoezhu
shajoezhu merged commit 8ff6f57 into main Sep 26, 2026
29 checks passed
@shajoezhu
shajoezhu deleted the validation_report branch September 26, 2026 08:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants