diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..1c5c54d --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,80 @@ +```markdown +# Contributing to Migratron + +Thank you for considering contributing to Migratron! We welcome contributions from the community to help improve and enhance the project. Please take a moment to review this guide before you get started. + +## Setting Up the Development Environment + +1. **Clone the Repository**: + ```bash + git clone https://github.com/jampp/migratron.git + cd migratron + ``` + +2. **Create a Virtual Environment**: + We recommend using a virtual environment to manage dependencies. + ```bash + python3 -m venv venv + source venv/bin/activate # On Windows use `venv\Scripts\activate` + ``` + +3. **Install Dependencies**: + Install the necessary dependencies for development and testing. + ```bash + pip install -r requirements.txt + pip install -r requirements-dev.txt + ``` + +4. **Set Up Docker (Optional)**: + If you prefer using Docker, you can build the Docker image: + ```bash + docker build -t migratron . + ``` + +## Running Tests + +Tests are located in the `tests` directory. To run the tests, use the following command: +```bash +make test +``` +This will execute the test suite and provide coverage reports. + +## Code Style Guidelines + +We follow the PEP 8 style guide for Python code. Please ensure your code adheres to these guidelines. You can use tools like `flake8` to check your code: +```bash +flake8 migratron +``` + +Additionally, ensure your code is well-documented and includes docstrings where applicable. + +## Submitting Pull Requests + +1. **Fork the Repository**: + Create a personal fork of the repository on GitHub. + +2. **Create a Feature Branch**: + ```bash + git checkout -b feature/your-feature-name + ``` + +3. **Commit Your Changes**: + Make sure your commit messages are descriptive and follow the conventional commit format. + +4. **Push to Your Fork**: + ```bash + git push origin feature/your-feature-name + ``` + +5. **Submit a Pull Request**: + Go to the original repository on GitHub and submit a pull request from your fork. + +6. **Review Process**: + Your pull request will be reviewed by project maintainers. Please be responsive to feedback and make necessary changes. + +## Code of Conduct + +This project adheres to a [Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to the project maintainers. + +Thank you for your contributions and support! +```