Contributing Guidelines¶
We welcome contributions from everyone. This page covers the practical workflow for submitting changes.
Getting started¶
- Fork the repository on GitHub
- Clone your fork locally
- Set up the development environment (see Development Guide)
- Create a topic branch from
main - Make your changes
- Test your changes thoroughly
- Submit a pull request
Reporting bugs¶
Before reporting a bug, check the issue tracker to see if it's already been reported. Use the bug report template and include:
- A clear and descriptive title
- Steps to reproduce the issue
- Expected vs actual behavior
- Your environment details
- Relevant log output
Suggesting features¶
Use the feature request template and include:
- A clear description of the proposed feature
- Motivation and use case
- Relevant examples or mockups
Coding standards¶
Nix code style¶
- Use 2 spaces for indentation
- Follow the Nix style guide
- Keep lines under 100 characters when possible
- Use descriptive variable names
- Comment complex expressions
Git commit messages¶
We follow Conventional Commits:
Types: feat, fix, docs, style, refactor, perf, test, chore
Examples:
feat(zfs): add automatic snapshot scheduling
fix(boot): resolve UEFI boot issues on certain hardware
docs(readme): update installation instructions
Pull request process¶
- Sync with upstream:
git fetch upstream && git rebase upstream/main - Test:
nix flake check - Submit a pull request with a clear description
- Address review feedback promptly
AI/LLM tool usage¶
We allow AI tools but require human review and transparency. See our AI/LLM Tool Policy.
Contributor License Agreement¶
By contributing, you agree to the terms of our Contributor License Agreement.
Code of Conduct¶
All participants are expected to follow our Code of Conduct.