Thank you for your interest in contributing to the Family Tree Builder project!
This project uses Conventional Commits for automated releases and changelog generation. Please format your commit messages as follows:
<type>(<scope>): <subject>
<body>
<footer>
- feat: A new feature (triggers a minor version bump, e.g., 1.0.0 → 1.1.0)
- fix: A bug fix (triggers a patch version bump, e.g., 1.0.0 → 1.0.1)
- docs: Documentation changes (triggers a patch version bump)
- style: Code style changes - formatting, missing semi-colons, etc. (triggers a patch version bump)
- refactor: Code refactoring without changing functionality (triggers a patch version bump)
- perf: Performance improvements (triggers a patch version bump)
- test: Adding or updating tests (triggers a patch version bump)
- build: Changes to build system or dependencies (triggers a patch version bump)
- ci: Changes to CI configuration files and scripts (triggers a patch version bump)
- chore: Other changes that don't modify src or test files (triggers a patch version bump)
- revert: Reverting a previous commit (triggers a patch version bump)
feat: add ability to export family tree as PDF
fix: resolve issue with sibling node positioning
docs: update README with installation instructions
style: format code with prettier
refactor: simplify auto-layout algorithm
perf: optimize tree rendering performance
test: add tests for family tree merge functionality
build: upgrade Next.js to version 15
ci: update GitHub Actions workflow
chore: update dependenciesIf your commit introduces breaking changes, add BREAKING CHANGE: in the commit body or footer:
feat: redesign family tree data structure
BREAKING CHANGE: The family tree data format has changed.
Users will need to migrate their existing trees.This will trigger a major version bump.
You can optionally specify a scope to provide more context:
feat(sharing): add WebRTC-based tree sharing
fix(layout): correct partner node alignment
docs(readme): add PWA setup instructions- Fork the repository
- Create a feature branch (
git checkout -b feat/amazing-feature) - Make your changes
- Run tests (
npm test) - Run build (
npm run build) - Commit your changes using conventional commits
- Push to your branch (
git push origin feat/amazing-feature) - Open a Pull Request
When commits are merged to the main branch, the CI/CD pipeline automatically:
- Analyzes commits since the last release
- Determines the version bump based on commit types
- Generates a changelog
- Updates package.json version
- Creates a git tag
- Publishes a GitHub release
No manual version management is needed!
If you have any questions about contributing, feel free to open an issue or discussion on GitHub.