refactor: harden LinkForge architecture and centralize Core API for v1.4.0#246
Merged
Conversation
Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
…ors, and models Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
…idation checks Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
…lity.py Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
- Standardized all core modules with Lean Google Style documentation. - Hardened SensorTranslator with explicit casting and 3D LIDAR support. - Synchronized Blender SensorPropertyGroup with core LIDAR requirements. - Formalized 'Physics as Truth' design principle in contributing guide. - Added PHYSICS_AS_TRUTH.md developer documentation. - Resolved LIDAR validation regression in blender integration tests. Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
…uristics Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
- Centralized all magic literals in core and blender platforms. - Reorganized constants for improved logical flow and maintainability. - Resolved import instabilities in URDF/SRDF parsers. - Rephrased legacy comments into professional compatibility notices. - Fixed numerical precision regressions in joint tests. - Verified with full test suite, linting, and type checking. Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
…lized constants Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
…ed Core API Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
…der imports - Fully expanded linkforge_core/__init__.py to expose all models, physics, and utilities. - Refactored entire platforms/blender package to eliminate deep sub-module imports. - Standardized on top-level API usage across adapters, properties, and operators. - Verified zero remaining deep imports via repository-wide audit. Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
- Added KinematicGraph and specialized exceptions (Xacro, Security). - Exposed core XML parsing/serialization utilities. - Included SRDF semantic models and resource resolvers. - Unified public API manifest for all platform adapters. Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
- Implemented explicit re-exports (import-as) for all public members. - Organized __all__ into logical categories for better scannability. - Ensured 100% compliance with Mypy's strict re-export policy. - Verified final architectural integrity with full check suite. Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
- Fix case-sensitivity regression in TransmissionTranslator by normalizing mapping - Consolidate linkforge_core API gateway and explicitly export validation models - Defer pytest imports in Blender test runner for environment compatibility - Update integration tests to match normalized transmission types Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
- Migrate to standard 'src' layout for linkforge.core and linkforge.blender - Establish proper linkforge namespace package structure - Overhaul core/__init__.py with clean exports and domain grouping - Implement functional I/O API in io.py with 100% test coverage - Update build and development scripts to handle new namespace paths - Synchronize ARCHITECTURE and CONTRIBUTING documentation - Harden type safety with Final and annotations across core/blender - Verified with full test suite and quality checks (Ruff/MyPy/Pyright) Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
- Migrate core Enums to StrEnum (Python 3.11+ compliance) - Implement Mirtich inertia integration unit tests - Resolve Mypy 2.1.0 strictness in Blender handlers - Upgrade development toolchain (Ruff, Mypy, Pre-commit) - Fix broken documentation links in README Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
…nsion compatibility Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
…ecture - Fixed case-sensitivity bug in collision generation operator (GEOM_AUTO vs "AUTO"). - Refactored import architecture to use absolute imports for core library compatibility. - Added sys.modules mapping in __init__.py for Blender extension portability. - Fixed UI property access errors in forge and export panels. Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
…for extensions - Explicitly alias the 'linkforge' and 'linkforge.blender' packages in sys.modules when running as a Blender extension. - This resolves the 'ModuleNotFoundError: No module named linkforge' occurring in bundled builds due to absolute imports in sub-packages. Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
…th extension policies - Converted absolute 'linkforge.core' imports to relative '..core' imports. - Added a development symlink from 'blender/src/linkforge/blender/core' to the real core. - Removed sys.modules hacks that triggered Blender extension policy violations. - Updated build script to skip the development symlink during staging. Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
…r extensions - Reverted source code to clean absolute imports to satisfy Mypy/Pyright. - Added 'transform_to_relative_imports' to 'build.py' to automatically handle extension namespace requirements during the build process. - Removed runtime 'sys.modules' hacks from 'linkforge.blender', resolving Blender Extension policy violations. Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
- Fixed an indentation error where the Blender build logic was accidentally nested inside the import transformation helper. - Restored the explicit return of the distribution directory path. Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
- Fixed a bug where some absolute imports were not being correctly captured. - Added debug logging to track transformed files during the build process. - Verified that all 28 critical files are now correctly transformed to relative imports in the final extension package. Signed-off-by: arounamounchili <patouossa.mounchili@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request
Important
This project uses Conventional Commits and Release Please for automated versioning.
Please ensure your PR title follows the Conventional Commits format (e.g.,
feat: add lidar sensor,fix: core logic bug).📝 Description
This PR evolved into a comprehensive architectural hardening to stabilize the v1.4.0 release
🛠️ Type of change
✅ Checklist
uv run pytestand all tests passuv run pre-commit run --all-filesand all hooks pass