Skip to content

Latest commit

 

History

History
80 lines (58 loc) · 3.24 KB

File metadata and controls

80 lines (58 loc) · 3.24 KB

Contributing to DevProfile

Thank you for your interest in contributing to Peramanathan Sathyamoorthy's portfolio project! This document provides guidelines for contributing to this project.

🤝 How to Contribute

  1. Fork the repository
  2. Create a feature branch from dev branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

🌳 Branching Workflow

We follow a structured Git branching strategy to maintain code quality and enable smooth development workflows:

Branch Types

  • main: Production-ready code, deployed to production
  • dev: Integration branch, synced with main after every release or hotfix
  • canary: Experimental branch for early production testing with limited users
  • feature/*: Short-lived branches for developing new features (created from dev)
  • release/*: Prepares a specific version for production (branched from dev)
  • hotfix/*: Urgent fixes for production issues (branched from main, synced to dev)

Branching Guidelines

  • Always create feature/*, release/*, and canary branches from the latest dev
  • Use descriptive branch names (e.g., feature/ai-chat-enhancement, hotfix/pdf-generation-bug)
  • Keep branches short-lived and focused on single features or fixes
  • Delete branches after successful merge

Sync Process

After main updates, sync your branches:

git checkout main
git pull --rebase
git checkout dev
git rebase main
git push origin dev

📋 Development Guidelines

Code Quality

  • Follow TypeScript strict mode practices
  • Use kebab-case for component and file naming
  • Ensure proper error boundaries and error handling
  • Write clear, descriptive commit messages
  • Add appropriate TypeScript types and interfaces

React (client components)

  • Interactive UI: client components and hooks per .agents/skills/react-client-expert/SKILL.md (minimal state, deliberate effects, no RSC for UI logic).
  • Do not “fix” useEffect deps to satisfy the linter — useExhaustiveDependencies is disabled in Biome; fix the data flow instead.
  • Lint: pnpm lint / lint:fix use Biome linter only (code quality, correctness, best practices). Pure formatting lives in pnpm format. See AGENTS.md and biome.json.

Testing

  • Write E2E tests for new features using Playwright
  • Ensure all tests pass before submitting PR (pnpm test:e2e uses Brave Beta — see tests/e2e/README.md)
  • Desktop + mobile viewport projects run against Brave Beta; do not rely on playwright install chromium

🔧 Development Setup

  1. Clone and setup (see README.md)
  2. Create feature branch from dev
  3. Make changes following the guidelines above
  4. Test thoroughly - build, lint, and run tests
  5. Submit PR with clear description of changes

📞 Support

For questions or issues:

📄 License

This project is private and proprietary.