
API lifecycle and canonical interfaces
Source:vignettes/api-lifecycle-and-canonical-interfaces.Rmd
api-lifecycle-and-canonical-interfaces.RmdA large scientific package needs a navigable public surface. The 0.9
lifecycle layer inventories exports, maps them to conceptual families,
and permits explicit statuses such as core, workflow, advanced,
experimental, gated, compatibility, and deprecated. Unreviewed functions
remain unreviewed; eyeprocess does not infer maturity from
a name alone.
inv <- eye_api_inventory()
reg <- eye_api_lifecycle()
reg <- register_eye_api_status(reg, "run_eye_pipeline", "workflow", canonical="run_eye_pipeline")
audit <- audit_eye_api(inv, reg)
api_surface_summary(audit$table)
eye_api_recommendation(audit)The purpose is staged consolidation. Version 0.9 does not aggressively remove established interfaces.
Packaged lifecycle closure
The 0.9 development surface is accompanied by a packaged lifecycle
registry covering every currently exported API symbol. Classification is
deliberately conservative: foundational front-door interfaces are
core; orchestration and governance interfaces are
workflow; specialist scientific interfaces are
advanced; research-facing interfaces with explicit
provisional contracts are experimental; and frontier or
optional-engine interfaces may be gated.
Lifecycle status describes software-interface maturity and governance. It does not establish construct validity, empirical adequacy, device equivalence, or the scientific interpretation of gaze, pupil, response-time, sequence, or psychometric measures.
lifecycle <- eyeprocess::eye_api_lifecycle()
inventory <- eyeprocess::eye_api_inventory()
audit <- eyeprocess::audit_eye_api(inventory, lifecycle)
eyeprocess::api_surface_summary(inventory)
#> family status Freq
#> 1 io advanced 0
#> 2 model advanced 46
#> 3 plot advanced 91
#> 4 simulation advanced 30
#> 5 summary advanced 34
#> 6 utility advanced 313
#> 7 validation advanced 56
#> 8 workflow advanced 7
#> 9 io core 26
#> 10 model core 0
#> 11 plot core 19
#> 12 simulation core 0
#> 13 summary core 4
#> 14 utility core 114
#> 15 validation core 22
#> 16 workflow core 0
#> 17 io experimental 0
#> 18 model experimental 32
#> 19 plot experimental 0
#> 20 simulation experimental 2
#> 21 summary experimental 2
#> 22 utility experimental 56
#> 23 validation experimental 7
#> 24 workflow experimental 1
#> 25 io gated 0
#> 26 model gated 14
#> 27 plot gated 0
#> 28 simulation gated 1
#> 29 summary gated 0
#> 30 utility gated 5
#> 31 validation gated 2
#> 32 workflow gated 0
#> 33 io workflow 45
#> 34 model workflow 15
#> 35 plot workflow 10
#> 36 simulation workflow 5
#> 37 summary workflow 10
#> 38 utility workflow 151
#> 39 validation workflow 49
#> 40 workflow workflow 13
audit
#> eyeprocess API lifecycle audit
#> APIs : 1182
#> reviewed fraction: 100.0%
#> invalid mappings : 0The current registry is intentionally frozen to the current exported
surface. A future exported symbol that is absent from the registry
continues to resolve as unreviewed; this makes lifecycle
review an explicit release obligation rather than an inference from
function naming.