Contributing to UrsaMU

Thank you for your interest in contributing to UrsaMU! This guide will help you get started with contributing to the project.

Code of Conduct

UrsaMU has adopted a Code of Conduct that we expect project participants to adhere to. Please read the full text so that you can understand what actions will and will not be tolerated.

Getting Started

Prerequisites

Before you begin, ensure you have the following installed:

  • Deno (version 1.37.0 or higher)
  • Git
  • A code editor (we recommend VS Code with the Deno extension)

Setting Up Your Development Environment

  1. Fork the UrsaMU repository on GitHub
  2. Clone your fork to your local machine:
    git clone https://github.com/YOUR_USERNAME/ursamu.git
    cd ursamu
    
  3. Add the original repository as a remote:
    git remote add upstream https://github.com/lcanady/ursamu.git
    
  4. Install dependencies:
    deno task setup
    

Development Process

Branching Strategy

  • main - The main development branch
  • release/* - Release branches
  • feature/* - Feature branches
  • bugfix/* - Bug fix branches

Always create a new branch for your changes:

git checkout -b feature/your-feature-name

Development Workflow

  1. Make sure your branch is up to date with the latest changes:
    git fetch upstream
    git rebase upstream/main
    
  2. Make your changes
  3. Run tests to ensure your changes don’t break anything:
    deno task test
    
  4. Commit your changes with a descriptive commit message:
    git commit -m "Add feature: your feature description"
    
  5. Push your changes to your fork:
    git push origin feature/your-feature-name
    

Pull Requests

When you’re ready to submit your changes, create a pull request:

  1. Go to your fork on GitHub
  2. Select your branch
  3. Click “Pull Request”
  4. Fill out the pull request template with details about your changes
  5. Submit the pull request

Pull Request Guidelines

  • Keep pull requests focused on a single feature or bug fix
  • Make sure all tests pass
  • Update documentation as needed
  • Follow the coding standards
  • Be responsive to feedback and questions

Coding Standards

UrsaMU follows a set of coding standards to maintain consistency across the codebase:

  • Use TypeScript for all code
  • Follow the Deno Style Guide
  • Use meaningful variable and function names
  • Write comments for complex logic
  • Include JSDoc comments for public APIs
  • Write tests for new features and bug fixes

Documentation

Documentation is a crucial part of UrsaMU. When contributing, please:

  • Update the documentation for any changes to APIs or features
  • Use clear, concise language
  • Include examples where appropriate
  • Follow the documentation guidelines

Building Documentation

To build and preview the documentation locally:

deno task docs

This will start a local server where you can preview the documentation.

Getting Help

If you need help with contributing to UrsaMU, you can:

Thank you for contributing to UrsaMU! Your efforts help make the project better for everyone.