diff options
author | Justin Bedo <cu@cua0.org> | 2021-09-24 21:17:37 +1000 |
---|---|---|
committer | Justin Bedo <cu@cua0.org> | 2021-09-24 21:25:53 +1000 |
commit | 9bc37bff1afd0bc3fc5b851ee4512ea4478fc583 (patch) | |
tree | 855e3d885fd606f586b9e8a3b5fcb1cd849c1fc7 | |
parent | 3489318f65a7124b5f852d4f6f5a595e8f85a9af (diff) |
rPackages: mark packages as broken when generating package sets
The current behaviour for generate-r-packages.R is to delete packages that have been remove upstream. This patch changes the behaviour to mark packages as broken rather than removing them. This has the advantage of never breaking expressions, which previously occured when a package with overrides in default.nix was deleted. As a result, the update procedure is simplified, allowing automated updates to the package tree to run, and additionally if a package is re-established upstream the previous overrides still exist.
-rw-r--r-- | doc/languages-frameworks/r.section.md | 8 | ||||
-rwxr-xr-x | pkgs/development/r-modules/generate-r-packages.R | 12 |
2 files changed, 12 insertions, 8 deletions
diff --git a/doc/languages-frameworks/r.section.md b/doc/languages-frameworks/r.section.md index 56e3da64df2a7..6b64e264b6692 100644 --- a/doc/languages-frameworks/r.section.md +++ b/doc/languages-frameworks/r.section.md @@ -113,11 +113,3 @@ mv bioc-experiment-packages.nix.new bioc-experiment-packages.nix ``` `generate-r-packages.R <repo>` reads `<repo>-packages.nix`, therefor the renaming. - -## Testing if the Nix-expression could be evaluated {#testing-if-the-nix-expression-could-be-evaluated} - -```bash -nix-build test-evaluation.nix --dry-run -``` - -If this exits fine, the expression is ok. If not, you have to edit `default.nix` diff --git a/pkgs/development/r-modules/generate-r-packages.R b/pkgs/development/r-modules/generate-r-packages.R index f656fdca0922d..8c97c651e4c4b 100755 --- a/pkgs/development/r-modules/generate-r-packages.R +++ b/pkgs/development/r-modules/generate-r-packages.R @@ -82,6 +82,17 @@ pkgs$sha256 <- parApply(cl, pkgs, 1, function(p) nixPrefetch(p[1], p[2])) nix <- apply(pkgs, 1, function(p) formatPackage(p[1], p[2], p[18], p[4], p[5], p[6])) write("done", stderr()) +# Mark deleted packages as broken +setkey(readFormatted, V2) +markBroken <- function(name) { + str <- paste0(readFormatted[name], collapse='"') + if(sum(grep("broken = true;", str))) + return(str) + write(paste("marked", name, "as broken"), stderr()) + gsub("};$", "broken = true; };", str) +} +broken <- lapply(setdiff(readFormatted[[2]], pkgs[[1]]), markBroken) + cat("# This file is generated from generate-r-packages.R. DO NOT EDIT.\n") cat("# Execute the following command to update the file.\n") cat("#\n") @@ -95,6 +106,7 @@ if (mirrorType == "cran") { cat("{ snapshot = \"", paste(snapshotDate), "\"; }", cat(";\n") cat("in with self; {\n") cat(paste(nix, collapse="\n"), "\n", sep="") +cat(paste(broken, collapse="\n"), "\n", sep="") cat("}\n") stopCluster(cl) |