Thank you for your interest in contributing to Entropy-Pass! This document provides guidelines and instructions for contributing.
- Be respectful and inclusive
- Focus on constructive feedback
- Help create a welcoming environment for all contributors
- Node.js 18 or higher
- Rust 1.70 or higher
- Git
- A code editor (VS Code recommended)
-
Fork the repository
# Click the "Fork" button on GitHub -
Clone your fork
git clone https://github.com/yourusername/entropy-pass.git cd entropy-pass -
Install dependencies
npm install
-
Run the development server
npm run tauri dev
feature/- New features (e.g.,feature/memorable-passwords)fix/- Bug fixes (e.g.,fix/clipboard-error)docs/- Documentation updates (e.g.,docs/update-readme)refactor/- Code refactoring (e.g.,refactor/entropy-collector)
-
Create a new branch
git checkout -b feature/your-feature-name
-
Make your changes
- Follow the existing code style
- Write clear, descriptive commit messages
- Add tests for new functionality
-
Test your changes
# Run Rust tests cd src-tauri cargo test # Run frontend tests cd .. npm test # Test the app npm run tauri dev
-
Commit your changes
git add . git commit -m "feat: add memorable password generator"
-
Push to your fork
git push origin feature/your-feature-name
-
Create a Pull Request
- Go to the original repository on GitHub
- Click "New Pull Request"
- Select your branch
- Fill in the PR template with details
- Use TypeScript for all new code
- Follow React hooks best practices
- Use functional components
- Keep components small and focused
- Use meaningful variable names
- Follow Rust naming conventions
- Write documentation comments for public APIs
- Handle errors properly (use
Resulttypes) - Write unit tests for new functions
- Keep functions small and focused
- Use Tailwind CSS utility classes
- Follow the existing design system
- Ensure responsive design
- Test in both light and dark themes
- Write unit tests for all new functions
- Test edge cases and error conditions
- Aim for high code coverage
- Use descriptive test names
# Rust tests
cd src-tauri
cargo test
# Frontend tests
npm test
# Run tests in watch mode
npm run test:watchentropy-pass/
├── src/ # React frontend
│ ├── components/ # Reusable UI components
│ ├── services/ # Business logic services
│ ├── types/ # TypeScript type definitions
│ └── App.tsx # Main application component
├── src-tauri/ # Rust backend
│ └── src/
│ ├── entropy/ # Entropy collection modules
│ ├── generator/ # Password generation
│ ├── strength/ # Strength calculation
│ └── commands.rs # Tauri command handlers
└── .kiro/specs/ # Design specifications
Follow the Conventional Commits specification:
feat:- New featurefix:- Bug fixdocs:- Documentation changesstyle:- Code style changes (formatting, etc.)refactor:- Code refactoringtest:- Adding or updating testschore:- Maintenance tasks
Examples:
feat: add memorable password generator
fix: resolve clipboard permission error
docs: update installation instructions
refactor: simplify entropy collection logic
- Update documentation if needed
- Add tests for new functionality
- Ensure all tests pass
- Update CHANGELOG.md with your changes
- Request review from maintainers
- Address feedback promptly
- Squash commits if requested
When contributing, keep these security principles in mind:
- Never persist passwords to disk
- Always use secure random generation
- Validate all user inputs
- Handle errors gracefully
- Follow the principle of least privilege
- Test security features thoroughly
If you have questions or need help:
- Open an issue on GitHub
- Check existing issues and discussions
- Read the specification documents in
.kiro/specs/
By contributing, you agree that your contributions will be licensed under the MIT License.
Thank you for contributing to Entropy-Pass! 🎉