Browse documentation

Contributing

Contributions are welcome. Help make NokVault better for everyone.

How to contribute

There are many ways to contribute:

  • Report bugs
  • Suggest new features
  • Submit pull requests
  • Improve documentation
  • Write tests
  • Help other users

Getting started

  1. Fork the repository on GitHub
  2. Clone your fork locally
  3. Create a feature branch
  4. Make your changes
  5. Test your changes
  6. Submit a pull request
bash bash
# 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-feature

Development setup

bash bash
# 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 --version

Code standards

  • 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 fmt and go vet before committing

Testing

bash bash
# 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 coverage on security-critical packages.

Pull request process

  1. Ensure your code follows the project's style guidelines
  2. Add or update tests as needed
  3. Update documentation if you've changed functionality
  4. Ensure all tests pass
  5. Write a clear description of your changes
  6. Reference any related issues

Reporting issues

When reporting bugs, include:

  • NokVault version
  • Operating system and version
  • Steps to reproduce the issue
  • Expected behavior
  • Actual behavior
  • Error messages or logs

Security issues

  • Do not open a public issue for vulnerabilities
  • Email security concerns privately
  • Allow time for the issue to be addressed before disclosure

Questions?

  • Open an issue for discussion
  • Check existing issues and pull requests
  • Review the codebase to understand patterns