Aller au contenu

Contribution Guidelines

Thank you for your interest in contributing to Plus261! This guide explains how to contribute effectively and make your contributions successful.

This guide will help you understand:

  • ✅ The complete contribution process
  • ✅ How to find or create issues
  • ✅ How to create and submit merge requests
  • ✅ Code quality standards
  • ✅ Review process expectations

Before contributing, make sure you’re set up:

  1. Quick Start - Set up your development environment
  2. Code Structure - Understand the codebase
  3. Code Style - Follow coding conventions

Follow these steps to contribute effectively:

  • ✅ Check existing issues to see if your idea is already discussed
  • ✅ Create a new issue if needed
  • ✅ Discuss the approach before starting work
  • ✅ Wait for approval before starting on large features
Fenêtre de terminal
# Fork on GitLab, then:
git clone https://gitlab.com/<your-username>/plus261.git
cd plus261
bun install # installs Git hooks via lefthook (prepare script)
Fenêtre de terminal
git checkout -b feat/your-feature-name
# or
git checkout -b fix/your-bug-description

Branch prefixes mirror Conventional Commits types (feat/, fix/, docs/, …).

Follow these guidelines:

  • ✅ Follow Code Style
  • ✅ Write tests for new features
  • ✅ Update documentation
  • ✅ Keep commits focused and atomic
  • ✅ Use meaningful commit messages

Learn more: Development Workflow

Fenêtre de terminal
# Run tests
bun test
# Code quality (monorepo root)
bun --bun run check:code
# Svelte type-check (web, auth)
cd apps/web && bun --bun run check

Tests Required

All new features must include tests. Merge requests without tests will not be merged.

Commit messages must follow Conventional Commits. commitlint validates every commit via Lefthook (commit-msg hook).

Lefthook also runs format and lint:fix on the whole repository before each commit (pre-commit). Hooks install automatically on bun install.

Full reference: Code Style — Commit messages (types, feat! breaking changes, examples).

Fenêtre de terminal
git push origin feat/your-feature-name

Create a Merge Request on GitLab with:

  • ✅ Clear title — describe what the MR does (Conventional Commits style recommended)
  • ✅ Description — explain the changes and why
  • ✅ Related issue — link to related issues
  • ✅ Screenshots — if UI changes
  • ✅ Test results — show that tests pass
  • ✅ Checklist — mark completed items
  • ✅ Breaking changes — document with feat! / BREAKING CHANGE: if applicable

During code review:

  • ✅ Address review comments promptly
  • ✅ Be open to feedback
  • ✅ Keep discussions constructive
  • ✅ Make requested changes
  • ✅ Ask questions if unclear
Standard Description
Follow conventions See Code Style
Write clean code Readable and maintainable
Add comments For complex logic
Handle errors Proper error handling
Standard Description
Write tests See Testing Guide
Test edge cases Cover error scenarios
Maintain coverage Keep test coverage high
Standard Description
Update docs When adding features
Add examples Show how to use new features
Keep docs current Update when code changes

When reporting bugs, include:

  • ✅ Clear description
  • ✅ Steps to reproduce
  • ✅ Expected vs actual behavior
  • ✅ Environment details
  • ✅ Screenshots (if applicable)

When requesting features:

  • ✅ Describe the use case
  • ✅ Explain the benefit
  • ✅ Suggest implementation approach
  • ✅ Consider alternatives

Guidelines for code contributions:

  • ✅ Small changes - Easier to review
  • ✅ Focused MRs - One feature per merge request
  • ✅ Well tested - Include tests
  • ✅ Documented - Update docs

Documentation contributions are welcome:

  • ✅ Fix typos and errors
  • ✅ Improve clarity
  • ✅ Add missing information
  • ✅ Add examples

Reviewers evaluate contributions based on:

  1. Code Quality

    • Follows style guide
    • Clean and readable
    • Proper error handling
  2. Functionality

    • Works as intended
    • Handles edge cases
    • No breaking changes (unless documented with feat! + BREAKING CHANGE: — see Code Style)
  3. Tests

    • Adequate test coverage
    • Tests pass
    • Edge cases covered
  4. Documentation

    • Updated appropriately
    • Clear and helpful
    • Examples provided

To get your merge request merged:

  • ✅ Address all review comments
  • ✅ Keep MR up to date with main
  • ✅ Ensure all tests pass
  • ✅ Get required approvals
  • ✅ Resolve merge conflicts
  • ✅ Use inclusive language
  • ✅ Be constructive in feedback
  • ✅ Assume good intentions
  • ✅ Be patient with newcomers
  • ✅ Don’t hesitate to ask
  • ✅ Use GitLab issues and merge request comments
  • ✅ Check existing documentation
  • ✅ Reach out to maintainers

Contributors are recognized in:

  • ✅ Project README
  • ✅ Release notes
  • ✅ Contributor list
Task Documentation
Set up environment Quick Start
Understand codebase Code Structure
Follow conventions Code Style
Write tests Testing Guide
Development workflow Development Guide

Continue your contribution journey:

  1. 📚 Code Style - Coding conventions
  2. 🧪 Testing - Testing guidelines
  3. 🛠️ Development Workflow - Development process
  4. 📖 Documentation Guide - How to contribute to docs