Some checks failed
CI / Lint (bash) (push) Has been cancelled
CI / Lint (markdown) (push) Has been cancelled
CI / Lint (nickel) (push) Has been cancelled
CI / Lint (nushell) (push) Has been cancelled
CI / Lint (rust) (push) Has been cancelled
CI / Code Coverage (push) Has been cancelled
CI / Test (macos-latest) (push) Has been cancelled
CI / Test (ubuntu-latest) (push) Has been cancelled
CI / Test (windows-latest) (push) Has been cancelled
CI / Build (macos-latest) (push) Has been cancelled
CI / Build (ubuntu-latest) (push) Has been cancelled
CI / Build (windows-latest) (push) Has been cancelled
CI / Benchmark (push) Has been cancelled
CI / Security Audit (push) Has been cancelled
CI / License Compliance (push) Has been cancelled
2.8 KiB
2.8 KiB
Contributing to TypeDialog
Welcome
Thank you for considering contributing to TypeDialog! This document provides guidelines for contributing to the project.
Development Setup
Prerequisites
- Rust 1.75+ (see rustup.rs)
- just - command runner (
cargo install just) - Nickel - configuration language (
cargo install nickel-lang-cli) - Additional linters: shellcheck, nushell, markdownlint-cli2
Quick Start
# Clone repository
git clone https://github.com/jesusperezlorenzo/typedialog.git
cd typedialog
# Check dependencies
./scripts/check_deps.sh
# Run full validation
just check-all
```text
## Making Changes
### Development Workflow
1. **Create a branch**: `git checkout -b feature/my-feature`
2. **Make changes**: Follow coding standards below
3. **Run checks**: `just check-all` (format + lint + tests)
4. **Commit**: Write clear commit messages
5. **Push**: `git push origin feature/my-feature`
6. **Open PR**: Describe changes, link issues
### Coding Standards
#### Rust Code
- Follow Rust API guidelines
- Use `cargo fmt` for formatting
- Zero clippy warnings (`just dev::lint-rust`)
- Add tests for new functionality
- Document public APIs with rustdoc
#### Commit Messages
Format: `<type>(<scope>): <description>`
Types: feat, fix, docs, style, refactor, test, chore
Examples:
- `feat(cli): add --verbose flag for debug output`
- `fix(web): resolve CSRF token validation error`
- `docs(README): update installation instructions`
### Testing
- Unit tests: `cargo test --lib`
- Integration tests: `cargo test --test '*'`
- All tests: `just test::all`
- Coverage: `just dev::coverage`
## Pull Request Process
1. **Before submitting**:
- [ ] `just check-all` passes
- [ ] Tests added/updated
- [ ] Documentation updated
- [ ] CHANGELOG.md updated (if user-facing)
2. **PR template**: Fill out the template completely
3. **Review**: Address reviewer feedback
4. **Merge**: Maintainer will merge when approved
## Code Review Guidelines
We review for:
- Correctness and functionality
- Code quality and style
- Test coverage
- Documentation
- Security implications
## Reporting Bugs
Use GitHub Issues with template:
- **Title**: Clear, concise description
- **Environment**: OS, Rust version, TypeDialog version
- **Steps to reproduce**: Minimal example
- **Expected vs actual behavior**
- **Logs**: Use `--verbose` flag
## Feature Requests
Open a GitHub Discussion first for:
- Large features
- Breaking changes
- Architectural changes
## Security Vulnerabilities
**DO NOT** open public issues for security vulnerabilities.
See [SECURITY.md](SECURITY.md) for reporting process.
## Questions
- Discussions: GitHub Discussions
- Chat: (if applicable)
- Email: jpl@jesusperez.com
## License
By contributing, you agree your contributions will be licensed under MIT License.