Skip to content

v2.0.1

Choose a tag to compare

@github-actions github-actions released this 25 Nov 18:46
· 152 commits to master since this release

v2.0.1 (2025-11-25)

Build

  • build: refresh poetry.lock (f7c491b)

  • build: refresh poetry.lock (37e167f)

Documentation

  • docs: expand video examples (f13ee97)

  • docs: hide Tutorials toctree from main page, keep in sidebar (c9537ec)

  • docs: remove :hidden: from Tutorials toctree to show in sidebar (a473fdd)

  • docs: restore tutorial subsections structure with .rst files (8aad1a5)

  • docs: create tutorial subsections with index files (Configuration, Simulation, Data, Development) (a27d098)

  • docs: organize tutorials into subsections (Configuration, Simulation, Data, Development) (6f60d95)

  • docs: remove duplicate myst_parser extension (included in myst_nb) (c2e63d1)

  • docs: switch from nbsphinx to myst_nb and add pygments style (76ffea2)

  • docs: switch to sphinx_rtd_theme and rename autoapi entry (e92eac0)

  • docs: fix sidebar navigation and use default Furo theme (6597030)

  • docs: reorganize concepts and index (4d6a563)

Fix

  • fix: improve installation docs, CI workflow, and simulation handling
  • Update installation guide: recommend pip, add virtual env setup, Windows troubleshooting
  • Replace Nsims with N in all documentation files
  • Add Batch mode under development warnings
  • Add space_search configuration note for Batch mode
  • Add docstrings to constants in init.py for autoapi
  • Enable heavy Windows tests on weekly scheduled runs
  • Skip heavy Windows tests on regular CI runs for faster feedback
  • Fix AttributeError for optional modelIDs/groupIDs in Exp mode CLI
  • Set scale visible by default and initialize scale lines on screen creation
  • Fix window-close handling: abort simulation immediately when window closed
  • Improve pause feedback: rendering continues while paused
  • Silent output save: suppress 'Data saved...' messages
  • Skip dataset processing on abort to avoid exceptions (670f66b)
  • fix: improve simulation window handling and pause feedback
  • Fix window-close handling: when user clicks window X, flag run as aborted, stop simulation loop immediately, and skip analysis/storage to avoid pygame surface errors
  • Improve pause feedback: rendering continues while paused so on-screen 'is_paused ON/OFF' message shows reliably
  • Silent output save: re-enable self.output.save() wrapped with contextlib.redirect_stdout to suppress 'Data saved...' message
  • Skip dataset processing on abort: if window was closed mid-run, skip dataset creation/enrichment/storage to avoid exceptions
  • Fix AttributeError for optional modelIDs/groupIDs in Exp mode CLI
  • Set scale visible by default and initialize scale lines on screen creation (304ce80)
  • fix(ci): properly detect linting errors vs formatting changes
  • Fix logic to re-run pre-commit after staging formatting changes
  • Only pass if pre-commit succeeds after formatting (no linting errors)
  • Fail if linting errors remain after formatting

fix: convert inline docstrings to comments to satisfy check-docstring-first

  • Convert inline docstrings (after variable assignments) to comments
  • This fixes the 'Multiple module docstrings' linting error
  • Inline docstrings are not standard Python practice for module-level variables (679821c)
  • fix(ci): correct HAS_CHANGES variable check in lint job
  • Fix undefined HAS_CHANGES variable by setting it before use
  • Simplify logic: allow formatting changes in PRs with warning
  • Note that linting errors must still be fixed before merging (484bb00)
  • fix(docs): broken documentation references to tutorials/index
  • Replace non-existent tutorials/index references with actual tutorial subsections
  • Replace non-existent working_with_larvaworld/index with actual workflow guides
  • Updated references in theory_overview.md, simulation_modes.md, and api_overview.rst (6b3a41c)
  • fix(screen): simulation termination and visualization documentation
  • Fix premature simulation termination when running headless (without display)

    • Modified close_requested() to only check for QUIT events when display is actually shown
    • Updated close() to only terminate simulation when user closes display window
    • Added event clearing during initialization to prevent false QUIT detection
    • Improved finalize() to skip close() when screen not active/initialized
  • Fix documentation: show_display vs vis_mode

    • Corrected usage examples: show_display alone doesn't render simulation
    • Updated to use vis_mode='video' for real-time visualization
    • Fixed examples in usage.md, api_cli.rst, single_experiments.md, visualization_snapshots.md
  • Add --version argument to CLI

  • Improve screen manager cleanup and error handling (6b56f91)

Refactor

  • refactor: documentation improvements, CI enhancements, and test marker refactoring

Description of change

This PR includes comprehensive improvements to documentation infrastructure, CI/CD workflow enhancements, bug fixes, and test organization refactoring.

Documentation Improvements

  • Sphinx theme migration: Switched from default theme to sphinx_rtd_theme and later to Furo theme for better navigation
  • Notebook rendering: Migrated from nbsphinx to myst_nb for improved Jupyter notebook support
  • Tutorial organization: Reorganized tutorials into structured subsections (Configuration, Simulation, Data, Development) with proper .rst index files
  • Navigation fixes: Fixed broken documentation references to non-existent tutorials/index and working_with_larvaworld/index pages
  • Sidebar improvements: Improved sidebar navigation and toctree structure

CI/CD Enhancements

  • Auto-formatting commits: Added automatic commit of formatting changes when pre-commit hooks modify files
  • PR safety: Prevented auto-commit step from running on pull requests (avoids detached HEAD issues)
  • Windows testing: Enabled Windows tests in CI workflow matrix
  • Branch detection: Fixed branch detection for force push in detached HEAD state
  • run heavy Windows simulations only on weekly scheduled CI via LW_ENABLE_WINDOWS_HEAVY
  • keep daily matrix fast while preserving full coverage once per week

Bug Fixes

  • Simulation termination: Fixed premature simulation termination when running headless (without display)
    • Modified close_requested() to only check for QUIT events when display is actually shown
    • Updated close() to only terminate simulation when user closes display window
    • Added event clearing during initialization to prevent false QUIT detection
  • Documentation accuracy: Fixed incorrect usage examples for show_display vs vis_mode in multiple documentation files

Test Infrastructure

  • Marker refactoring: Renamed pytest marker from slow to heavy for better clarity
  • Test organization: Reorganized test files into proper unit/ and integration/ directory structure
  • Test coverage: Added comprehensive test coverage across multiple modules

Build Improvements

  • Dependency management: Updated poetry.lock to include missing dependencies (sphinxcontrib-mermaid)
  • Lock file refresh: Refreshed poetry.lock to ensure consistency

Pull-Request Checklist

  • Code is up-to-date with the master branch
  • This pull request follows the contributing guidelines
  • This pull request links relevant issues as Fixes #0000 (N/A - no specific issues)
  • There are new or updated unit tests validating the change
  • Documentation has been updated to reflect this change
  • The new commits follow conventions outlined in the conventional commit spec

Testing

All CI checks pass:

  • ✅ Linting and formatting (pre-commit hooks)
  • ✅ Commit message validation (commitlint)
  • ✅ Full test suite on Ubuntu (Python 3.11)
  • ✅ Matrix tests (Ubuntu/macOS/Windows × Python 3.10/3.11)

Impact

  • Documentation: Improved navigation, better notebook rendering, fixed broken links
  • CI/CD: More robust workflow with automatic formatting and PR safety
  • Code quality: Better test organization and marker clarity
  • User experience: Fixed simulation termination bug when running headless (838b554)
  • refactor: rename pytest marker from 'slow' to 'heavy'
  • Change marker name from 'slow' to 'heavy' for better clarity
  • Update all test files using @pytest.mark.slow to @pytest.mark.heavy
  • Rename INTEGRATION_SLOW_PATHS to INTEGRATION_HEAVY_PATHS in conftest.py
  • Remove --slow option from pytest addopts (not a valid pytest option)
  • Remove pytest_addoption for --slow (no longer needed)
  • Update README.md examples and descriptions
  • Update pyproject.toml marker definitions

This change avoids conflicts with pytest_nengo plugin and makes the
marker name more descriptive of what it represents (heavy/computational tests). (333de3c)