174 lines
		
	
	
		
			No EOL
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Markdown
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			174 lines
		
	
	
		
			No EOL
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Markdown
		
	
	
		
			Executable file
		
	
	
	
	
| # 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/<short-description>`  
 | ||
|      `git checkout -b fix/<short-description>`  
 | ||
| 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/<short-description>`  
 | ||
| 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:
 | ||
| 
 | ||
| ```
 | ||
| <type>(<scope>): <short description>
 | ||
| 
 | ||
| <body>
 | ||
| 
 | ||
| <footer>
 | ||
| ```
 | ||
| 
 | ||
| - **type**: feat, fix, docs, refactor, test, chore  
 | ||
| - **scope**: optional area of the code (e.g., `gui`, `core`, `storage`)  
 | ||
| - **short description**: ≤50 characters  
 | ||
| - **body**: more detailed explanation (wrap at 72 characters)  
 | ||
| - **footer**: issue references, breaking changes, etc.
 | ||
| 
 | ||
| Example:
 | ||
| 
 | ||
| ```
 | ||
| feat(core): add JSON-based persistence layer
 | ||
| 
 | ||
| This adds save_data() and load_data() functions to handle
 | ||
| equipment data in JSON format.
 | ||
| 
 | ||
| Closes #12
 | ||
| ```
 | ||
| 
 | ||
| ---
 | ||
| 
 | ||
| ## 9. Pull Request Process
 | ||
| 
 | ||
| 1. Ensure your branch is up to date with `main`.  
 | ||
| 2. Run all tests and make sure they pass.  
 | ||
| 3. Link related issues in the PR description.  
 | ||
| 4. Describe what you’ve done and why.  
 | ||
| 5. Request reviews from maintainers.  
 | ||
| 6. Address review comments and update your PR.  
 | ||
| 
 | ||
| ---
 | ||
| 
 | ||
| ## 10. Contact & Support
 | ||
| 
 | ||
| - For general discussion and questions, use GitLab Discussions.  
 | ||
| - For urgent issues, open an issue and tag a maintainer.  
 | ||
| - You can also reach the maintainers via email: code@openpulsesec.org  
 | ||
| 
 | ||
| ---
 | ||
| 
 | ||
| Thank you for helping make NetPulse better! 🚀   | 
