Contribute to Core

Learn how to contribute to IrisOS core development and help improve the framework.

Getting Started

Prerequisites

  • Node.js 20.x or higher

  • pnpm (recommended) or npm

  • Git

  • TypeScript knowledge

  • Familiarity with AI/LLM concepts

Development Setup

# Fork the repository on GitHub
# Then clone your fork
git clone https://github.com/YOUR_USERNAME/irisos.git
cd irisos

# Add upstream remote
git remote add upstream https://github.com/IrisOS-xyz/irisos.git

# Install dependencies
pnpm install

# Build the project
pnpm build

# Run tests
pnpm test

Development Workflow

1. Create a Feature Branch

2. Make Your Changes

Follow the project structure:

3. Write Tests

All new features must include tests:

4. Run Tests

5. Lint and Format

6. Commit Your Changes

Follow Conventional Commits:

Commit types:

  • feat: New feature

  • fix: Bug fix

  • docs: Documentation changes

  • test: Adding or updating tests

  • refactor: Code refactoring

  • perf: Performance improvements

  • chore: Maintenance tasks

  • ci: CI/CD changes

7. Push and Create Pull Request

Pull Request Guidelines

PR Title

Use conventional commit format:

PR Description Template

Code Style Guide

TypeScript Guidelines

Naming Conventions

File Organization

Testing Guidelines

Test Structure

Test Coverage

Aim for:

  • 80%+ overall coverage

  • 100% for critical paths

  • Edge cases covered

  • Error conditions tested

Documentation Guidelines

Code Documentation

README Updates

When adding features, update relevant README files:

Adding New Features

API Endpoints

Plugin System

Performance Guidelines

Optimization Tips

Memory Management

Security Guidelines

Input Validation

API Key Handling

Review Process

What Reviewers Look For

  1. Code Quality

    • Follows style guide

    • Well-structured and readable

    • Proper error handling

  2. Tests

    • Adequate test coverage

    • Tests pass consistently

    • Edge cases covered

  3. Documentation

    • Clear comments

    • Updated README

    • API documentation

  4. Performance

    • No obvious performance issues

    • Resource cleanup

    • Scalability considerations

  5. Security

    • Input validation

    • No exposed secrets

    • Proper authentication

Addressing Review Comments

Release Process

Versioning

We follow Semantic Versioning:

  • Major (1.0.0 → 2.0.0): Breaking changes

  • Minor (1.0.0 → 1.1.0): New features, backward compatible

  • Patch (1.0.0 → 1.0.1): Bug fixes

Changelog

Update CHANGELOG.md for significant changes:

Getting Help

Where to Ask Questions

  • Discord: IrisOS Discord - #contributors channel

  • GitHub Discussions: For design discussions

  • GitHub Issues: For bug reports and feature requests

Resources

Recognition

Contributors are recognized in:

  • CONTRIBUTORS.md file

  • Release notes

  • Project README

  • IrisOS website (for significant contributions)

Code of Conduct

We are committed to providing a welcoming and inclusive environment. Please:

  • Be respectful and constructive

  • Welcome newcomers

  • Focus on what is best for the community

  • Show empathy towards others

Next Steps

Thank You!

Thank you for contributing to IrisOS! Your contributions help make IrisOS better for everyone.

Last updated