Skip to content

Contribution Workflow

Guidelines for contributing to Ignis - help us maintain quality and streamline the process.

Git Branching Strategy

main (production)

  │ merge only from develop

develop (staging)

  │ PRs target here

feature/*, fix/*, docs/* (your work)

Important:

  • ✅ Create PRs to develop branch
  • ❌ Do NOT create PRs to main branch
  • main only accepts merges from develop
  • Releases are tagged in git (e.g., v1.0.0)

1. Setup

Quick start:

bash
# 1. Fork the repository on GitHub

# 2. Clone your fork
git clone https://github.com/YOUR_USERNAME/ignis.git
cd ignis

# 3. Install dependencies (this also runs force-update to fetch latest from NPM)
make install
# Or: bun install

# 4. Add upstream remote
git remote add upstream https://github.com/VENIZIA-AI/ignis.git

Makefile Commands

The project uses a Makefile for common development tasks:

CommandDescription
make installInstall dependencies and force-update from NPM
make updateForce update all packages from NPM registry
make buildRebuild all packages in correct order
make cleanClean build artifacts from all packages
make lintLint all packages
make helpShow all available commands

Individual package builds:

bash
make core          # Build @venizia/ignis (after dependencies)
make boot          # Build @venizia/ignis-boot
make helpers       # Build @venizia/ignis-helpers
make inversion     # Build @venizia/ignis-inversion
make dev-configs   # Build @venizia/dev-configs
make docs          # Build documentation

Force update individual packages:

bash
make update-core
make update-boot
make update-helpers
make update-inversion
make update-dev-configs
make update-docs

2. Development Workflow

Step 1: Create Branch

bash
# Sync with upstream
git fetch upstream
git checkout main
git merge upstream/main

# Create feature branch
git checkout -b feature/your-feature-name

Branch naming:

TypeFormatExample
Featurefeature/descriptionfeature/add-redis-cache
Bug fixfix/descriptionfix/auth-token-expiry
Docsdocs/descriptiondocs/update-quickstart
Chorechore/descriptionchore/upgrade-deps

Step 2: Make Changes

Checklist:

Step 3: Commit

Use Conventional Commits:

bash
# Examples
git commit -m "feat: add Redis caching helper"
git commit -m "fix: correct JWT token validation"
git commit -m "docs: update controller examples"
git commit -m "chore: upgrade Hono to v4.0"

Commit types:

  • feat: - New feature
  • fix: - Bug fix
  • docs: - Documentation only
  • chore: - Maintenance (deps, config)
  • refactor: - Code restructuring
  • test: - Adding tests

Step 4: Validate

bash
# Lint and format (from root)
make lint
# Or: bun run lint:fix

# Build all packages
make build
# Or: bun run build

# Run tests
bun run test

3. Submit Pull Request

bash
# Push your branch
git push origin feature/your-feature-name

PR Guidelines:

ItemDescription
TitleUse conventional commit format: feat: add Redis caching
DescriptionExplain what and why (not just how)
Link issuesReference related issues: Closes #123
ScreenshotsInclude for UI changes
Breaking changesClearly mark and explain

PR Checklist:

  • ✅ All tests pass
  • ✅ Code is linted and formatted
  • ✅ Documentation updated
  • ✅ Commit messages follow conventions
  • ✅ Branch is up-to-date with main

4. Review Process

What to expect:

  1. Maintainer reviews your PR (usually within 2-3 days)
  2. Feedback or change requests may be provided
  3. Address feedback and push updates
  4. Once approved, maintainer merges to main

Responding to feedback:

bash
# Make requested changes
git add .
git commit -m "fix: address review feedback"
git push origin feature/your-feature-name

Thank you for contributing to Ignis! 🎉