This document outlines the guidelines for creating issues and pull requests (PRs) in DefiFundr repositories. These guidelines help maintain consistency, clarity, and efficiency in our development workflow.
- Issue Guidelines
- Pull Request Guidelines
- Commit Message Guidelines
- Code Review Guidelines
- Release Process
DefiFundr uses the following issue types:
- Bug Report (
bug) - Issues reporting defects or unexpected behavior in existing functionality - Feature Request (
feature) - New features or enhancements to existing functionality - Security Issue (
security) - Security vulnerabilities or concerns - Documentation (
docs) - Documentation improvements or corrections - Technical Debt (
tech-debt) - Code refactoring, test improvements, performance optimizations - Design (
design) - UI/UX design-related issues
When creating an issue:
- Use Templates - Select the appropriate issue template
- Clear Title - Use a concise, descriptive title following the format:
[TYPE]: Brief description - Complete Information - Fill out all required fields in the template
- Reproducibility - For bugs, provide clear reproduction steps
- Acceptance Criteria - Define what "done" looks like for this issue
- Labels - Add appropriate labels that categorize the issue
- Priority - Indicate priority (P0-Critical, P1-High, P2-Medium, P3-Low)
- Assignees - Leave unassigned unless you're working on it immediately
[BUG]: Wallet connection fails on Safari mobile browsers
[FEATURE]: Add multi-signature wallet support for DAO funding proposals
Issues follow this general workflow:
- Triage (
needs-triage) - Initial assessment - Backlog - Prioritized but not actively worked on
- Ready for Development (
ready-for-dev) - Well-defined and ready to be worked on - In Progress (
in-progress) - Being actively worked on - Review (
in-review) - Associated PR under review - Done - Issue resolved and closed
Branch names should follow this convention:
<type>/<issue-number>-<brief-description>
Where <type> is one of:
feat- New featurefix- Bug fixdocs- Documentation changesstyle- Formatting, missing semicolons, etc; no code changerefactor- Code refactoringtest- Adding or refactoring tests; no production code changechore- Updating build tasks, package manager configs, etc; no production code changeperf- Performance improvements
feat/123-add-multi-sig-support
fix/456-safari-wallet-connection
docs/789-update-api-documentation
When creating a pull request:
- Reference Issues - Link related issues with keywords (
Fixes #123,Resolves #456) - Clear Title - Use a concise, descriptive title matching commit message format
- Complete Description - Follow the PR template and provide comprehensive information
- Size Limit - Keep PRs focused and limited to ~300-500 lines of code when possible
- Tests - Include appropriate tests for new functionality
- Documentation - Update relevant documentation
- CI Checks - Ensure all CI checks pass before requesting review
- Reviewers - Minimum of 2 approvals required
- Code Owner Review - Required for core components (designated by CODEOWNERS file)
- CI Verification - All automated checks must pass
- Merge Strategy - We use "Squash and merge" for most PRs
- Branch Cleanup - Delete branches after merging
DefiFundr follows the Conventional Commits specification for commit messages:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Where <type> follows the same conventions as branch types.
feat(wallet): add support for multi-signature wallets
This implementation adds support for multi-signature wallets in the funding
proposal flow, allowing DAOs to require multiple signers for transactions.
Resolves #123
fix(ui): correct wallet connection issue on Safari mobile
Resolves #456
- Self-Review - Review your own code before submitting
- Description - Explain your implementation approach
- Test Cases - Detail what was tested and how
- Concerns - Highlight areas where you'd like specific feedback
- Timeliness - Review PRs within 1 business day when possible
- Constructive Feedback - Be specific, constructive, and kind
- Beyond Style - Focus on logic, security, and architecture
- Review Scope - Review the entire PR, not just changed lines
- Approval Standards - Only approve if you're confident in the changes
- Versioning - We follow Semantic Versioning
- Release Candidates - Tagged with
-rcsuffix for testing - Release Notes - Generated from conventional commits
- Hotfixes - Created from the main branch and merged back
These guidelines are not set in stone. If you have suggestions for improving our workflow, please create an issue with the process label.
For security issues, please follow our Security Policy and report vulnerabilities privately rather than as public issues.