Skip to content

Commit d0dd8b9

Browse files
committed
rPackages: migrate generated code to JSON
1 parent b9d0607 commit d0dd8b9

File tree

9 files changed

+171197
-27991
lines changed

9 files changed

+171197
-27991
lines changed

pkgs/development/r-modules/bioc-annotation-packages.json

Lines changed: 6242 additions & 0 deletions
Large diffs are not rendered by default.

pkgs/development/r-modules/bioc-annotation-packages.nix

Lines changed: 0 additions & 1032 deletions
This file was deleted.

pkgs/development/r-modules/bioc-experiment-packages.json

Lines changed: 2727 additions & 0 deletions
Large diffs are not rendered by default.

pkgs/development/r-modules/bioc-experiment-packages.nix

Lines changed: 0 additions & 459 deletions
This file was deleted.

pkgs/development/r-modules/bioc-packages.json

Lines changed: 14992 additions & 0 deletions
Large diffs are not rendered by default.

pkgs/development/r-modules/bioc-packages.nix

Lines changed: 0 additions & 2466 deletions
This file was deleted.

pkgs/development/r-modules/cran-packages.json

Lines changed: 147212 additions & 0 deletions
Large diffs are not rendered by default.

pkgs/development/r-modules/cran-packages.nix

Lines changed: 0 additions & 24027 deletions
This file was deleted.

pkgs/development/r-modules/default.nix

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,13 @@
1-
/* This file defines the composition for CRAN (R) packages. */
1+
/* This file defines the composition for R packages. */
2+
3+
let
4+
importJSON = f: builtins.fromJSON (builtins.readFile f);
5+
6+
biocPackagesGenerated = importJSON ./bioc-packages.json;
7+
biocAnnotationPackagesGenerated = importJSON ./bioc-annotation-packages.json;
8+
biocExperimentPackagesGenerated = importJSON ./bioc-experiment-packages.json;
9+
cranPackagesGenerated = importJSON ./cran-packages.json;
10+
in
211

312
{ R, pkgs, overrides }:
413

@@ -46,7 +55,7 @@ let
4655
# from the name, version, sha256, and optional per-package arguments above
4756
#
4857
deriveBioc = mkDerive {
49-
mkHomepage = {name, biocVersion, ...}: "https://bioconductor.org/packages/${biocVersion}/bioc/html/${name}.html";
58+
mkHomepage = {name, biocVersion}: "https://bioconductor.org/packages/${biocVersion}/bioc/html/${name}.html";
5059
mkUrls = {name, version, biocVersion}: [
5160
"mirror://bioc/${biocVersion}/bioc/src/contrib/${name}_${version}.tar.gz"
5261
"mirror://bioc/${biocVersion}/bioc/src/contrib/Archive/${name}/${name}_${version}.tar.gz"
@@ -68,7 +77,7 @@ let
6877
hydraPlatforms = [];
6978
};
7079
deriveCran = mkDerive {
71-
mkHomepage = {name, ...}: "https://cran.r-project.org/web/packages/${name}/";
80+
mkHomepage = {name}: "https://cran.r-project.org/web/packages/${name}/";
7281
mkUrls = {name, version}: [
7382
"mirror://cran/${name}_${version}.tar.gz"
7483
"mirror://cran/Archive/${name}/${name}_${version}.tar.gz"
@@ -287,10 +296,18 @@ let
287296
# packages in `_self` may depends on overridden packages.
288297
self = (defaultOverrides _self self) // overrides;
289298
_self = { inherit buildRPackage; } //
290-
import ./bioc-packages.nix { inherit self; derive = deriveBioc; } //
291-
import ./bioc-annotation-packages.nix { inherit self; derive = deriveBiocAnn; } //
292-
import ./bioc-experiment-packages.nix { inherit self; derive = deriveBiocExp; } //
293-
import ./cran-packages.nix { inherit self; derive = deriveCran; };
299+
mkPackageSet deriveBioc biocPackagesGenerated //
300+
mkPackageSet deriveBiocAnn biocAnnotationPackagesGenerated //
301+
mkPackageSet deriveBiocExp biocExperimentPackagesGenerated //
302+
mkPackageSet deriveCran cranPackagesGenerated;
303+
304+
# Takes in a generated JSON file's imported contents
305+
# and transforms it by swapping each element of the depends array with the dependency's derivation
306+
# and passing this new object to the provided derive function
307+
mkPackageSet = derive: packagesJSON: lib.mapAttrs (
308+
k: v: derive packagesJSON.extraArgs (v // { depends = lib.map (name: builtins.getAttr name self) v.depends; })
309+
) packagesJSON.packages;
310+
294311

295312
# tweaks for the individual packages and "in self" follow
296313

0 commit comments

Comments
 (0)