Contributing
Contributions are welcome! Help make Nokvault better for everyone.
How to Contribute
There are many ways to contribute to Nokvault:
- Report bugs
- Suggest new features
- Submit pull requests
- Improve documentation
- Write tests
- Help other users
Getting Started
To start contributing:
- Fork the repository on GitHub
- Clone your fork locally
- Create a feature branch
- Make your changes
- Test your changes
- Submit a pull request
# Fork and clone
git clone https://github.com/jimididit/nokvault.git
cd nokvault
# Create a feature branch
git checkout -b feature/amazing-feature
# Make your changes, then commit
git commit -m "Add amazing feature"
# Push to your fork
git push origin feature/amazing-featureDevelopment Setup
Set up your development environment:
# Install dependencies
go mod download
# Run tests
go test ./...
# Build the project
# Windows
go build -o nokvault.exe ./cmd/nokvault
# Linux/macOS
go build -o nokvault ./cmd/nokvault
# Run with your changes
./nokvault --versionCode Standards
Please follow these guidelines:
- Follow Go conventions and style guide
- Write clear, descriptive commit messages
- Add tests for new features
- Update documentation as needed
- Ensure all tests pass before submitting
- Run
go fmtandgo vetbefore committing
Testing
Ensure your changes are tested:
# Run all tests
go test ./...
# Run tests with coverage
go test -cover ./...
# Run tests for a specific package
go test ./internal/crypto/...Aim for high test coverage, especially for security-critical code.
Pull Request Process
When submitting a pull request:
- Ensure your code follows the project's style guidelines
- Add or update tests as needed
- Update documentation if you've changed functionality
- Ensure all tests pass
- Write a clear description of your changes
- Reference any related issues
Reporting Issues
When reporting bugs, please include:
- Nokvault version
- Operating system and version
- Steps to reproduce the issue
- Expected behavior
- Actual behavior
- Error messages or logs
Security Issues
If you discover a security vulnerability, please:
- Do not open a public issue
- Email security concerns privately
- Allow time for the issue to be addressed before disclosure
Questions?
If you have questions about contributing:
- Open an issue for discussion
- Check existing issues and pull requests
- Review the codebase to understand patterns