Thank you for your interest in contributing to sn-cli! We welcome contributions from the community.
- Check if the issue already exists in GitHub Issues
- Include your OS, Go version, and sn-cli version
- Provide steps to reproduce the issue
- Include relevant error messages or logs
-
Fork and Clone
git clone https://github.com/your-username/sn-cli.git cd sn-cli -
Create a Branch
git checkout -b feature/your-feature-name # or git checkout -b fix/your-bug-fix -
Make Changes
- Follow existing code style and conventions
- Add tests for new functionality
- Update documentation if needed
-
Test Your Changes
make test make lint -
Commit and Push
git add . git commit -m "Brief description of changes" git push origin your-branch-name
-
Open a Pull Request
- Provide a clear description of the changes
- Reference any related issues
- Ensure all checks pass
- Go 1.25 or later
- Make
make buildmake test # Run all tests
make cover # Generate coverage reportmake lint # Run linters
make fmt # Format code- Go Standards: Follow Effective Go guidelines
- Error Handling: Always handle errors explicitly
- Testing: Write tests for new features and bug fixes
- Comments: Add comments for complex logic
- Commits: Use clear, descriptive commit messages
- Unit tests should be included for new functionality
- Integration tests for API interactions are welcome
- Test with both Standard Notes cloud and self-hosted servers when possible
Feel free to open an issue for discussion or clarification about contributing.
By contributing to sn-cli, you agree that your contributions will be licensed under the MIT License.