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.
Ryva uses a modified Git Flow workflow with strict commit message conventions to maintain a clean and organized codebase.
Git Flow Overview
We follow a structured branching strategy:
master (production)
↑
release/* ← develop (integration)
↑
feature/*
fix/*
refactor/*
Protected Branches
master and develop are protected branches:
- Requires at least 1 approval before merging
- All CI/CD checks must pass
- Direct pushes are forbidden
- Must be updated via Pull Requests only
Daily Development Workflow
Update Develop Branch
Start by ensuring your local develop branch is up to date:git checkout develop
git pull origin develop
Create Feature Branch
Create a new branch following the naming convention:git checkout -b feature/RYVA-123-new-feature
Make Changes
Develop your feature and commit regularly:# Make your changes
git add .
git commit -m "feat(scope): add new feature"
Keep Branch Updated
Regularly sync with develop to avoid conflicts:git fetch origin
git rebase origin/develop
Run Tests and Linters
Before pushing, ensure quality checks pass: Push Your Branch
Push your branch to the remote repository:git push origin feature/RYVA-123-new-feature
Create Pull Request
Create a PR on GitHub targeting the develop branch.
Address Review Feedback
Make requested changes and push additional commits:# Make changes based on feedback
git add .
git commit -m "fix(scope): address review feedback"
git push origin feature/RYVA-123-new-feature
Commit Message Convention
We follow the Conventional Commits specification.
Automated Validation: Commit messages are validated by:
- Pre-commit hook (locally before commit)
- CI/CD pipeline (in pull requests)
Invalid commits will be rejected automatically.
<type>(<scope>): <subject>
[optional body]
[optional footer(s)]
Commit Types
| Type | Description |
|---|
feat | New feature |
fix | Bug fix |
docs | Documentation changes |
style | Code style changes (formatting, missing semicolons) |
refactor | Code refactoring without changing functionality |
perf | Performance improvements |
test | Adding or updating tests |
build | Changes to build system or dependencies |
ci | Changes to CI/CD configuration |
chore | Other changes that don’t modify src or test files |
revert | Reverts a previous commit |
Scope (Optional)
The scope should be the name of the affected module:
api - Backend API changes
web - Frontend web app changes
auth - Authentication-related changes
db - Database-related changes
ui - UI component changes
Subject Rules
- Use imperative, present tense: “change” not “changed” nor “changes”
- Don’t capitalize the first letter
- No period (.) at the end
- Maximum 100 characters
Commit Examples
feat(auth): add JWT token validation
Validation Rules
Header (first line):
- Max 100 characters
- Must match pattern:
type(scope): subject
- Subject must be lowercase
- No period at the end
Body (optional):
- Blank line after header
- Max 100 characters per line
- Explain WHAT and WHY, not HOW
- Reference issues/tickets
Footer (optional):
- Blank line before footer
- Use for breaking changes and issue references
- Format:
BREAKING CHANGE: description or Fixes #123
Testing Your Commit Message
# This will fail
git commit -m "updated code"
# Error: 'updated' is not a valid type
Release Process
We follow Semantic Versioning: MAJOR.MINOR.PATCH
- MAJOR: Breaking changes
- MINOR: New features (backwards compatible)
- PATCH: Bug fixes (backwards compatible)
Create Release Branch
Create a release branch from develop:git checkout develop
git pull origin develop
git checkout -b release/v1.2.0
Update Version Numbers
Update version in:
package.json files
- API version constants
CHANGELOG.md
Final Testing
Run comprehensive tests:cd apps/api && make test-all
Commit Version Bump
git add .
git commit -m "chore(release): bump version to 1.2.0"
Create PR to Master
git push origin release/v1.2.0
# Create PR with title: "Release v1.2.0"
# Requires 2 approvals for release branches
Tag the Release
After merge, tag the release:git checkout master
git pull origin master
git tag -a v1.2.0 -m "Release version 1.2.0"
git push origin v1.2.0
Merge Back to Develop
git checkout develop
git merge master
git push origin develop
Cleanup
git branch -d release/v1.2.0
git push origin --delete release/v1.2.0
Release Checklist
Hotfix Process
For urgent production fixes:
Hotfix Criteria:
- Security vulnerabilities
- Critical bugs affecting all users
- Production outages
- Data integrity issues
Create Hotfix Branch
Branch from master, not develop:git checkout master
git pull origin master
git checkout -b hotfix/RYVA-999-critical-fix
Make the Fix
Implement and test the fix thoroughly:# Make your fix
make test-all
Commit and Push
git add .
git commit -m "fix(api): patch critical security vulnerability"
git push origin hotfix/RYVA-999-critical-fix
Create PR to Master
Create PR with fast-track review process.
Tag Patch Version
After merge:git checkout master
git pull
git tag -a v1.2.1 -m "Hotfix version 1.2.1"
git push origin v1.2.1
Merge Back to Develop
git checkout develop
git merge master
git push origin develop
Common Git Commands
Useful commands for daily workflow:
Best Practices
- Commit often: Small, focused commits are easier to review
- Write descriptive messages: Future you will thank present you
- Keep branches up to date: Rebase regularly to avoid conflicts
- Test before pushing: Ensure all tests pass locally
- Review your own code: Check the diff before creating a PR
- Clean up branches: Delete merged branches to keep things tidy