mirror of
https://github.com/getnora-io/nora.git
synced 2026-04-12 19:40:31 +00:00
85 lines
1.9 KiB
Markdown
85 lines
1.9 KiB
Markdown
# Contributing to NORA
|
|
|
|
Thank you for your interest in contributing to NORA!
|
|
|
|
## Getting Started
|
|
|
|
1. Fork the repository
|
|
2. Clone your fork: `git clone https://github.com/YOUR_USERNAME/nora.git`
|
|
3. Create a branch: `git checkout -b feature/your-feature`
|
|
|
|
## Development Setup
|
|
|
|
```bash
|
|
# Install Rust (if needed)
|
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
|
|
|
# Build
|
|
cargo build --package nora-registry
|
|
|
|
# Run tests (important: always use --lib --bin nora to skip fuzz targets)
|
|
cargo test --lib --bin nora
|
|
|
|
# Run clippy
|
|
cargo clippy --package nora-registry -- -D warnings
|
|
|
|
# Format
|
|
cargo fmt
|
|
|
|
# Run locally
|
|
cargo run --bin nora -- serve
|
|
```
|
|
|
|
## Before Submitting a PR
|
|
|
|
```bash
|
|
cargo fmt --check
|
|
cargo clippy --package nora-registry -- -D warnings
|
|
cargo test --lib --bin nora
|
|
```
|
|
|
|
All three must pass. CI will enforce this.
|
|
|
|
## Code Style
|
|
|
|
- Run `cargo fmt` before committing
|
|
- Fix all `cargo clippy` warnings
|
|
- Follow Rust naming conventions
|
|
- Keep functions short and focused
|
|
- Add tests for new functionality
|
|
|
|
## Pull Request Process
|
|
|
|
1. Update CHANGELOG.md if the change is user-facing
|
|
2. Add tests for new features or bug fixes
|
|
3. Ensure CI passes (fmt, clippy, test, security checks)
|
|
4. Keep PRs focused — one feature or fix per PR
|
|
|
|
## Commit Messages
|
|
|
|
Use conventional commits:
|
|
|
|
- `feat:` new feature
|
|
- `fix:` bug fix
|
|
- `docs:` documentation
|
|
- `test:` adding or updating tests
|
|
- `security:` security improvements
|
|
- `chore:` maintenance
|
|
|
|
Example: `feat: add npm scoped package support`
|
|
|
|
## Reporting Issues
|
|
|
|
- Use GitHub Issues with the provided templates
|
|
- Include steps to reproduce
|
|
- Include NORA version (`nora --version`) and OS
|
|
|
|
## License
|
|
|
|
By contributing, you agree that your contributions will be licensed under the MIT License.
|
|
|
|
## Community
|
|
|
|
- Telegram: [@getnora](https://t.me/getnora)
|
|
- GitHub Issues: [getnora-io/nora](https://github.com/getnora-io/nora/issues)
|