Skip to content

v2.0.0

Choose a tag to compare

@github-actions github-actions released this 22 Nov 14:00
· 180 commits to master since this release

v2.0.0 (2025-11-22)

Breaking

  • feat: complete package modernization (phases 1-4) (#3)

Complete modernization of Larvaworld package across 4 major phases:

Phase 1 - Dependency Loading & Module Imports:

  • Implement lazy loading with getattr facades
  • Establish stable public API with explicit all declarations
  • Eliminate 12 circular dependencies
  • Performance: Main package 16.7× faster (5.48s → 0.33s, -94%)
  • Performance: Dashboards 19.2× faster (5.17s → 0.27s, -95%)
  • Performance: Cold start 1041× faster (269s → 0.26s, -99.9%)

Phase 2 - Type Safety & Documentation:

  • Add 720+ type hints (440 returns + 280 parameters)
  • Document 455+ symbols with Google-style docstrings
  • Integrate 65+ modules with AutoAPI
  • Enable full IDE autocomplete and type checking

Phase 3 - Unit Testing:

  • Add 523+ unit tests with deterministic infrastructure
  • Fix 2 production bugs in batch_run.py (TypeError, KeyError)
  • Achieve high coverage on critical modules:
    • batch_run.py: 98%
    • data_conf.py, sim_conf.py: 100%
    • shapely_aux.py: 100%
    • nan_interpolation.py: 96.72%

Phase 4 - Integration Testing & CI/CD:

  • Add 80+ integration tests with real data validation
  • Implement dataset bootstrap framework (FileLock, READY flags)
  • Establish marker taxonomy (fast/slow/integration/optional_dep/legacy)
  • Deploy complete CI/CD pipeline:
    • Poetry-based dependency management
    • Pre-commit hooks (lint, prettier, ruff-format)
    • Commitlint for conventional commits
    • Cross-platform testing (Ubuntu, macOS, Windows)
    • Python 3.10-3.11 support
    • Codecov integration with detailed flags
    • Semantic release automation

Final Metrics:

  • Main package import: 5.48s → 0.33s (16.7× faster, -94%)
  • Line coverage: 56.13% → 63.75% (+7.62 points)
  • Branch coverage: 45.74% → 46.11% (+0.37 points)
  • Tests: 600+ (523 unit + 80+ integration)
  • Documentation: 455+ symbols across 65+ modules
  • Import cycles: 12 → 0
  • Production bugs fixed: 2

BREAKING CHANGE: Minimum Python version updated from 3.8 to 3.10 (188bfb7)

Documentation

  • docs: major documentation overhaul with Sphinx/ReadTheDocs setup
  • Add comprehensive Sphinx documentation structure (34+ new files)
  • Add custom CSS for consistent font sizes across all pages
  • Convert tutorials/index to Markdown and add all notebooks to sidebar
  • Add nbsphinx support for Jupyter notebook rendering (non-executing)
  • Add mermaid diagrams support with sphinxcontrib-mermaid
  • Add theoretical overview section aligned with paper Figure 1
  • Fix model module imports (Effector, Crawler, etc.) for web dashboards
  • Update pyproject.toml with documentation dependencies (nbsphinx, mermaid)
  • Add README_v0.md backup
  • Structure documentation into: concepts, agents_environments, api, data_pipeline, visualization, working_with_larvaworld, tutorials (e453018)
  • docs: update license to MIT and fix Python version constraints
  • Update license from GPL v3 to MIT for consistency with master branch
  • Update Python version constraint to 3.10-3.12 (>=3.10,<3.13)
  • Fix typos and improve formatting in README
  • Temporarily disable Windows tests in CI workflow (8f136f8)

Fix

  • fix: update poetry.lock to include sphinxcontrib-mermaid
  • Add missing sphinxcontrib-mermaid dependency to lock file
  • Resolves CI error: pyproject.toml changed significantly since poetry.lock was last generated (ac9eb33)

Style

  • style: apply pre-commit formatting fixes
  • Fix end-of-file newlines
  • Remove trailing whitespace
  • Apply prettier formatting to markdown files
  • Apply ruff-format to Python files (b2b9071)