Guidelines for contributing to SpectraTact.
Be respectful and professional. Focus on constructive feedback and collaborative problem-solving.
Accepted contributions include:
- Bug Reports: Report issues
- Feature Requests: Suggest improvements
- Code Contributions: Fix bugs, add features, improve performance
- Documentation: Update guides, API docs, examples
- Testing: Add tests, improve coverage
pip install -e .[dev]
npm install
pre-commit installSee Developer Guide for details.
Run:
python -m spectratact # Python component
npm run dev:win # GUI (Windows)
npm run dev:unix # GUI (macOS/Linux)Test:
npm run test # All tests
pytest # Python only
npm run test:frontend # JavaScript onlyStyle:
black src/spectratact # Format Python
flake8 src/spectratact # Lint Python
mypy src/spectratact # Type check
npx eslint src/desktop # Lint JavaScript
pre-commit run --all-files # Run all checks- Create feature branch:
git checkout -b feature/your-feature - Make changes following code style
- Add/update tests
- Run tests and linters
- Commit with clear messages
- Push and create pull request
Commit format:
Add feature: brief description
Details if needed.
Examples: Fix: Window detection Unicode bug, Add: Custom layout support
Checklist:
- Code follows style guidelines
- Tests pass
- Tests added for new functionality
- Documentation updated
- CHANGELOG.md updated
Use PR template in .github/pull_request_template.md.
Python:
- Add module under
src/spectratact/ - Write tests in
test/backend/ - Update docs
GUI:
- Add module in
src/desktop/modules/orsrc/desktop/main/ - Register IPC handlers if needed
- Write tests in
test/frontend/
Configuration:
- Add to
docs/examples/*.example.yml - Update
src/spectratact/config/validator.py - Document in
docs/configuration.md
Bug reports (.github/ISSUE_TEMPLATE/bug_report.md):
- OS and versions (Python, Node.js, SpectraTact)
- Steps to reproduce
- Expected vs actual behavior
- Logs from
logs/app.log
Feature requests (.github/ISSUE_TEMPLATE/feature_request.md):
- Problem solved
- Proposed solution
- Use cases
Contributions licensed under GPL-3.0-or-later.
Version 0.1.0 | Beta | Python 3.8-3.13 | Node.js 18.0+ | Windows 10/11
Copyright 2025 dhaneshbb. Licensed under GPL-3.0-or-later.