Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/egeuysall/ryva-archive/llms.txt

Use this file to discover all available pages before exploring further.

Thank you for your interest in contributing to Ryva! This guide provides everything you need to know to contribute effectively.

Getting Started

1

Fork and Clone

Fork the repository and clone it locally:
git clone https://github.com/your-username/ryva.git
cd ryva
2

Set Up Development Environment

Run the automated setup script:
make setup-dev
This will verify prerequisites, install dependencies, and set up git hooks.
3

Create a Branch

Create a feature branch following our naming convention:
git checkout develop
git pull origin develop
git checkout -b feature/RYVA-123-your-feature

Branch Naming Convention

We follow a structured branch naming convention to keep the repository organized.

Branch Types

  • master - Production-ready code (protected)
  • develop - Integration branch for features (protected)
  • feature/* - New features
  • fix/* - Bug fixes
  • hotfix/* - Urgent production fixes
  • release/* - Release preparation
  • refactor/* - Code refactoring
  • docs/* - Documentation updates
  • test/* - Test-related changes
  • chore/* - Maintenance tasks

Naming Format

<type>/<ticket-number>-<short-description>
Examples:
feature/RYVA-123-user-authentication

Rules

  1. Use lowercase letters and hyphens
  2. Keep descriptions short and descriptive
  3. Include ticket/issue number when applicable
  4. Use present tense verbs
  5. Maximum length: 50 characters

Pull Request Process

Before Creating a PR

1

Update Your Branch

Ensure your branch is up to date with develop:
git checkout develop
git pull origin develop
git checkout your-feature-branch
git rebase develop
2

Run Tests

Run all tests to ensure nothing is broken:
cd apps/api
make test-all
3

Run Linters

Ensure code meets style guidelines:
cd apps/api
make lint
4

Format Code

Format your code before committing:
cd apps/api
make format

PR Title Format

PR titles must follow the same convention as commit messages:
<type>(<scope>): <description>
Examples:
feat(auth): add OAuth2 integration
fix(api): resolve database connection leak
docs(readme): update installation instructions

PR Description Template

## Description

Brief description of the changes

## Type of Change

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation update

## Related Issue

Fixes #(issue number)

## Changes Made

- Change 1
- Change 2
- Change 3

## Testing

Describe the testing you've done:

- [ ] Unit tests pass
- [ ] Integration tests pass
- [ ] E2E tests pass
- [ ] Manual testing completed

## Checklist

- [ ] My code follows the project's code style
- [ ] I have performed a self-review of my code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes

PR Review Requirements

Before a PR can be merged, it must meet these requirements:
  1. At least one approval from a code owner
  2. All CI/CD checks must pass
  3. No unresolved conversations
  4. Branch must be up to date with base branch
  5. Test coverage must be at least 80%
Squash and merge is preferred to keep the commit history clean.

Code Review Guidelines

For Contributors

  • Respond to all review comments
  • Be open to feedback and suggestions
  • Push additional commits to address feedback
  • Mark conversations as resolved once addressed
  • Request re-review after making changes

For Reviewers

  • Be constructive and respectful
  • Explain the reasoning behind suggestions
  • Approve when code meets standards
  • Use “Request Changes” only for critical issues
  • Comment for minor suggestions or questions

Getting Help

If you have questions or need help:
  1. Check existing documentation
  2. Search existing issues
  3. Create a new issue with the question label
  4. Join our community discussions

Code of Conduct

We are committed to providing a welcoming and inclusive environment. Please:
  • Be respectful and professional
  • Accept constructive criticism gracefully
  • Focus on what’s best for the project
  • Show empathy towards other contributors
Thank you for contributing to Ryva! Your efforts help make this project better for everyone.