Skip to content

Commit 773fc35

Browse files
billdenneyclaude
andcommitted
data-raw: skip build_catalogue when no new data downloaded
build_catalogue.R was always saved unconditionally (including Sys.Date() which changes every run), so git diff always detected a change in datasets_catalogue.rda and a PR was opened every Monday even when there was nothing new to report. Each fetch script now sets an *_updated flag when it actually downloads new data. fetch_all.R only sources build_catalogue.R and describe_changes.R when at least one flag is TRUE, so the .rda file and the PR are only touched on genuine updates. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 75e5c13 commit 773fc35

5 files changed

Lines changed: 24 additions & 6 deletions

File tree

data-raw/fetch_all.R

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,12 @@ old_adam_versions <- if (file.exists("data/ct_adam.rda")) {
3232
character(0)
3333
}
3434

35+
# Flags set to TRUE by each fetch script when new data is actually downloaded.
36+
sdtm_updated <- FALSE
37+
adam_updated <- FALSE
38+
schema_updated <- FALSE
39+
stylesheet_updated <- FALSE
40+
3541
message("\n--- SDTM CT ---")
3642
source("data-raw/fetch_ct_sdtm.R")
3743

@@ -44,13 +50,19 @@ source("data-raw/fetch_schemas.R")
4450
message("\n--- XSLT Stylesheets ---")
4551
source("data-raw/fetch_stylesheets.R")
4652

47-
message("\n--- Rebuild datasets_catalogue ---")
48-
source("data-raw/build_catalogue.R")
53+
any_updated <- sdtm_updated || adam_updated || schema_updated || stylesheet_updated
54+
55+
if (any_updated) {
56+
message("\n--- Rebuild datasets_catalogue ---")
57+
source("data-raw/build_catalogue.R")
4958

50-
message("\n--- Change summary ---")
51-
source("data-raw/describe_changes.R")
52-
describe_ct_changes(ct_sdtm, prev_versions = old_sdtm_versions, label = "SDTM CT")
53-
describe_ct_changes(ct_adam, prev_versions = old_adam_versions, label = "ADaM CT")
59+
message("\n--- Change summary ---")
60+
source("data-raw/describe_changes.R")
61+
describe_ct_changes(ct_sdtm, prev_versions = old_sdtm_versions, label = "SDTM CT")
62+
describe_ct_changes(ct_adam, prev_versions = old_adam_versions, label = "ADaM CT")
63+
} else {
64+
message("\nAll data is already up to date. Nothing to update.")
65+
}
5466

5567
message("\n=== Done ===")
5668
message(Sys.time())

data-raw/fetch_ct_adam.R

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,4 +69,5 @@ if (length(dates_needed) == 0L) {
6969
# ── Save ────────────────────────────────────────────────────────────────────
7070
usethis::use_data(ct_adam, overwrite = TRUE, compress = "xz")
7171
message("ct_adam saved.")
72+
adam_updated <- TRUE
7273
}

data-raw/fetch_ct_sdtm.R

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,4 +72,5 @@ if (length(dates_needed) == 0L) {
7272
# ── Save ────────────────────────────────────────────────────────────────────
7373
usethis::use_data(ct_sdtm, overwrite = TRUE, compress = "xz")
7474
message("ct_sdtm saved.")
75+
sdtm_updated <- TRUE
7576
}

data-raw/fetch_schemas.R

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ SCHEMA_URLS <- list(
2828
)
2929
)
3030

31+
schema_updated <- FALSE
3132
for (ver in names(SCHEMA_URLS)) {
3233
spec <- SCHEMA_URLS[[ver]]
3334
dir.create(spec$dir, recursive = TRUE, showWarnings = FALSE)
@@ -36,6 +37,7 @@ for (ver in names(SCHEMA_URLS)) {
3637
if (!file.exists(dest)) {
3738
message(sprintf("Downloading schema %s (Define-XML %s)...", fname, ver))
3839
download.file(spec$files[[fname]], dest, quiet = TRUE, mode = "wb")
40+
schema_updated <- TRUE
3941
}
4042
}
4143
}

data-raw/fetch_stylesheets.R

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,15 @@ STYLESHEET_URLS <- c(
1212
"https://raw.githubusercontent.com/dbosak01/defineR/master/inst/extdata/2.0.0/cdisc-xsl/define2-0.xsl"
1313
)
1414

15+
stylesheet_updated <- FALSE
1516
dir.create("inst/extdata/stylesheet", recursive = TRUE, showWarnings = FALSE)
1617

1718
for (fname in names(STYLESHEET_URLS)) {
1819
dest <- file.path("inst/extdata/stylesheet", fname)
1920
if (!file.exists(dest)) {
2021
message(sprintf("Downloading stylesheet %s...", fname))
2122
download.file(STYLESHEET_URLS[[fname]], dest, quiet = TRUE, mode = "wb")
23+
stylesheet_updated <- TRUE
2224
}
2325
}
2426
message("Stylesheets are in place.")

0 commit comments

Comments
 (0)