94aaa4cde8
C28 phase 5 (Stratification): the backtest reductions - RunMetrics, RMetrics, summarize_r, r_metrics_from_rs, and the position-event table - move verbatim into aura-backtest::metrics, beside the position_management producer whose record layout they read (the r_col/cost_col lockstep contract is now intra-crate; its stale "aura-std" comment corrected). aura-analysis is reduced to the domain-free half: the multiple-comparison hurdle math (inv_norm_cdf, expected_max_of_normals) and the selection-provenance types (FamilySelection/SelectionMode - kept beside the statistics so RunManifest.selection embeds a foundation-grade type), [dependencies] = serde only. The engine re-export surface is name-unchanged (report.rs re-imports from both crates), so no indirect consumer needed a source edit; aura-backtest moves from aura-engine's dev-dependencies into [dependencies] as a commented TRANSIENT widening of the C28 violation, removed by the phase-2 edge cut on this branch. The campaign drift guard imports its pinned types from their new source crates. Behaviour-preserving: 1448/0 tests, clippy -D warnings clean, serde shapes byte-identical (C18), moved code traceable via git copy detection. closes #291
37 lines
1.8 KiB
TOML
37 lines
1.8 KiB
TOML
[package]
|
|
name = "aura-campaign"
|
|
edition.workspace = true
|
|
version.workspace = true
|
|
license.workspace = true
|
|
publish.workspace = true
|
|
|
|
# Deliberately NO aura-ingest / aura-std / aura-composites: harness and data
|
|
# binding enter through the one-method MemberRunner seam (src/lib.rs), so the
|
|
# deploy-condemned CLI scaffolding never becomes a library dep and a
|
|
# differently-binding consumer (playground, tests) implements the same seam.
|
|
[dependencies]
|
|
# the scalar vocabulary: params cross the MemberRunner seam as (name, Scalar) pairs.
|
|
aura-core = { path = "../aura-core" }
|
|
# RunReport (the member result type) + the sweep/walk_forward orchestration machinery.
|
|
aura-engine = { path = "../aura-engine" }
|
|
# FamilySelection — the selection-provenance type stage selections carry.
|
|
aura-analysis = { path = "../aura-analysis" }
|
|
# family + campaign-run stores and the optimize/optimize_plateau/optimize_deflated selectors.
|
|
aura-registry = { path = "../aura-registry" }
|
|
# the campaign/process document types this crate executes.
|
|
aura-research = { path = "../aura-research" }
|
|
# realization payloads derive serde (the registry per-case policy, INDEX.md).
|
|
serde = { workspace = true, features = ["derive"] }
|
|
serde_json = { workspace = true }
|
|
# rayon is admitted under the amended C16 per-case dependency policy (INDEX.md):
|
|
# the campaign cell loop fans C1-disjoint cells into the same process-global
|
|
# work-stealing pool the engine's run_indexed already uses — parallelism across
|
|
# sims, never within one. Direct versioned dep, mirroring aura-engine.
|
|
rayon = "1"
|
|
|
|
[dev-dependencies]
|
|
# aura-backtest supplies RunMetrics/summarize_r for the metric-vocabulary drift
|
|
# guard's direct-source import (tests/metric_vocabulary_e2e.rs). Production
|
|
# code reaches these types via the aura-engine re-export instead.
|
|
aura-backtest = { path = "../aura-backtest" }
|