Files
Windows-11-Clipboard-Histor…/.github/CONTRIBUTING.md
2025-12-11 01:58:08 -03:00

4.5 KiB

Contributing to Win11 Clipboard History

First off, thank you for considering contributing to Win11 Clipboard History! 🎉

📋 Table of Contents

Code of Conduct

This project and everyone participating in it is governed by our commitment to creating a welcoming and inclusive environment. Please be respectful and constructive in all interactions.

Getting Started

  1. Fork the repository on GitHub
  2. Clone your fork locally:
    git clone https://github.com/YOUR-USERNAME/win11-clipboard-history-for-linux.git
    cd win11-clipboard-history-for-linux
    
  3. Add the upstream remote:
    git remote add upstream https://github.com/gustavosett/Windows-11-Clipboard-History-For-Linux.git
    

Development Setup

Prerequisites

Make sure you have the required dependencies installed:

# Install system dependencies (auto-detects your distro)
make deps

# Install Rust and Node.js if needed
make rust
make node
source ~/.cargo/env

# Verify everything is installed
make check-deps

Running in Development Mode

# Install npm dependencies
npm install

# Start development server with hot reload
make dev

Making Changes

  1. Create a new branch from master:

    git checkout -b feature/your-feature-name
    # or
    git checkout -b fix/your-bug-fix
    
  2. Make your changes and test them locally

  3. Run linters and formatters:

    make lint
    make format
    
  4. Commit your changes with a descriptive message:

    git commit -m "feat: add amazing new feature"
    # or
    git commit -m "fix: resolve clipboard paste issue on Wayland"
    

Commit Message Convention

We follow Conventional Commits:

  • feat: - New feature
  • fix: - Bug fix
  • docs: - Documentation changes
  • style: - Code style changes (formatting, etc.)
  • refactor: - Code refactoring
  • perf: - Performance improvements
  • test: - Adding or updating tests
  • chore: - Maintenance tasks

Pull Request Process

  1. Update your branch with the latest upstream changes:

    git fetch upstream
    git rebase upstream/master
    
  2. Push your branch to your fork:

    git push origin feature/your-feature-name
    
  3. Create a Pull Request on GitHub

  4. Fill out the PR template completely

  5. Wait for review - maintainers will review your PR and may request changes

PR Requirements

  • Code follows the project's style guidelines
  • All linters pass (make lint)
  • Changes are tested locally
  • Documentation is updated if needed
  • PR description clearly explains the changes

Style Guidelines

TypeScript/React

  • Use functional components with hooks
  • Follow existing component patterns
  • Use TypeScript types (avoid any)
  • Use meaningful variable and function names

Rust

  • Follow Rust idioms and best practices
  • Use cargo fmt for formatting
  • Address all clippy warnings
  • Document public functions and modules

CSS/Tailwind

  • Use Tailwind utility classes
  • Follow the Windows 11 design system defined in tailwind.config.js
  • Support both light and dark modes

Reporting Bugs

Before reporting a bug:

  1. Search existing issues to avoid duplicates
  2. Try the latest version - the bug might be fixed
  3. Collect information:
    • OS and version
    • Desktop environment
    • Display server (X11/Wayland)
    • Steps to reproduce
    • Error messages/logs

Then create a bug report.

Suggesting Features

We welcome feature suggestions! Before suggesting:

  1. Check if it aligns with the project's goal (Windows 11-style clipboard manager)
  2. Search existing issues to avoid duplicates
  3. Consider implementation - how complex would it be?

Then create a feature request.

Questions?

Feel free to open a discussion for questions or ideas.


Thank you for contributing! 🙏