Thank you for your interest in contributing to Liebe! This guide will help you get started.
-
Clone the repository:
git clone https://github.com/fx/liebe.git cd liebe -
Install dependencies:
npm install
-
Start the development server:
npm run dev
We use automated tools to maintain code quality. These run automatically via git hooks:
- Prettier formats staged files automatically
- ESLint fixes linting issues in TypeScript files
Before pushing to remote, the following checks must pass:
- TypeScript -
npm run typecheck - ESLint -
npm run lint - Tests -
npm test
If any of these fail, the push will be rejected and you'll need to fix the issues first.
You can run these checks manually:
# Type checking
npm run typecheck
# Linting
npm run lint
# Fix linting issues
npm run lint:fix
# Format code
npm run format
# Run tests
npm test
# Run tests with UI
npm test:ui- Write tests for new features and bug fixes
- Ensure all tests pass before submitting a PR
- Tests are located next to the components they test
- Fork the repository
- Create a feature branch:
git checkout -b feat/your-feature-name - Make your changes
- Commit with semantic commit messages (see below)
- Push to your fork (pre-push hooks will validate your code)
- Create a Pull Request
We use Conventional Commits:
feat:- New featuresfix:- Bug fixesdocs:- Documentation changesstyle:- Code style changes (formatting, etc.)refactor:- Code refactoringtest:- Test additions or correctionschore:- Maintenance tasks
Examples:
feat: add weather card variant system
fix: correct temperature display in weather card
docs: update contributing guidelines
src/
├── components/ # React components
├── hooks/ # Custom React hooks
├── services/ # Home Assistant API services
├── store/ # State management
├── utils/ # Utility functions
└── routes/ # TanStack Router pages
Feel free to open an issue for questions or discussions!