Skip to content

Latest commit

 

History

History
356 lines (257 loc) · 7.2 KB

File metadata and controls

356 lines (257 loc) · 7.2 KB

Start contributing to Project AIRI

Hello! Thank you for your interest in contributing to this project. This guide will help you get started.

Prerequisites

Windows setup
  1. Download Visual Studio and follow the instructions here: https://rust-lang.github.io/rustup/installation/windows-msvc.html#walkthrough-installing-visual-studio-2022

    Make sure to install Windows SDK and C++ build tools when installing Visual Studio.

  2. Open PowerShell

  3. Install scoop

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
  4. Install git, Node.js, rustup, msvc through scoop

    scoop install git nodejs rustup
    
    # For Rust dependencies
    # Not required if you are not going to develop on either crates or apps/tamagotchi
    scoop install main/rust-msvc
    # Rust & Windows specific
    rustup toolchain install stable-x86_64-pc-windows-msvc
    rustup default stable-x86_64-pc-windows-msvc

    https://stackoverflow.com/a/64121601

  5. Install pnpm through corepack

    corepack enable
    corepack prepare pnpm@latest --activate
macOS setup
  1. Open Terminal (or iTerm2, Ghostty, Kitty, etc.)

  2. Install git, node through brew

    brew install git node
  3. Install pnpm through corepack

    corepack enable
    corepack prepare pnpm@latest --activate
Linux setup
  1. Open terminal

  2. Follow nodesource/distributions: NodeSource Node.js Binary Distributions to install node

  3. Follow Git to install git

  4. Install pnpm through corepack

    corepack enable
    corepack prepare pnpm@latest --activate
  5. If you would love to help to develop the desktop version, you will need those dependencies:

    sudo apt install \
       libssl-dev \
       libglib2.0-dev \
       libgtk-3-dev \
       libjavascriptcoregtk-4.1-dev \
       libwebkit2gtk-4.1-dev

If you have already contributed to this project before

Warning

If you haven't cloned this repository, skip this section.

Make sure your local repository is up to date with the upstream repository:

git fetch --all
git checkout main
git pull upstream main --rebase

If you have a working branch, to make your branch up to date with the upstream repository:

git checkout <your-branch-name>
git rebase main

Fork this project

Click on the Fork button on the top right corner of the moeru-ai/airi page.

Clone

git clone https://github.com/<your-github-username>/airi.git
cd airi

Create your working branch

git checkout -b <your-branch-name>

Install dependencies

corepack enable
pnpm install

# For Rust dependencies
# Not required if you are not going to develop on either crates or apps/tamagotchi
cargo fetch

Note

We would recommend to install @antfu/ni to make your script simpler.

corepack enable
npm i -g @antfu/ni

Once installed, you can

  • use ni for pnpm install, npm install and yarn install.
  • use nr for pnpm run, npm run and yarn run.

You don't need to care about the package manager, ni will help you choose the right one.

Choose the application you want to develop on

Stage Tamagotchi (Desktop version)

pnpm dev:tamagotchi

Note

For @antfu/ni users, you can

nr dev:tamagotchi

Stage Web (Browser version for airi.moeru.ai)

pnpm dev

Note

For @antfu/ni users, you can

nr dev

Documentation site

pnpm dev:docs

Note

For @antfu/ni users, you can

nr dev:docs

Telegram bot integration

A Postgres database is required.

cd services/telegram-bot
docker compose up -d

Configure .env

cp .env .env.local

Edit the credentials in .env.local.

Migrate the database

pnpm -F @proj-airi/telegram-bot db:generate
pnpm -F @proj-airi/telegram-bot db:push

Run the bot

pnpm -F @proj-airi/telegram-bot start

Note

For @antfu/ni users, you can

nr -F @proj-airi/telegram-bot dev

Discord bot integration

cd services/discord-bot

Configure .env

cp .env .env.local

Edit the credentials in .env.local.

Run the bot

pnpm -F @proj-airi/discord-bot start

Note

For @antfu/ni users, you can

nr -F @proj-airi/discord-bot dev

Minecraft agent

cd services/minecraft

Start a Minecraft client, export your world with desired port, and fill-in the port number in .env.local.

Configure .env

cp .env .env.local

Edit the credentials in .env.local.

Run the bot

pnpm -F @proj-airi/minecraft-bot start

Note

For @antfu/ni users, you can

nr -F @proj-airi/minecraft-bot dev

Commit

Before commit

Please make sure lint (static checkers) and TypeScript compilers are satisfied:

pnpm lint && pnpm typecheck

If you are committing images, consider using AVIF format instead of PNG, JPG etc. You can convert existing images to AVIF by running:

pnpm to-avif <PATH_TO_IMAGE_OR_DIRECTORY1> <PATH_2> <PATH_3> ...

Note

If you have @antfu/ni installed, you can use nr to run the commands:

nr lint && nr typecheck

Commit

git add .
git commit -m "<your-commit-message>"

Push to your fork repository

git push origin <your-branch-name> -u

You should be able to browse the branch on your fork repository.

Note

If this is your first time contributing to this project, you need to add the upstream repository too:

git remote add upstream https://github.com/moeru-ai/airi.git

Creating Pull Request

Navigate to moeru-ai/airi page, click on the Pull requests tab, and click on the New pull request button, click on the Compare across forks link, and select your fork repository.

Review the changes, and click on the Create pull request button.

Whooo-ya! You made it!

Congratulations! You made your first contribution to this project. You can now wait for the maintainers to review your pull request.