========================= For Development ========================= πŸ”§Prepare for development ========================= - Set up the development environment. ```bash make dev ``` - Run linting and formatting. ```bash make lint ``` Code Structure ========================= .. code-block:: text πŸ“‚ src βž₯ πŸ“‚ : avoid namespace conflict βž₯ πŸ“ core βž₯ πŸ“ components/A βž₯ πŸ“ components/B βž₯ πŸ“ components/C βž₯ πŸ“ scenarios/X βž₯ πŸ“ scenarios/Y βž₯ πŸ“‚ app βž₯ πŸ“ scripts .. list-table:: :header-rows: 1 * - Folder Name - Description * - πŸ“ core - The core framework of the system. All classes should be abstract and usually can't be used directly. * - πŸ“ component/A - Useful components that can be used by others (e.g., scenarios). Many subclasses of core classes are located here. * - πŸ“ scenarios/X - Concrete features for specific scenarios (usually built based on components or core). These modules are often unreusable across scenarios. * - πŸ“ app - Applications for specific scenarios (usually built based on components or scenarios). Removing any of them does not affect the system's completeness or other scenarios. * - πŸ“ scripts - Quick and dirty things. These are candidates for core, components, scenarios, and apps. Conventions =========== File Naming Convention ---------------------- .. list-table:: :header-rows: 1 * - Name - Description * - `conf.py` - The configuration for the module, app, and project.