Thank you for considering contributing to GPS CLI! π
If you find a bug, please create an issue with:
- Clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Your environment (OS, shell, versions)
- Relevant logs from
~/.config/gps-cli/gps.log
We welcome feature suggestions! Please create an issue with:
- Clear description of the feature
- Use case / problem it solves
- Example usage or mockup
- Any relevant technical details
-
Fork the repository
gh repo fork alexcolls/gps-cli --clone
-
Create a feature branch
git checkout -b feature/your-feature-name
-
Make your changes
- Follow existing code style
- Add comments for complex logic
- Update documentation if needed
- Test on multiple platforms if possible
-
Commit with emojis (following project convention)
git commit -m "β¨ Add new feature description"Common emojis:
- β¨ New feature
- π Bug fix
- π Documentation
- π§ Configuration
- π¨ UI/UX improvements
- β‘ Performance
- π Security
- π§ͺ Tests
-
Push and create PR
git push origin feature/your-feature-name gh pr create
- Use 4 spaces for indentation
- Use
snake_casefor function names - Use
UPPER_CASEfor constants - Add comments for non-obvious logic
- Use
shellcheckto validate scripts
Before submitting:
# Test syntax
bash -n gps
bash -n install.sh
# Test basic commands
./gps help
./gps providers
# Test installation
./install.sh- Update README.md for new features
- Update CHANGELOG.md following semantic versioning
- Add usage examples
- Update command reference if adding new commands
# Clone your fork
git clone https://github.com/YOUR_USERNAME/gps-cli.git
cd gps-cli
# Make changes
chmod +x gps
./gps help
# Test locally
./install.sh
gps helpgps-cli/
βββ gps # Main CLI script
βββ install.sh # Installation script
βββ README.md # Main documentation
βββ CHANGELOG.md # Version history
βββ .env.sample # Configuration template
βββ providers/ # Provider implementations
βββ utils/ # Utility scripts
- Enhanced GPS hardware support
- Additional tracking providers
- Battery optimization modes
- Geofencing alerts
- Export location data (CSV, KML)
- Web dashboard interface
- Multiple device tracking
- Encryption for all providers
- Wi-Fi positioning support
- Bluetooth beacon support
- Video tutorials
- Provider-specific guides
- Troubleshooting examples
- Translation to other languages
- Automated tests must pass
- Code reviewed by maintainer
- Documentation updated
- CHANGELOG.md updated
- Merged to main branch
Use conventional commits with emojis:
<emoji> <type>: <description>
[optional body]
[optional footer]
Examples:
β¨ feat: Add OwnTracks MQTT support
π fix: Resolve IP geolocation fallback issue
π docs: Update Traccar setup instructions
π§ config: Add new environment variables
Contributors will be:
- Listed in README.md contributors section
- Mentioned in release notes
- Given credit in documentation
- Open a discussion on GitHub
- Check existing issues
- Review documentation
Thank you for helping make GPS CLI better! π°οΈ