First off, thank you for considering contributing to AeroFTP!
Be respectful, inclusive, and professional. We're here to build great software together.
- Use the issue tracker
- Include steps to reproduce
- Describe expected vs actual behavior
- Include screenshots if relevant
- Check if the feature was already requested
- Describe the use case clearly
- Explain why this would be useful
- Fork the repo
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests (
cd src-tauri && cargo test) - Commit (
git commit -m 'Add amazing feature') - Push (
git push origin feature/amazing-feature) - Open a Pull Request
# Clone the repo
git clone https://github.com/axpdev-lab/aeroftp.git
cd aeroftp
# Install dependencies
npm install
# Run in development mode
npm run tauri dev
# Build
npm run tauri build- Use TypeScript for frontend code
- Use Rust for backend (Tauri) code
- Follow existing code patterns
- Add comments for complex logic
- Keep functions small and focused
- Use clear, descriptive messages
- Start with a verb (Add, Fix, Update, Remove)
- Reference issues when relevant (#123)
All pull requests should include tests for new features and bug fixes where applicable:
- Backend (Rust): Add unit tests in
#[cfg(test)]modules. Run withcargo testfrom thesrc-tauri/directory. - Security checks: Run
npm run security:regressionto verify security invariants. - i18n: Run
npm run i18n:validateto ensure all translation keys are present in all 47 languages. - Type checking: Run
npx tsc --noEmitto verify TypeScript types.
Pull requests that reduce test coverage or break existing tests will not be merged.
- Bug reports: We aim to acknowledge bug reports within 7 days.
- Security vulnerabilities: We respond within 48 hours (see SECURITY.md for details).
- Pull requests: We aim to review pull requests within 14 days.
Open a discussion or reach out to the maintainers.
Thank you for contributing!