Skip to content

Contributing

Welcome!

First off, thank you for considering contributing to Mirumoji !

This section outlines the different ways you can contribute to the Mirumoji project

Development Environment

Setting up the development environment using VSCode Dev Containers is the recommended way to get started

This provides a consistent environment with all necessary dependencies pre-configured

Benefits Of Using Dev Containers
  • Pre-Configured Dependencies + Tools

  • Consistent Environment Across Different OSes

  • Isolates Development Environment From Your Local System

Prerequisites

Clone Repository

Clone The Mirumoji Repo

git clone https://github.com/svdC1/mirumoji.git

Open In VSCode

code mirumoji

Starting Dev Containers

  • Inside VSCode Open The Command Pallet With Ctrl+Shift+P

  • Type in Dev Containers

  • Click The Option Reopen in Container

Chossing Between Images
  • Choose The Mirumoji (GPU) Development Container If You Have An NVIDIA GPU + Enough Disk Space (~9GB Uncompressed)

  • Choose The Mirumoji (CPU) Development Container (~3GB Uncompressed) If You Don't Have An NVIDIA GPU

Warning

The First Startup Might Take A Few Minutes Since Images Need To Be Pulled

Useful Commands

cd apps/mirumoji
pip install -e .[server,dev]
# The Container Already Forwards The `8000` Port
# (Reloads On Code Changes)
mirumoji dev server --reload
# Builds the frontend + backend images from this checkout and runs the
# Docker Compose application (without updating the managed checkout)
mirumoji dev up
cd apps/frontend
npm install
# The Container Already Forwards The `5173` Port
# Run Vite Dev Server
npm run dev -- --host
mirumoji gui
pip install pre-commit
pre-commit install

Repository

  • Fork Repository
  • Open Fork In Development Container (Optional)
  • Create New Branch
git checkout -b <BRANCH_NAME>

Rules

Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests

When submitting contributions, please adhere to the Code of Conduct

Responsibilities
  • Create issues for any major changes and enhancements that you wish to make. Discuss things transparently and get community feedback
  • Follow provided issue templates when submitting
  • Keep feature versions as small as possible, preferably one new feature per version
  • Be welcoming to newcomers and encourage diverse new contributors from all backgrounds. See the Python Community Code of Conduct