Contributing guide#

Thanks for taking a quest. This guide covers every SideQuest repo. A repo’s own README has the details for that repo.

Pick a way to help#

  • Report a bug. See Report and find issues.

  • Suggest a feature. Open an issue first, so we can agree on the approach before you write code.

  • Fix something. Look for a good first issue, or pick up a bug you reported yourself.

Pick a repo#

Repo

What it is

Language

website

sidequest-guild.com, its API and the database

Python (Litestar), Astro

bot

The Discord bot. It reaches the database only through the API

Python (discord.py)

addon

The in-game addon and the sidequest-sync uploader

Lua, Python

companion

The desktop tray app that syncs the addon with the site

Rust (GPUI)

Before you start#

  • For anything bigger than a typo, open an issue first.

  • Read the guild rules. They apply here too.

  • Found a security problem? Don’t open an issue. Follow the repo’s SECURITY.md.

Set up and run the checks#

  1. Fork the repo and clone your fork.

  2. Follow the repo’s README to install its tools.

  3. Run make install to set up dependencies.

  4. Run make ci to run every check CI runs: formatting, lint, type checks, and tests.

Note

Each repo has its own Makefile. make help lists every command it offers.

Make your change#

  1. Make a branch for your change.

  2. Keep the change small and about one thing.

  3. Add or update a test for what you change. A test should fail before your change and pass after it.

  4. Run make ci again and fix what it reports.

Commit your change#

Write each commit subject as a Conventional Commit: a type, a colon, then a plain sentence.

  • feat: add away dates to the account page

  • fix: the raid chart keeps its groups after a reload

  • docs: explain how attendance voice minutes work

Common types are feat, fix, docs, test, ci, chore and perf.

Open a pull request#

  1. Push your branch and open a pull request.

  2. Title it the same way as a commit: type: what changed.

  3. Say what you changed, why, and how you checked it. Add a screenshot for anything on the site.

  4. Update the docs if your change alters what a member or officer sees.

Review#

An officer reviews every pull request. They may ask for changes before merging. Once it merges, your change ships the next time that repo deploys.

Everyone who takes part agrees to the code of conduct.