v2.0.0
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)