Some checks failed
Go / build-and-release (push) Has been cancelled
- Add Gitea issue templates for bug reports and feature requests with structured YAML forms for version, database backend, and log level - Add GitHub Actions CI workflow for automated testing on push/PR - Add GitHub Actions release workflow for building multi-platform binaries on tag push with SHA256 checksums - Add CONTRIBUTING.md with development setup, PR guidelines, and commit message format documentation - Add DECENTRALIZE_NOSTR.md expansion plan outlining WireGuard tunnel, GUI installer, system tray, and proxy server architecture - Update allowed commands in Claude settings - Bump version to v0.35.5 Files modified: - .gitea/issue_template/: Bug report, feature request, and config YAML - .github/workflows/: CI and release automation workflows - CONTRIBUTING.md: New contributor guide - docs/plans/DECENTRALIZE_NOSTR.md: Expansion architecture plan - .claude/settings.local.json: Updated allowed commands - pkg/version/version: Version bump to v0.35.5 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
3.2 KiB
3.2 KiB
Contributing to ORLY
Thank you for your interest in contributing to ORLY! This document outlines the process for reporting bugs, requesting features, and submitting contributions.
Canonical Repository: https://git.mleku.dev/mleku/next.orly.dev
Issue Reporting Policy
Before Opening an Issue
- Search existing issues to avoid duplicates
- Check the documentation in the repository
- Verify your version - run
./orly versionand ensure you're on a recent release - Review the CLAUDE.md file for configuration guidance
Bug Reports
Use the Bug Report template when reporting unexpected behavior. A good bug report includes:
- Version information - exact ORLY version from
./orly version - Database backend - Badger, Neo4j, or WasmDB
- Clear description - what happened vs. what you expected
- Reproduction steps - detailed steps to trigger the bug
- Logs - relevant log output (use
ORLY_LOG_LEVEL=debugortrace) - Configuration - relevant environment variables (redact secrets)
Log Levels for Debugging
export ORLY_LOG_LEVEL=trace # Most verbose
export ORLY_LOG_LEVEL=debug # Development debugging
export ORLY_LOG_LEVEL=info # Default
Feature Requests
Use the Feature Request template when suggesting new functionality. A good feature request includes:
- Problem statement - what problem does this solve?
- Proposed solution - specific description of desired behavior
- Alternatives considered - workarounds you've tried
- Related NIP - if this implements a Nostr protocol specification
- Impact assessment - is this a minor tweak or major change?
Feature Categories
- Protocol - NIP implementations and Nostr protocol features
- Database - Storage backends, indexing, query optimization
- Performance - Caching, SIMD operations, memory optimization
- Policy - Access control, event filtering, validation
- Web UI - Admin interface improvements
- Operations - Deployment, monitoring, systemd integration
Code Contributions
Development Setup
# Clone the repository
git clone https://git.mleku.dev/mleku/next.orly.dev.git
cd next.orly.dev
# Build
CGO_ENABLED=0 go build -o orly
# Run tests
./scripts/test.sh
# Build with web UI
./scripts/update-embedded-web.sh
Pull Request Guidelines
- One feature/fix per PR - keep changes focused
- Write tests - for new functionality and bug fixes
- Follow existing patterns - match the code style of surrounding code
- Update documentation - if your change affects configuration or behavior
- Test your changes - run
./scripts/test.shbefore submitting
Commit Message Format
Short summary (72 chars max, imperative mood)
- Bullet point describing change 1
- Bullet point describing change 2
Files modified:
- path/to/file1.go: Description of change
- path/to/file2.go: Description of change
Communication
- Issues: https://git.mleku.dev/mleku/next.orly.dev/issues
- Documentation: https://git.mleku.dev/mleku/next.orly.dev
License
By contributing to ORLY, you agree that your contributions will be licensed under the same license as the project.