Skip to content

Commit a2aafee

Browse files
committed
docs: update CHANGELOG with production-readiness improvements
1 parent 0ca62f3 commit a2aafee

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,13 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). This pr
88

99
### Added
1010

11+
- **`--version` flag**: Prints version from CMake `project(VERSION)` via generated `version.h`
12+
- **`validate` subcommand**: Standalone validator that re-imports output files and runs the full validator suite with per-asset pass/fail results and exit code
13+
- **Python docstrings**: All pybind11 bindings now have descriptive docstrings for classes, methods, and free functions
14+
- **`pyproject.toml`**: `pip install .` now works via scikit-build-core (requires CMake + Ninja)
15+
- **CI `pull_request` trigger**: PRs to `main` and `develop` now run the full CI matrix
16+
- **Release workflow**: `.github/workflows/release.yml` triggers on `v*` tags — builds, tests, packages, creates GitHub Release
17+
- **Coverage gap tests**: 17 additional tests for articulated export, edge cases, and stage logic in `test_coverage_gaps.cpp`
1118
- **meshoptimizer LOD adapter**: Always-on mesh decimation via `meshopt_simplify()` quadric-error simplification — zero external dependencies, replaces planned Open3D adapter
1219
- **Primitive fitting collision generator**: PCA-based box/sphere/capsule fitting with automatic tightest-volume selection — zero external dependencies
1320
- **CoACD collision adapter**: High-quality convex decomposition via the CoACD library, gated by `SIMFORGE_USE_COACD` (OFF by default)
@@ -46,8 +53,22 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). This pr
4653
- **Parallel processing tests**: 6 tests covering multi-threaded execution, sequential fallback, and thread config parsing
4754
- **Incremental processing tests**: 12 tests covering SHA-256 determinism, skip logic, force flag, and config change detection
4855

56+
### Fixed
57+
58+
- **`validate` subcommand**: No longer silently exits 0 — runs actual validation
59+
- **Config not found error**: Now suggests `simforge init` instead of printing a generic exception
60+
- **Organization name**: Standardized to `ArconicLabs` everywhere (was `AeronicLabs` in CHANGELOG, `aberrest` in CLI/config)
61+
- **`init` default collision method**: Changed from `coacd` (requires optional flag) to `convex_hull` (always available)
62+
- **Silent error handling**: 9 failure paths across pipeline, adapters, and CLI now log diagnostics instead of silently continuing
63+
- **`--whole-archive` linker flag**: Added Apple (`-force_load`) and MSVC (`/WHOLEARCHIVE`) branches for cross-platform Python binding builds
64+
- **`cmake_minimum_required` in CoACD block**: Replaced no-op conditional call with `FATAL_ERROR` version check
65+
- **Install rules**: Added `GNUInstallDirs` for portable install destinations and `materials.yaml` data file install
66+
- **PRIVATE linkage**: `spdlog`, `tinyxml2`, `meshoptimizer` no longer leak into consumer link lines
67+
4968
### Changed
5069

70+
- **DESIGN.md**: Marked material library and incremental processing open questions as resolved
71+
- **QUICKSTART.md**: Updated dry-run output to match actual `[OK]`/`[!!]` per-stage format
5172
- **CollisionStage**: Default generator now auto-routes based on collision method — `primitive` method uses "primitive" generator, `convex_decomposition` uses "coacd" generator
5273
- **OptimizeStage**: LOD generation now uses meshoptimizer instead of copying the original mesh when a generator is available
5374
- **CollisionStage / PhysicsStage**: Process per-link when asset is articulated, single-body path unchanged

0 commit comments

Comments
 (0)