# Contributing to NetPulse Thank you for your interest in contributing to **NetPulse**! We welcome contributions of all kinds—whether you’re improving documentation, fixing bugs, proposing new features, or helping with testing. --- ## Table of Contents 1. Why Contribute? 2. Code of Conduct 3. Getting Started 4. Reporting Issues 5. Feature Requests 6. Development Workflow 7. Coding Guidelines 8. Commit Message Format 9. Pull Request Process 10. Contact & Support --- ## 1. Why Contribute? NetPulse is an open-source, community-driven project. Your contributions will help: - Accelerate development of new features - Improve stability and performance - Write and refine documentation - Grow and support a welcoming community --- ## 2. Code of Conduct By participating in this project, you agree to abide by the [Code of Conduct](CODE_OF_CONDUCT.md). Please read it to ensure a safe and respectful community. --- ## 3. Getting Started 1. Fork the repository on GitLab: `https://gitlab.com/open-pulse-security/net-pulse` 2. Clone your fork locally: ```bash git clone https://gitlab.com/your-username/net-pulse.git cd NetPulse ``` 3. Create and activate a Python 3.8+ virtual environment: ```bash python3 -m venv .venv source .venv/bin/activate # Linux/macOS .\.venv\Scripts\activate # Windows ``` 4. Install development dependencies (once `requirements-dev.txt` is added): ```bash pip install -r requirements-dev.txt ``` 5. (Optional) Set up pre-commit hooks for linting/formatting: ```bash pip install pre-commit pre-commit install ``` --- ## 4. Reporting Issues If you find a bug or run into any problems: 1. Search existing issues to see if it’s already been reported. 2. If not, open a new issue and include: - A clear, descriptive title - Steps to reproduce the problem - Expected vs. actual behavior - Screenshots or logs, if applicable --- ## 5. Feature Requests We welcome ideas for new features! To request a feature: 1. Check the list of open issues/features to avoid duplicates. 2. Create a new issue with: - A descriptive title - A summary of the proposed feature - Any relevant use cases or sketches --- ## 6. Development Workflow We follow a **GitLab flow**: 1. **Branching** - Create a branch per issue or feature: `git checkout -b feat/` `git checkout -b fix/` 2. **Work** - Make your changes - Run tests and linters locally 3. **Commit** - Write clear, concise commit messages (see below) 4. **Push** - Push your branch to your fork: `git push origin feat/` 5. **Pull Request** - Open a PR against `main` in the upstream repo - Fill out the PR template with details --- ## 7. Coding Guidelines - Follow [PEP 8](https://www.python.org/dev/peps/pep-0008/) for Python style. - Use meaningful variable and function names. - Keep functions short and focused (max ~50 lines). - Document public functions and classes with docstrings. - For UI code (Tkinter), separate logic from presentation where possible. - Write tests for new features/bug fixes. --- ## 8. Commit Message Format Use a simple, consistent format: ``` ():