Contributing Guide
Guidelines for contributing to the BISO Sites project including code style, PR process, and conventions.
Contributing Guide
Thank you for your interest in contributing to BISO Sites! This guide will help you get started.
Code of Conduct
- Be respectful and inclusive
- Follow project conventions
- Write clear commit messages
- Test your changes
Development Setup
# Clone repository
git clone https://github.com/your-org/biso-sites.git
cd biso-sites
# Install dependencies
bun install
# Run development server
bun run devBranch Strategy
main- Production-ready codedevelop- Development branch- Feature branches:
feature/feature-name - Bug fixes:
fix/bug-description
Commit Messages
Use Conventional Commits format:
feat(web): add membership registration form
fix(admin): resolve user table pagination issue
docs(readme): update installation instructions
chore(deps): update dependenciesTypes:
feat- New featurefix- Bug fixdocs- Documentationstyle- Code style (formatting)refactor- Code refactoringtest- Adding testschore- Maintenance tasks
Pull Request Process
- Create a branch from
develop - Make your changes
- Run checks:
bun run format bun run lint bun run check-types bun run build - Commit changes with conventional commits
- Push branch and create PR
- Fill PR template:
- Description of changes
- Related issues
- Screenshots (for UI changes)
- Wait for review
- Address feedback
- Merge after approval
Code Style
TypeScript
// Use explicit types
export function getUser(id: string): Promise<User> {
// ...
}
// Prefer interfaces over types
interface UserProps {
name: string;
email: string;
}
// Use const assertions
const ROLES = ['admin', 'editor', 'viewer'] as const;React
// Use function components
export function Component({ prop }: Props) {
return <div>{prop}</div>;
}
// Client components: use "use client" directive
'use client';
// Server actions: use "use server" directive
'use server';Naming Conventions
- Components: PascalCase (
UserProfile.tsx) - Files: kebab-case (
user-profile.ts) - Functions: camelCase (
getUserById) - Constants: UPPER_SNAKE_CASE (
API_ENDPOINT)
Testing
Before submitting:
# Type check
bun run check-types
# Lint
bun run lint
# Build
bun run build --filter=webDocumentation
Update documentation when:
- Adding new features
- Changing APIs
- Modifying configuration
- Updating dependencies
Related Documentation
✅
Getting Help
If you need help, reach out in:
- GitHub Issues
- Team chat
- Documentation discussions
