community: add issue/PR templates, code of conduct, update contributing guide

This commit is contained in:
2026-03-18 12:22:10 +00:00
parent 59cdd4530b
commit 68365dfe98
5 changed files with 157 additions and 24 deletions

39
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@@ -0,0 +1,39 @@
name: Bug Report
description: Report a bug or unexpected behavior
labels: ["bug"]
body:
- type: textarea
id: description
attributes:
label: Description
description: What happened? What did you expect?
validations:
required: true
- type: textarea
id: steps
attributes:
label: Steps to reproduce
description: How can we reproduce the issue?
- type: input
id: version
attributes:
label: NORA version
placeholder: "0.2.32"
- type: dropdown
id: protocol
attributes:
label: Registry protocol
options:
- Docker
- npm
- Maven
- PyPI
- Cargo
- Raw
- UI/Dashboard
- Other
- type: textarea
id: logs
attributes:
label: Logs / error output
render: shell

View File

@@ -0,0 +1,30 @@
name: Feature Request
description: Suggest a new feature or improvement
labels: ["enhancement"]
body:
- type: textarea
id: problem
attributes:
label: Problem
description: What problem does this solve?
validations:
required: true
- type: textarea
id: solution
attributes:
label: Proposed solution
description: How would you like it to work?
- type: dropdown
id: protocol
attributes:
label: Related protocol
options:
- Docker
- npm
- Maven
- PyPI
- Cargo
- Raw
- CLI
- UI/Dashboard
- General

15
.github/pull_request_template.md vendored Normal file
View File

@@ -0,0 +1,15 @@
## What does this PR do?
<!-- Brief description of the change -->
## Related issue
<!-- Link to issue, e.g. Fixes #123 -->
## Checklist
- [ ] `cargo fmt` passes
- [ ] `cargo clippy` passes with no warnings
- [ ] `cargo test --lib --bin nora` passes
- [ ] New functionality includes tests
- [ ] CHANGELOG.md updated (if user-facing change)

36
CODE_OF_CONDUCT.md Normal file
View File

@@ -0,0 +1,36 @@
# Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity and
orientation.
## Our Standards
Examples of behavior that contributes to a positive environment:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
Examples of unacceptable behavior:
* The use of sexualized language or imagery, and sexual attention or advances
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information without explicit permission
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the project team at security@getnora.io. All complaints will be
reviewed and investigated promptly and fairly.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1.

View File

@@ -14,58 +14,71 @@ Thank you for your interest in contributing to NORA!
# Install Rust (if needed) # Install Rust (if needed)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Enable pre-commit hooks (important!)
git config core.hooksPath .githooks
# Build # Build
cargo build cargo build --package nora-registry
# Run tests # Run tests (important: always use --lib --bin nora to skip fuzz targets)
cargo test cargo test --lib --bin nora
# Run clippy
cargo clippy --package nora-registry -- -D warnings
# Format
cargo fmt
# Run locally # Run locally
cargo run --bin nora -- serve 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 ## Code Style
- Run `cargo fmt` before committing - Run `cargo fmt` before committing
- Run `cargo clippy` and fix warnings - Fix all `cargo clippy` warnings
- Follow Rust naming conventions - Follow Rust naming conventions
- Keep functions short and focused
- Add tests for new functionality
## Pull Request Process ## Pull Request Process
1. Update documentation if needed 1. Update CHANGELOG.md if the change is user-facing
2. Add tests for new features 2. Add tests for new features or bug fixes
3. Ensure all tests pass: `cargo test` 3. Ensure CI passes (fmt, clippy, test, security checks)
4. Ensure code is formatted: `cargo fmt --check` 4. Keep PRs focused — one feature or fix per PR
5. Ensure no clippy warnings: `cargo clippy`
## Commit Messages ## Commit Messages
Use conventional commits: Use conventional commits:
- `feat:` - new feature - `feat:` new feature
- `fix:` - bug fix - `fix:` bug fix
- `docs:` - documentation - `docs:` documentation
- `style:` - formatting - `test:` adding or updating tests
- `refactor:` - code refactoring - `security:` security improvements
- `test:` - adding tests - `chore:` maintenance
- `chore:` - maintenance
Example: `feat: add OAuth2 authentication` Example: `feat: add npm scoped package support`
## Reporting Issues ## Reporting Issues
- Use GitHub Issues - Use GitHub Issues with the provided templates
- Include steps to reproduce - Include steps to reproduce
- Include NORA version and OS - Include NORA version (`nora --version`) and OS
## License ## License
By contributing, you agree that your contributions will be licensed under the MIT License. By contributing, you agree that your contributions will be licensed under the MIT License.
## Contact ## Community
- Telegram: [@DevITWay](https://t.me/DevITWay) - Telegram: [@getnora](https://t.me/getnora)
- GitHub Issues: [getnora-io/nora](https://github.com/getnora-io/nora/issues) - GitHub Issues: [getnora-io/nora](https://github.com/getnora-io/nora/issues)