Thank you for your interest in contributing to Simulator - Automatic Warehouse. Contributions of any kind are welcome: bug reports, feature proposals, documentation improvements, and code.
This document outlines the guidelines to help maintain a clean, consistent, and collaborative workflow.
- Code of Conduct
- How Can I Contribute?
- Development Workflow
- Coding Guidelines
- Commit Messages
- Pull Requests
- Questions & Support
- Final Notes
This project follows a simple rule: Be respectful, constructive, and professional.
Harassment, discrimination, or aggressive behavior will not be tolerated.
If you find a bug, please open an Issue and include:
- A clear and descriptive title
- Steps to reproduce the issue
- Expected behavior vs. actual behavior
- Screenshots or logs (if applicable)
- Environment details (OS, compiler, versions)
If you are unsure whether something is a bug, open an issue anyway; discussion is welcome.
Feature requests and design improvements are welcome.
When opening an enhancement issue, please describe:
- The problem you are trying to solve
- Your proposed solution
- Possible alternatives (if any)
- Impact on existing behavior (if known)
You can contribute code by fixing bugs, implementing features, improving performance, or enhancing documentation.
Before starting large changes:
- Check existing issues and pull requests
- Open a discussion issue if unsure about the design
-
Fork the repository
-
Create a new branch from
main:git checkout -b feature/my-feature-1
Or for bug fixes:
git checkout -b fix/bug-description-2
Or for documentation:
git checkout -b docs/improve-topic-3
Or for refactoring:
git checkout -b refactor/component-name-4
Usually, use
feature/,fix/,docs/, orrefactor/prefixes to indicate the type of change, a short description, and the number of the related issue if applicable (e.g.,feature/add-pathfinding-42). -
Make your changes.
-
Ensure the project builds and runs correctly (run tests if applicable)
-
Commit your changes. See Commit Messages for guidelines.
-
Push to your fork and open a Pull Request
- Follow the existing project structure and style
- Prefer clear, readable code over clever tricks
- Use meaningful variable and function names
- Avoid unnecessary dependencies
- Keep functions focused and modular
- Document non-trivial logic where useful
Consistency matters more than personal preference.
Use clear and descriptive commit messages.
Recommended format:
<type>: short description
(optional) longer explanation
Examples:
fix: prevent collision detection overflow
feat: add priority-based routing strategy
docs: clarify configuration parameters
Try to keep commits focused and atomic, possibly following the conventional commit style.
When opening a Pull Request:
- Clearly describe what the PR does and why
- Reference related issues (e.g.
Fixes #12) - Keep PRs focused on a single change when possible
- Ensure the code builds without errors
- Be open to feedback and revisions
Pull requests may be refined before being merged — this is normal and encouraged.
If you have questions about the project, architecture, or contribution process:
- Open a discussion issue
- Ask directly in your Pull Request
Curiosity and learning are always welcome.
This is both a learning and research-oriented project. Clean contributions, thoughtful discussions, and incremental improvements are valued more than speed.
Thanks again for contributing!