net-pulse/CONTRIBUTING.md
2025-08-07 09:55:01 -05:00

4.5 KiB
Executable file
Raw Permalink Blame History

Contributing to NetPulse

Thank you for your interest in contributing to NetPulse! We welcome contributions of all kinds—whether youre 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. 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:
    git clone https://gitlab.com/your-username/net-pulse.git
    cd NetPulse
    
  3. Create and activate a Python 3.8+ virtual environment:
    python3 -m venv .venv
    source .venv/bin/activate   # Linux/macOS
    .\.venv\Scripts\activate    # Windows
    
  4. Install development dependencies (once requirements-dev.txt is added):
    pip install -r requirements-dev.txt
    
  5. (Optional) Set up pre-commit hooks for linting/formatting:
    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 its 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 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 youve 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! 🚀