Raisin master files and folders =================================== A Raisin-managed project relies on a specific directory structure and a few key configuration files. Directory Layout --------------------- A typical project root will look like this: .. code-block:: text my_raisin_project/ ├── commands/ # Modular command implementations │ ├── __init__.py │ ├── build.py # Build command │ ├── constants.py # Constants │ ├── git_commands.py # Git integration commands │ ├── globals.py # Global state management │ ├── help.py # Help command │ ├── index.py # Index commands │ ├── install.py # Install command │ ├── publish.py # Publish/release command │ ├── setup.py # Setup command │ └── utils.py # Shared utilities ├── generated/ # Auto-generated C++ headers from .msg/.srv/.action ├── install/ # Output directory for local development builds ├── messages/ # (Optional) Global .msg/.srv/.action files ├── precompiled/ # (Optional) Pre-compiled third-party libraries ├── release/ # Contains release builds, archives, and installed packages │ ├── build/ # Build artifacts for each target │ └── install/ # Directory for installed packages ├── src/ # Source code for all your C++ subprojects │ ├── repo_a/ # This repo is a collection of raisin packages │ │ ├── raisin_package_a/ # this folder is a raisin package │ │ ├── raisin_package_b/ │ │ ├── raisin_package_c/ │ │ └── ... │ └── raisin_package_d/ # this repo is a single raisin package ├── templates/ # C++ header templates for code generation and some code templates for raisin packages ├── CMakeLists.txt # Top-level CMake file, auto-generated by Raisin ├── raisin.py # Main entry point - registers commands ├── raisin.sh # Bash wrapper script for easier usage ├── configuration_setting.yaml # Main configuration (tokens, user_type, packages to ignore) ├── repositories.yaml # Maps package names to Git repository URLs ├── requirements.txt # Python dependencies ├── secrets.yaml # (Deprecated) Use configuration_setting.yaml instead └── RAISIN_IGNORE # (Deprecated) Use packages_to_ignore in configuration_setting.yaml The details of the raisin package structure can be found in the raisin package chapter. Configuration Files ------------------- See :doc:`configuration` for detailed information on configuration files, including ``configuration_setting.yaml`` and ``repositories.yaml``.