|
| 1 | +# Contributing to DevOps-OS |
| 2 | + |
| 3 | +Thank you for your interest in contributing to **DevOps-OS**! 🚀 We welcome contributions of all kinds — new features, bug fixes, documentation improvements, and more. |
| 4 | + |
| 5 | +--- |
| 6 | + |
| 7 | +## 📋 Table of Contents |
| 8 | + |
| 9 | +- [Code of Conduct](#code-of-conduct) |
| 10 | +- [Getting Started](#getting-started) |
| 11 | +- [Development Workflow](#development-workflow) |
| 12 | +- [AI-Assisted Development](#ai-assisted-development) |
| 13 | +- [Submitting a Pull Request](#submitting-a-pull-request) |
| 14 | +- [PR Review Process](#pr-review-process) |
| 15 | + |
| 16 | +--- |
| 17 | + |
| 18 | +## Code of Conduct |
| 19 | + |
| 20 | +Please be respectful and constructive in all interactions. We are committed to providing a welcoming and inclusive environment for everyone. |
| 21 | + |
| 22 | +--- |
| 23 | + |
| 24 | +## Getting Started |
| 25 | + |
| 26 | +1. **Fork** the repository and clone your fork locally. |
| 27 | +2. Set up your development environment using the provided Dev Container (`.devcontainer/`) or install dependencies manually: |
| 28 | + ```bash |
| 29 | + pip install -r cli/requirements.txt -r mcp_server/requirements.txt |
| 30 | + ``` |
| 31 | +3. Run the test suite to make sure everything is working before you start: |
| 32 | + ```bash |
| 33 | + python -m pytest cli/test_cli.py mcp_server/test_server.py tests/test_comprehensive.py -v |
| 34 | + ``` |
| 35 | + |
| 36 | +--- |
| 37 | + |
| 38 | +## Development Workflow |
| 39 | + |
| 40 | +We follow a standard, issue-driven development process for all new features and bug fixes: |
| 41 | + |
| 42 | +### 1. Find or Create an Issue |
| 43 | + |
| 44 | +- Browse the [open issues](https://github.com/cloudengine-labs/devops_os/issues) to find something you would like to work on. |
| 45 | +- If no issue exists for your idea, **create a new issue** describing the feature or bug clearly. |
| 46 | +- If an issue already exists, **leave a comment** expressing your interest in working on it (e.g., *"I'd like to work on this — happy to take it if it's not already assigned."*). |
| 47 | + |
| 48 | +### 2. Get Assigned |
| 49 | + |
| 50 | +- A **maintainer will review your comment** and assign the issue to you, or leave a comment confirming you can self-assign. |
| 51 | +- Do **not** start significant work until the issue is assigned to avoid duplicate efforts. |
| 52 | + |
| 53 | +### 3. Work on the Issue |
| 54 | + |
| 55 | +- Create a feature branch from `main`: |
| 56 | + ```bash |
| 57 | + git checkout -b feature/your-feature-name |
| 58 | + ``` |
| 59 | +- Make your changes following the coding conventions in the project. |
| 60 | +- **Add progress updates** as comments on the issue while you work — this keeps the community informed and lets maintainers provide early feedback. |
| 61 | +- Write or update tests to cover your changes. |
| 62 | +- Ensure all existing tests continue to pass. |
| 63 | + |
| 64 | +### 4. Submit a Pull Request |
| 65 | + |
| 66 | +- Push your branch and open a PR against `main`. |
| 67 | +- Use the **[PR template](.github/PULL_REQUEST_TEMPLATE.md)** — fill in all required sections including a description of changes, linked issue, testing done, and checklist items. |
| 68 | +- Keep PRs focused: one feature or bug fix per PR. |
| 69 | + |
| 70 | +### 5. Resolve Review Comments |
| 71 | + |
| 72 | +- A maintainer will review your PR and may leave comments or request changes. |
| 73 | +- Address all review comments and push the fixes to the same branch. |
| 74 | +- Once all review comments are resolved and the CI checks pass, a maintainer will merge the PR. |
| 75 | + |
| 76 | +--- |
| 77 | + |
| 78 | +## AI-Assisted Development |
| 79 | + |
| 80 | +DevOps-OS **welcomes and encourages** the use of AI coding tools to accelerate development. Specifically: |
| 81 | + |
| 82 | +- You are free to use **AI coding assistants in agent mode** (e.g., GitHub Copilot Agent, Cursor, Cline, or similar tools) to help scaffold, write, and refactor code. |
| 83 | +- AI-assisted contributions are held to the **same quality and review standards** as all other contributions. You are responsible for reviewing, testing, and understanding any code generated by an AI before submitting it. |
| 84 | +- When using agent mode to add a new feature, ensure the agent follows the project's structure and conventions as described in this document and in the existing codebase. |
| 85 | +- Always run the test suite after AI-generated changes to verify correctness. |
| 86 | + |
| 87 | +--- |
| 88 | + |
| 89 | +## Submitting a Pull Request |
| 90 | + |
| 91 | +When opening a PR, please: |
| 92 | + |
| 93 | +1. **Link the related issue** using `Closes #<issue-number>` or `Fixes #<issue-number>` in the PR description. |
| 94 | +2. **Fill out the PR template** completely — incomplete PRs may be closed without review. |
| 95 | +3. **Ensure CI is passing** before requesting a review. |
| 96 | +4. **Keep the diff small and focused** — large, unfocused PRs are harder to review and more likely to be rejected or delayed. |
| 97 | + |
| 98 | +--- |
| 99 | + |
| 100 | +## PR Review Process |
| 101 | + |
| 102 | +- Every PR is reviewed by at least one maintainer before merging. |
| 103 | +- Maintainers aim to provide initial feedback within a few business days. |
| 104 | +- PRs that pass review and CI checks will be merged into `main` by a maintainer. |
| 105 | +- Do not merge your own PRs unless you are a maintainer explicitly approving your own work. |
| 106 | + |
| 107 | +--- |
| 108 | + |
| 109 | +Thank you for helping make DevOps-OS better! 🙏 |
0 commit comments