{
  "_id": "6a0f5bf5acfb0bcc41c58fc9",
  "Package": "genproc",
  "Title": "Robust, Logged and Reproducible Iteration at Organizational\nScale",
  "Version": "0.2.0",
  "Authors@R": "person(\"Daniel\", \"Rakotomalala\", , \"rakdanielh@gmail.com\", role = c(\"aut\", \"cre\"))",
  "Description": "Turns one-off iterative R procedures (such as for loops,\nlapply() or pmap() from 'purrr') into production-grade\nworkflows by wrapping them with orthogonal, composable\nexecution layers. Two layers are always active: structured\nlogging with real traceback and per-case timing; and\nreproducibility capture, which records the R version, loaded\npackage versions, execution environment, the exact iteration\nmask, and a stat-based fingerprint of every input file\nreferenced in the mask (with a diff_inputs() helper to detect\nsilent drift between runs). Parallel execution (built on the\n'future' framework, Bengtsson (2021)\n<doi:10.32614/RJ-2021-048>), non-blocking background jobs, and\nopt-in progress reporting (via 'progressr') are implemented as\noptional, composable layers. Further layers (error replay,\ncontent-hash input fingerprinting, content-based case\nidentifiers) are planned and will remain composable with the\ndefault layers.",
  "License": "MIT + file LICENSE",
  "URL": "https://danielrak.github.io/genproc/,\nhttps://github.com/danielrak/genproc",
  "BugReports": "https://github.com/danielrak/genproc/issues",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "Encoding": "UTF-8",
  "Language": "en-US",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "7.3.3",
  "Repository": "https://danielrak.r-universe.dev",
  "Date/Publication": "2026-05-21 17:18:35 UTC",
  "RemoteUrl": "https://github.com/danielrak/genproc",
  "RemoteRef": "HEAD",
  "RemoteSha": "28324a58c8e76bb7d7db90abfd21c42a572a32b4",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-05-21 19:21:24 UTC",
    "User": "root"
  },
  "Author": "Daniel Rakotomalala [aut, cre]",
  "Maintainer": "Daniel Rakotomalala <rakdanielh@gmail.com>",
  "MD5sum": "13050224eac4ec255d7240c17e5475bc",
  "_user": "danielrak",
  "_type": "src",
  "_file": "genproc_0.2.0.tar.gz",
  "_fileid": "69b1ee01a61948a8c2cf7bf6fe78f2e63e94bce1be7fa8c773f56dd6987ebc6c",
  "_filesize": 292556,
  "_sha256": "69b1ee01a61948a8c2cf7bf6fe78f2e63e94bce1be7fa8c773f56dd6987ebc6c",
  "_created": "2026-05-21T19:21:24.000Z",
  "_published": "2026-05-21T19:24:37.410Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 77251140421,
      "time": 155,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7145169306"
    },
    {
      "job": 77251140370,
      "time": 145,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7145165992"
    },
    {
      "job": 77251140347,
      "time": 121,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7145157920"
    },
    {
      "job": 77251140407,
      "time": 95,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7145149840"
    },
    {
      "job": 77250630364,
      "time": 177,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7145116861"
    },
    {
      "job": 77251140350,
      "time": 105,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7145152404"
    },
    {
      "job": 77251140444,
      "time": 108,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7145154054"
    },
    {
      "job": 77251140372,
      "time": 135,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7145162836"
    },
    {
      "job": 77251140414,
      "time": 124,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7145158600"
    }
  ],
  "_buildurl": "https://github.com/r-universe/danielrak/actions/runs/26247799455",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/danielrak/genproc",
  "_commit": {
    "id": "28324a58c8e76bb7d7db90abfd21c42a572a32b4",
    "author": "danielrak <rakdanielh@gmail.com>",
    "committer": "danielrak <rakdanielh@gmail.com>",
    "message": "download badge\n",
    "time": 1779383915
  },
  "_maintainer": {
    "name": "Daniel Rakotomalala",
    "email": "rakdanielh@gmail.com",
    "login": "danielrak",
    "linkedin": "in/daniel-r-807192134",
    "description": "",
    "uuid": 49936669
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "future",
      "role": "Imports"
    },
    {
      "package": "future.apply",
      "role": "Imports"
    },
    {
      "package": "parallel",
      "role": "Imports"
    },
    {
      "package": "progressr",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "magrittr",
      "role": "Suggests"
    },
    {
      "package": "purrr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    }
  ],
  "_owner": "danielrak",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-16",
      "n": 34
    },
    {
      "week": "2026-18",
      "n": 32
    },
    {
      "week": "2026-19",
      "n": 2
    },
    {
      "week": "2026-21",
      "n": 2
    }
  ],
  "_tags": [
    {
      "name": "v0.2.0",
      "date": "2026-05-07"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "danielrak",
      "count": 70,
      "uuid": 49936669
    }
  ],
  "_userbio": {
    "uuid": 49936669,
    "type": "user",
    "name": "danielrak"
  },
  "_downloads": {
    "count": 168,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/genproc"
  },
  "_devurl": "https://github.com/danielrak/genproc",
  "_pkgdown": "https://danielrak.github.io/genproc/",
  "_searchresults": 0,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/genproc.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/danielrak/genproc",
  "_realowner": "danielrak",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.2.0",
      "date": "2026-05-12"
    }
  ],
  "_exports": [
    "add_trycatch_logrow",
    "await",
    "diff_inputs",
    "errors",
    "from_example_to_function",
    "from_function_to_mask",
    "genproc",
    "nonblocking_spec",
    "parallel_spec",
    "rename_function_params",
    "rerun_affected",
    "rerun_failed",
    "status"
  ],
  "_help": [
    {
      "page": "add_trycatch_logrow",
      "title": "Wrap a function with error handling and a structured log row",
      "topics": [
        "add_trycatch_logrow"
      ]
    },
    {
      "page": "await",
      "title": "Block until a non-blocking genproc run has resolved",
      "topics": [
        "await",
        "await.genproc_result"
      ]
    },
    {
      "page": "diff_inputs",
      "title": "Compare input file fingerprints between two genproc runs",
      "topics": [
        "diff_inputs",
        "print.genproc_input_diff"
      ]
    },
    {
      "page": "errors",
      "title": "Subset a genproc result to its failed cases",
      "topics": [
        "errors",
        "errors.genproc_result"
      ]
    },
    {
      "page": "from_example_to_function",
      "title": "Transform an example expression into a parameterized function",
      "topics": [
        "from_example_to_function"
      ]
    },
    {
      "page": "from_function_to_mask",
      "title": "Derive an iteration mask template from a function's signature",
      "topics": [
        "from_function_to_mask"
      ]
    },
    {
      "page": "genproc",
      "title": "Run a function over a mask with mandatory logging and reproducibility",
      "topics": [
        "genproc"
      ]
    },
    {
      "page": "nonblocking_spec",
      "title": "Specify a non-blocking execution strategy for genproc()",
      "topics": [
        "nonblocking_spec"
      ]
    },
    {
      "page": "parallel_spec",
      "title": "Specify a parallel execution strategy for genproc()",
      "topics": [
        "parallel_spec"
      ]
    },
    {
      "page": "print.genproc_result",
      "title": "Print a genproc result",
      "topics": [
        "print.genproc_result"
      ]
    },
    {
      "page": "print.genproc_result_summary",
      "title": "Print method for genproc_result_summary",
      "topics": [
        "print.genproc_result_summary"
      ]
    },
    {
      "page": "rename_function_params",
      "title": "Rename the parameters of a function",
      "topics": [
        "rename_function_params"
      ]
    },
    {
      "page": "rerun_affected",
      "title": "Re-run only the cases impacted by an input diff",
      "topics": [
        "rerun_affected"
      ]
    },
    {
      "page": "rerun_failed",
      "title": "Re-run only the cases that failed",
      "topics": [
        "rerun_failed"
      ]
    },
    {
      "page": "status",
      "title": "Query the status of a genproc run without blocking",
      "topics": [
        "status",
        "status.genproc_result"
      ]
    },
    {
      "page": "summary.genproc_result",
      "title": "Summarise a genproc result",
      "topics": [
        "summary.genproc_result"
      ]
    }
  ],
  "_readme": "https://github.com/danielrak/genproc/raw/HEAD/README.md",
  "_rundeps": [
    "codetools",
    "digest",
    "future",
    "future.apply",
    "globals",
    "listenv",
    "parallelly",
    "progressr"
  ],
  "_vignettes": [
    {
      "source": "genproc.Rmd",
      "filename": "genproc.html",
      "title": "genproc: deep dive",
      "engine": "knitr::rmarkdown",
      "headings": [
        "A small working example",
        "Anatomy of genproc_result",
        "The log",
        "The reproducibility snapshot",
        "Input fingerprinting",
        "Heuristic detection",
        "Shared inputs are deduplicated",
        "Overrides",
        "Comparing runs with diff_inputs()",
        "How errors are reported",
        "Inspecting and re-running a result",
        "Building blocks: extracting f and the mask from a working example",
        "1. from_example_to_function() — example expression to function",
        "2. from_function_to_mask() — function signature to mask template",
        "3. rename_function_params() — give the parameters domain names",
        "Parameter renaming with f_mapping",
        "Parallel execution in depth",
        "Power-user pattern: manage the plan yourself",
        "One-off pattern: let genproc install the plan",
        "Amortization threshold",
        "RNG reproducibility",
        "Non-blocking execution in depth",
        "What's in the skeleton",
        "Idempotence",
        "Default strategy: why \"multisession\"",
        "Plan lifetime",
        "Composition: parallel × non-blocking",
        "Default mc.cores in the wrapper subprocess",
        "Progress monitoring",
        "Current edges and roadmap"
      ],
      "created": "2026-04-17 16:09:28",
      "modified": "2026-05-07 19:09:24",
      "commits": 9
    }
  ],
  "_score": 4.301029995663981,
  "_indexed": true,
  "_nocasepkg": "genproc",
  "_universes": [
    "danielrak"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.2.0",
      "date": "2026-05-21T19:23:33.000Z",
      "distro": "noble",
      "commit": "28324a58c8e76bb7d7db90abfd21c42a572a32b4",
      "fileid": "5d12bb733c8d1ffe1214642b7e89ea3bfba9d604ba4c073fd92f90b596ba6faa",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/danielrak/actions/runs/26247799455"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.2.0",
      "date": "2026-05-21T19:23:24.000Z",
      "distro": "noble",
      "commit": "28324a58c8e76bb7d7db90abfd21c42a572a32b4",
      "fileid": "728bab61bff6d16e989faeb1ae2d17a2d74e6ee4945461c26e26da4399c128bb",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/danielrak/actions/runs/26247799455"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.2.0",
      "date": "2026-05-21T19:23:03.000Z",
      "commit": "28324a58c8e76bb7d7db90abfd21c42a572a32b4",
      "fileid": "8e53a934782ccb019a3453450050356da52abe22ddb82d614e07255f7698890a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/danielrak/actions/runs/26247799455"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "0.2.0",
      "date": "2026-05-21T19:22:46.000Z",
      "commit": "28324a58c8e76bb7d7db90abfd21c42a572a32b4",
      "fileid": "08bac4338320f6166d85be415e9b10aac7a0d1611b1c00427ee6088212717f91",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/danielrak/actions/runs/26247799455"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.2.0",
      "date": "2026-05-21T19:23:24.000Z",
      "commit": "28324a58c8e76bb7d7db90abfd21c42a572a32b4",
      "fileid": "dc38e48d6eb61f52204198e45b1b0940a2230b433cb10c13ff33c24ed75e1293",
      "status": "success",
      "buildurl": "https://github.com/r-universe/danielrak/actions/runs/26247799455"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.2.0",
      "date": "2026-05-21T19:22:38.000Z",
      "commit": "28324a58c8e76bb7d7db90abfd21c42a572a32b4",
      "fileid": "2c2eae9571c0736d2b2236aacd719298f381786972d24d9d230099eb71cc486d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/danielrak/actions/runs/26247799455"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.2.0",
      "date": "2026-05-21T19:23:06.000Z",
      "commit": "28324a58c8e76bb7d7db90abfd21c42a572a32b4",
      "fileid": "cee1a4d8258c2cf59ee94ecbc7450bdbd3ae486b2c53587b5f24a6026946cb74",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/danielrak/actions/runs/26247799455"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "0.2.0",
      "date": "2026-05-21T19:22:42.000Z",
      "commit": "28324a58c8e76bb7d7db90abfd21c42a572a32b4",
      "fileid": "d1127eaefa2895d1c8277f67b9424ed9bd71e8fb1f024fa1a8ed370805c3777b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/danielrak/actions/runs/26247799455"
    }
  ]
}