Contributing¶
Thank you for your interest in contributing to AXIS.
Getting Started¶
- Fork the repository and clone your fork
- Follow the development setup guide to configure your environment
- Create a feature branch from
master
Development Workflow¶
# Install dependencies and pre-commit hooks
make install
# Start development servers
make dev
# Run linters before committing
make lint-fix
# Run tests
make test
Code Standards¶
- Backend: Follow the code conventions for Python/FastAPI
- Frontend: Follow the code conventions for TypeScript/Next.js
- Design: Follow the design system for UI components
Pull Request Process¶
- Ensure all linters pass:
make lint - Ensure all type checks pass:
make typecheck - Ensure all tests pass:
make test - Update documentation if your change affects user-facing behavior
- Submit a pull request against
master
Pre-commit Hooks¶
The repository uses pre-commit to run automated checks on every commit:
| Hook | Purpose |
|---|---|
| Trailing whitespace | Remove trailing whitespace |
| End-of-file fixer | Ensure files end with newline |
| YAML/JSON validation | Check syntax |
| Large file detection | Prevent accidental large commits |
| Merge conflict detection | Catch unresolved conflicts |
| Private key detection | Prevent credential leaks |
| Ruff lint + format | Python code quality |
| Prettier | Frontend formatting |
| ESLint | Frontend linting |
Reporting Issues¶
Open an issue on GitHub with:
- A clear description of the problem or feature request
- Steps to reproduce (for bugs)
- Expected vs. actual behavior
- Environment details (OS, Python version, Node version)