mirror of
https://github.com/getnora-io/nora.git
synced 2026-04-12 13:50:31 +00:00
community: add issue/PR templates, code of conduct, update contributing guide
This commit is contained in:
39
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
39
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal 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
|
||||||
30
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
30
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal 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
15
.github/pull_request_template.md
vendored
Normal 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
36
CODE_OF_CONDUCT.md
Normal 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.
|
||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user