Welcome! We appreciate your interest in contributing to Open Habit. This guide will help you get started.
- Fork the repository
- Create a branch from
mainfor your changesgit checkout -b feature/your-feature-name
- Make your changes following the guidelines below
- Push your branch and open a Pull Request
See the README for installation and setup instructions.
- Use strict mode - ensure all TypeScript code passes strict type checking
- Avoid
anytypes; use proper type definitions
- Use existing theme constants from
constants/theme.ts:Spacing- for margins, padding, gapsFontSizes- for text sizingBorderRadius- for rounded cornersColors- for color values
- Use
ThemedTextandThemedViewcomponents for automatic theme support
- Files:
kebab-case.tsx(e.g.,habit-card.tsx) - Components:
PascalCase(e.g.,HabitCard) - Functions/Variables:
camelCase - Constants:
UPPER_SNAKE_CASEorPascalCasefor objects
Use Conventional Commits:
<type>: <description>
[optional body]
Types:
feat:- New featurefix:- Bug fixdocs:- Documentation changesrefactor:- Code refactoring (no functional change)chore:- Maintenance tasks (dependencies, config, etc.)
Examples:
feat: add habit streak tracking
fix: resolve date picker timezone issue
docs: update API documentation
refactor: simplify habit completion logic
chore: update expo dependencies
- Keep PRs focused on a single change
- Include a clear description of what and why
- Reference any related issues (e.g., "Closes #123")
- Ensure all tests pass
- Update documentation if needed
- Request review from maintainers
When reporting issues, please include:
- Description - Clear summary of the issue
- Steps to Reproduce - How to trigger the bug
- Expected Behavior - What should happen
- Actual Behavior - What actually happens
- Environment - Device, OS version, app version
- Screenshots - If applicable
Use issue templates when available.
Thank you for contributing!