Skip to content

Release v2.0.0: trial-based timing architecture - #3

Merged
ValentinGuigon merged 6 commits into
masterfrom
release/v2.0.0-prep
Jul 20, 2026
Merged

ValentinGuigon merged 6 commits into
masterfrom
release/v2.0.0-prep

Conversation

@ValentinGuigon

Copy link
Copy Markdown
Collaborator

Summary

Merges release/v2.0.0-prep into master for the neurodesign-plus 2.0.0 release: a source-breaking rework of the timing model around conceptual trials and modeled events, replacing the inherited event-only/ITI-based architecture.

Full details: CHANGES.md · MIGRATION_2.0.md

Highlights

  • New trial-based timing model — trial_start_interval, post_event_interval, event_transition_interval, inter_trial_interval, rest_every_n_trials, rest_interval replace the old ambiguous ITI handling.
  • Trial-template design modes — flat one-event shorthand, fixed complete-trial templates (trial_templates + trials), and probabilistic complete-template sampling (trial_templates + trial_template_probabilities + n_conceptual_trials), replacing event-level template truncation.
  • Standardized workflow — Experiment.create_design() / create_manual_design() for construction, optimise() → selected_design(rank) for retrieval.
  • RNG rewrite — NumPy SeedSequence/Generator throughout, removing global-state reseeding.
  • Convergence reporting — patience-based early stopping (convergence=k), with generations_completed, stop_reason, optima exposed.
  • Rewritten tutorials (tutorials/) covering the v2 workflow end-to-end; renamed/clarified validation scripts under validation/; improved public docstrings on Experiment and Optimisation.

Breaking changes

  • Removed: stimuli_durations, conditional_ITI, order_keys/order_probabilities/order_length, all_stim_durations, t_pre/t_post, ITImodel/ITImin/ITImean/ITImax, direct .bestdesign reliance.
  • Fixed-rule timing dicts now use "value" instead of "mean" for {"model": "fixed", ...} (uniform/exponential/gaussian rules are unaffected).
  • See MIGRATION_2.0.md for the full v1 → v2 upgrade path.

Validation

  • Full pytest suite passing (71 passed).
  • Legacy-parity comparison against the original package retained under tests/test_legacy_parity.py.
  • All maintained tutorial notebooks re-executed clean from fresh kernels.
  • Version metadata synced to 2.0.0 across pyproject.toml and CITATION.cff.

@ValentinGuigon
ValentinGuigon merged commit 447886b into master Jul 20, 2026
19 checks passed
@ValentinGuigon
ValentinGuigon deleted the release/v2.0.0-prep branch July 20, 2026 12:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant