|
| 1 | +# Contributing to RustForge Terminal |
| 2 | + |
| 3 | +First off, thank you for considering contributing to RustForge! It's people like you that make RustForge such a great tool. |
| 4 | + |
| 5 | +## General Guidelines |
| 6 | + |
| 7 | +- **No Emojis:** Please refrain from using emojis in commit messages, documentation, or code comments. We maintain a strictly professional aesthetic. |
| 8 | +- **Commit Messages:** Write clear, concise, and descriptive commit messages. Use the imperative mood (e.g., "Add feature" instead of "Added feature"). |
| 9 | +- **Branching:** Create a new branch for each feature or bug fix. Do not commit directly to the `main` branch. |
| 10 | +- **Code Style:** Follow standard Rust formatting guidelines. Run `cargo fmt` before submitting your code. |
| 11 | + |
| 12 | +## Getting Started |
| 13 | + |
| 14 | +1. **Fork** the repository on GitHub. |
| 15 | +2. **Clone** your fork locally: |
| 16 | + ```sh |
| 17 | + git clone https://github.com/YOUR_USERNAME/rust-finance.git |
| 18 | + cd rust-finance |
| 19 | + ``` |
| 20 | +3. **Create a branch** for your specific changes: |
| 21 | + ```sh |
| 22 | + git checkout -b feature/your-feature-name |
| 23 | + ``` |
| 24 | + |
| 25 | +## Development Workflow |
| 26 | + |
| 27 | +### Building |
| 28 | + |
| 29 | +Make sure you have Rust installed. Build the entire workspace: |
| 30 | + |
| 31 | +```sh |
| 32 | +cargo build --workspace |
| 33 | +``` |
| 34 | + |
| 35 | +### Testing |
| 36 | + |
| 37 | +Before submitting a pull request, ensure all tests pass: |
| 38 | + |
| 39 | +```sh |
| 40 | +cargo test --workspace |
| 41 | +``` |
| 42 | + |
| 43 | +## Pull Request Process |
| 44 | + |
| 45 | +1. Push your changes to your fork on GitHub. |
| 46 | +2. Submit a pull request to the `main` branch of the original repository. |
| 47 | +3. Ensure your PR description clearly states the problem addressed and the solution implemented. |
| 48 | +4. Link any relevant issues in the PR description (e.g., "Fixes #123"). |
| 49 | +5. Wait for review. Address any feedback provided by the maintainers. |
| 50 | + |
| 51 | +## Setting Up Environment Variables |
| 52 | + |
| 53 | +If you are working on components that require external APIs (like `daemon` or `ingestion`), make sure you have the necessary environment variables set up locally. We recommend creating a `.env` file (which is gitignored) for your local keys: |
| 54 | + |
| 55 | +```sh |
| 56 | +ANTHROPIC_API_KEY="your_key" |
| 57 | +FINNHUB_API_KEY="your_key" |
| 58 | +ALPACA_API_KEY="your_key" |
| 59 | +ALPACA_SECRET_KEY="your_key" |
| 60 | +``` |
| 61 | + |
| 62 | +## Architecture Notes |
| 63 | + |
| 64 | +Please review the architecture diagram in the `README.md` before making significant structural changes to ensure your modifications align with the overall system design. |
| 65 | + |
| 66 | +Thank you for contributing! |
0 commit comments