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:
Setting Up Your Development Environment
- Fork the UrsaMU repository on GitHub
- Clone your fork to your local machine:
git clone https://github.com/YOUR_USERNAME/ursamu.git cd ursamu - Add the original repository as a remote:
git remote add upstream https://github.com/lcanady/ursamu.git - Install dependencies:
deno task setup
Development Process
Branching Strategy
main- The main development branchrelease/*- Release branchesfeature/*- Feature branchesbugfix/*- Bug fix branches
Always create a new branch for your changes:
git checkout -b feature/your-feature-name
Development Workflow
- Make sure your branch is up to date with the latest changes:
git fetch upstream git rebase upstream/main - Make your changes
- Run tests to ensure your changes don’t break anything:
deno task test - Commit your changes with a descriptive commit message:
git commit -m "Add feature: your feature description" - 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:
- Go to your fork on GitHub
- Select your branch
- Click “Pull Request”
- Fill out the pull request template with details about your changes
- 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:
- Join the UrsaMU Discord server
- Open an issue on GitHub
- Reach out to the maintainers
Thank you for contributing to UrsaMU! Your efforts help make the project better for everyone.