Thank you for your interest in contributing to the NLS Artist Systems tracker device project! This document provides guidelines and instructions for contributing.
By participating in this project, you agree to abide by our Code of Conduct.
- Check if the bug has already been reported in Issues
- Verify you're using the latest version
- Try to reproduce the issue
- Use the bug report template
- Provide a clear, descriptive title
- Include:
- Steps to reproduce
- Expected behavior
- Actual behavior
- Environment (hardware version, firmware version, OS)
- Screenshots/logs if applicable
- Check if the enhancement has been suggested
- Consider if it aligns with project goals
- Think about implementation complexity
- Use the enhancement template
- Provide:
- Clear description
- Use case and motivation
- Proposed solution
- Alternatives considered
- Fork the repository
- Clone your fork
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Test your changes thoroughly
- Commit your changes (
git commit -m 'Add amazing feature') - Push to your branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow ESP-IDF Style Guide
- Use 4 spaces for indentation
- Maximum line length: 100 characters
- Use meaningful variable and function names
- Add comments for complex logic
- Follow PEP 8
- Use 4 spaces for indentation
- Maximum line length: 100 characters
- Type hints encouraged
- Follow Airbnb JavaScript Style Guide
- Use 2 spaces for indentation
- Use ES6+ features
- Add JSDoc comments
- Follow the Documentation Standards
- Use proper heading hierarchy
- Include code examples
- Add cross-references
- Format:
[section] Brief description - Examples:
[firmware] Add IMU calibration[hardware] Update BOM for v2.0[docs] Fix installation steps[fix] Resolve WiFi connection issue
- Update documentation if needed
- Add tests if applicable
- Ensure all tests pass
- Update CHANGELOG.md
- Request review from maintainers
- Address review comments
- Wait for approval before merging
- Hardware Documentation: Specifications, assembly guides, schematics
- Software Documentation: API references, tutorials, examples
- Integration Guides: NLS systems, external tools
- Troubleshooting: Common issues and solutions
- Use clear, concise language
- Include code examples
- Add diagrams where helpful
- Cross-reference related documentation
- Keep documentation up-to-date
- Schematics: KiCad or Eagle format
- PCB Layouts: Gerber files and drill files
- 3D Models: STEP or STL files
- Enclosure Designs: STL files for 3D printing
- Follow open hardware principles
- Use standard components where possible
- Document all design decisions
- Include BOM and assembly instructions
See Development Environment Guide
- Follow Testing Procedures
- Test on multiple hardware versions if possible
- Document test results
- Write unit tests for new features
- Run integration tests
- Test on different platforms if applicable
- All code must be reviewed before merging
- Reviews focus on:
- Code quality and style
- Functionality and correctness
- Performance implications
- Documentation completeness
- Documentation is reviewed for:
- Accuracy and clarity
- Completeness
- Consistency with style guide
- Proper cross-references
Contributors will be:
- Listed in CONTRIBUTORS.md
- Credited in release notes
- Acknowledged in documentation
- GitHub Issues: For bug reports and feature requests
- Discussions: For questions and general discussion
- Email: Contact maintainers directly
By contributing, you agree that your contributions will be licensed under the same license as the project.
Thank you for contributing!