Contribute
How to contribute to CoraleVault
Welcome Contributors
CoraleVault is an open-source project, and we welcome contributions from the community! Whether you’re fixing bugs, adding features, improving documentation, or spreading the word, your help is appreciated.
Ways to Contribute
๐ Report Bugs
Found a bug? Please report it!
- Check existing issues first
- If it’s new, create an issue
- Include:
- Description of the bug
- Steps to reproduce
- Expected behavior vs actual behavior
- Platform (OS, version)
- Version of CoraleVault
- Screenshots if applicable
๐ก Suggest Features
Have an idea for a new feature?
- Check existing discussions
- Open a new discussion
- Describe:
- Problem you’re trying to solve
- Proposed solution
- Alternatives considered
- Use case examples
๐ง Submit Code
Want to fix a bug or add a feature?
- Fork the repository
- Create a branch:
git checkout -b feature/your-feature-name - Make your changes
- Test thoroughly
- Commit: Follow commit message guidelines
- Push:
git push origin feature/your-feature-name - Open a Pull Request
๐ Improve Documentation
Documentation is always welcome!
- Fix typos and grammar
- Add examples and clarifications
- Write tutorials
- Translate to other languages
- Improve README or guides
๐งช Write Tests
Help improve code quality:
- Add unit tests for existing code
- Add integration tests
- Improve test coverage
- Fix failing tests
๐จ Design & UX
Contribute to user experience:
- Suggest UI improvements
- Create mockups or designs
- Improve accessibility
- Design icons or graphics
๐ Translate
Help make CoraleVault accessible to non-English speakers:
- Translate the interface
- Translate documentation
- Review existing translations
๐ข Spread the Word
Help others discover CoraleVault:
- Star the project on GitHub โญ
- Share on social media
- Write blog posts or reviews
- Recommend to friends and colleagues
Development Setup
Prerequisites
- Git
- C++17 compatible compiler
- wxWidgets 3.0+
- Crypto++ library
Clone and Build
| |
See Build Instructions for detailed setup.
Contribution Guidelines
Code Style
- Standard: C++17
- Indentation: 4 spaces (no tabs)
- Line length: 120 characters maximum
- Naming conventions:
- Classes:
PascalCase - Functions:
PascalCase - Variables:
camelCase - Member variables:
camelCase_(trailing underscore) - Constants:
UPPER_SNAKE_CASE
- Classes:
Commit Messages
Format:
<type>: <subject>
<body>
<footer>
Types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting)refactor: Code refactoringtest: Adding or updating testschore: Build process, dependencies, etc.
Example:
feat: Add auto-lock timeout configuration
Allow users to configure the auto-lock timeout in preferences.
Default timeout is 5 minutes, configurable from 1-60 minutes.
Closes #42
Pull Request Guidelines
- One feature per PR - Keep changes focused
- Update documentation - Document new features
- Add tests - Test your changes
- Follow code style - Match existing code
- Test on multiple platforms - Windows, Linux, macOS if possible
- Keep commits clean - Squash “fix typo” commits
- Reference issues - Link to related issues
What to Avoid
โ Large, unfocused PRs โ Breaking changes without discussion โ Code without tests โ Ignoring CI failures โ Force-pushing after review โ Introducing new dependencies without justification
Code Review Process
Automated checks run on PR:
- Build on all platforms
- Run tests
- Check code style
- Security scanning
Maintainer review:
- Code quality and style
- Correctness and completeness
- Security implications
- Documentation
Feedback:
- Address review comments
- Push changes to PR branch
- Request re-review
Merge:
- Approved PRs are merged
- You’re added to contributors list! ๐
Testing
Run Tests
| |
Write Tests
Tests use Google Test framework:
| |
Security Contributions
Reporting Security Issues
DO NOT open public issues for security vulnerabilities.
Instead, email: dev@coralesoft.nz
Include:
- Description of vulnerability
- Steps to reproduce
- Potential impact
- Suggested fix (if any)
See Security Policy for details.
Security-Focused Contributions
We especially welcome:
- Security audits
- Cryptographic reviews
- Memory safety improvements
- Attack mitigation enhancements
- Security documentation
First-Time Contributors
New to open source? Welcome! ๐
Good First Issues
Look for issues labeled good first issue:
- Well-defined scope
- Clear requirements
- Good for learning
- Mentorship available
Getting Help
- Questions: GitHub Discussions
- Chat: [Community chat if available]
- Documentation: Full docs
Don’t be shy - we were all beginners once!
Maintainers
Current maintainers:
- Coralesoft (@Coralesoft) - Creator & Lead Maintainer
Want to become a maintainer? Consistent, quality contributions are the path!
Code of Conduct
We follow the Contributor Covenant Code of Conduct.
In summary:
- Be respectful and welcoming
- Be patient and friendly
- Be collaborative
- Disagree respectfully
- No harassment or discrimination
Licence
By contributing to CoraleVault, you agree that your contributions will be licensed under the GNU GPL v3.0 licence.
See LICENSE for details.
Recognition
Contributors are recognized in:
- CHANGELOG.md - Mentioned in release notes
- GitHub Contributors - Automatic recognition
- Documentation - Major contributions noted
Resources
- GitHub Repository: github.com/Coralesoft/CoraleVault
- Contributing Guide: CONTRIBUTING.md
- Build Instructions: BUILD.md
- Code of Conduct: CODE_OF_CONDUCT.md
Questions?
- General: GitHub Discussions
- Issues: GitHub Issues
- Email: dev@coralesoft.nz
Thank you for contributing to CoraleVault! ๐
Every contribution, no matter how small, helps make CoraleVault better for everyone.