Thank you for your interest in contributing to WhatsApp Backup Reader! This document provides guidelines and information for contributors.
We use a two-branch workflow:
main- Production branch. Releases are automatically created when changes are pushed here.dev- Development branch. All feature branches and PRs should target this branch.
- Fork the repository
- Create a feature branch from
dev:git checkout -b feat/my-feature dev - Make your changes
- Push to your fork
- Open a Pull Request targeting the
devbranch - After review and approval, your PR will be merged to
dev - Periodically,
devis merged tomain, triggering an automatic release
We use Conventional Commits for automatic versioning and changelog generation.
<type>(<scope>): <description>
[optional body]
[optional footer(s)]
| Type | Description | Version Bump |
|---|---|---|
feat |
A new feature | Minor (0.x.0) |
fix |
A bug fix | Patch (0.0.x) |
perf |
Performance improvement | Patch |
refactor |
Code change that neither fixes a bug nor adds a feature | Patch |
docs |
Documentation only changes | None |
style |
Changes that do not affect the meaning of the code | None |
test |
Adding missing tests or correcting existing tests | None |
chore |
Changes to the build process or auxiliary tools | None |
ci |
Changes to CI configuration files and scripts | None |
For breaking changes, add ! after the type or include BREAKING CHANGE: in the footer:
feat!: remove deprecated API endpoint
BREAKING CHANGE: The /api/v1/chat endpoint has been removed. Use /api/v2/chat instead.
Breaking changes trigger a major version bump (x.0.0).
# Feature
git commit -m "feat(parser): add support for voice message transcription"
# Bug fix
git commit -m "fix(ui): correct chat bubble alignment on mobile"
# Performance
git commit -m "perf(search): optimize message search algorithm"
# Documentation
git commit -m "docs: update README with new installation steps"
# Chore
git commit -m "chore(deps): update electron to v39"- Node.js 22+
- npm 10+
# Clone the repository
git clone https://github.com/rodrigogs/whats-reader.git
cd whats-reader
# Install dependencies
npm install
# Run in development mode (web)
npm run dev
# Run in development mode (Electron)
npm run electron:dev| Script | Description |
|---|---|
npm run dev |
Start development server |
npm run build |
Build for production |
npm run electron:dev |
Start Electron in development mode |
npm run electron:build |
Build Electron app for current platform |
npm run lint |
Run linter |
npm run lint:fix |
Fix linting issues |
npm run check |
Run type checking |
Before submitting a PR, ensure:
- Linting passes:
npm run lint - Type checking passes:
npm run check - Build succeeds:
npm run build
Releases are fully automated:
- When
devis merged tomain, the release workflow runs - semantic-release analyzes commits since the last release
- Version is automatically bumped based on commit types
- CHANGELOG.md is updated
- A GitHub Release is created
- The build workflow creates binaries for all platforms:
- macOS (Intel & Apple Silicon)
- Windows (x64 & ARM64)
- Linux (x64)
When reporting bugs, please include:
- Operating system and version
- App version
- Steps to reproduce
- Expected behavior
- Actual behavior
- Screenshots if applicable
Feature requests are welcome! Please:
- Check existing issues to avoid duplicates
- Describe the feature and its use case
- Explain why it would benefit users
By contributing to WhatsApp Backup Reader, you agree that your contributions will be licensed under the AGPL-3.0 License.
Your contributions make this project better for everyone. We appreciate your time and effort!